Combine PDF Files
The code below shows you how to combine multiple PDF files into a single PDF.
This sample requires a Tools license.
C#
using System; using System.IO; using SolidFramework.Model.Pdf.Pages; namespace CombinePDF { class Program { [STAThread] static void Main(string[] args) { // Call your Solid Documents License SolidFramework.License.Import(@"C\:MyFolder\license.xml"); // Set the location of your the file you want to convert String pdfPath = @"C:\YourFolder"; //*Combining Multiple PDF Files*// // Create a new pages model object using (PagesModel model = new PagesModel()) { // Get a list of pdf files in the folder. string[] pdfFilesPath = Directory.GetFiles(pdfPath, "*.pdf"); // Create a IPageSource for the selected files then add each of the files to one source foreach (string filename in pdfFilesPath) { // For each file add it to a source and collate them SolidFramework.Model.Pdf.Pages.IPageSource source = model.CreateSource(filename); model.Insert(model.PagesCount, source); } // Save the new combined file model.Save(@"C:\MyFolder\combined_pdf.pdf"); } } } }
C++
#include "stdafx.h" #include "SolidFramework.h" using namespace std; int main(int argc, _TCHAR* argv[]) { // Setup the license SolidFramework::License::Import(L"C:\\MyFolder\\license.xml"); // Get a list of files from a directory vector<wstring, allocator<wstring="">> fileList = SolidFramework::Platform::Directory::GetFiles(L"c:\\YourFolder", false);</wstring,> // Get all the pdf file paths vector combineFiles = vector(); for (vector::iterator it = fileList.begin(); it != fileList.end(); ++it) { if (SolidFramework::Platform::Path::GetExtension(it->c_str()) == L".pdf") { combineFiles.push_back(it->c_str()); } } if (combineFiles.size() > 0) { // Open the first pdf file in the list. SolidFramework::Pdf::PdfDocumentPtr pDocument(new SolidFramework::Pdf::PdfDocument(combineFiles.at(0).c_str())); pDocument->Open(); // Append all the other PDF file pages to the end of the first. for (unsigned x = 1; x < combineFiles.size(); x++) { // Open the next pdf file SolidFramework::Pdf::PdfDocumentPtr pNextDocument(new SolidFramework::Pdf::PdfDocument(combineFiles.at(x).c_str())); pNextDocument->Open(); // Append it to the first pDocument->Append(pNextDocument); // We are done with this one, next pNextDocument->Close(); pNextDocument->Dispose(); } // Save out the combined pdf pDocument->SaveAs(L"c:\\MyFolder\\combined.pdf", SolidFramework::Plumbing::OverwriteMode::ForceOverwrite); // Close it out and cleanup pDocument->Close(); pDocument->Dispose(); } return 0; }
VB.Net
Imports System.IO Imports SolidFramework Module CombinePDF Sub Main() ' Call your Solid Documents License SolidFramework.License.Import("C:\MyFolder\license.xml") ' Define a variable for your source file Dim sPdfPath As String 'Deifne a variable for you Pages Model Dim myModel As SolidFramework.Model.Pdf.Pages.PagesModel ' Define a variable for the folder that contains the PDF files you want to combine Dim pdfFilePath As StringsArray 'Define a IPageSource model Dim mySource As SolidFramework.Model.Pdf.Pages.IPageSource ' Set values to your variables sPdfPath = "C:\YourFolder\" myModel = New SolidFramework.Model.Pdf.Pages.PagesModel pdfFilePath = Directory.GetFiles(sPdfPath, "*.pdf") ' Get a list of pdf files in the folder and create a IPageSource For Each sPdfPath In pdfFilePath mySource = myModel.CreateSource(sPdfPath) myModel.Insert(myModel.PagesCount, mySource) Next myModel.Save("C:\MyFolder\combined_pdf.pdf") ' Clean up myModel.Dispose() End Sub End Module