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#
C++
VB.Net
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 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++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 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 |