Skip to main content
Participating Frequently
Nov 9, 2021 11:31 AM UTC
Question

PDF Services API: Merge issue

While combine/merging pdf files to single file it’s not merging in sequence, we are sending file list in sequence but however it’s not merging in sequence. Kindly let us know is there any option to merge the files in sequence.

 

Example,

10 individual pdf files (file1.pdf, file2.pdf, file3.pdf, file4.pdf…file10.pdf) needs to merge to single file (File.pdf). When we use PDF Services API, it’s not merging in correct order. File.Pdf should have form file1,file2,file3,file4…file10 in this order. But File.pdf it’s not in sequence it’s like file1,file3,file7,file3,etc. We need to single file as in order instead of out of sequence.

This topic is closed to new replies. Start a new post to keep the conversation going.

10 replies

Ops15FDDAuthor
Participating Frequently
Nov 15, 2021 12:06 PM UTC

//inputPath is Path (C:\test\AllPDFFiles\)

public static void mergePDFMethod(Credentials credentials, string inputPath, string outputPath)
{

try
{
//Create an ExecutionContext using credentials and create a new operation instance.
ExecutionContext executionContext = ExecutionContext.Create(credentials);
CombineFilesOperation combineFilesOperation = CombineFilesOperation.CreateNew();

// Add operation input from source files.

filesList = Directory.GetFiles(Path.GetDirectoryName(Path.GetDirectoryName(@outputPath) + "\\TempMerge\\"), "*.pdf", SearchOption.TopDirectoryOnly).Select(fn => new FileInfo(fn)).OrderBy(f => f.Name).ToArray();
foreach (var a in filesList.ToArray())
{
FileRef combineSource = FileRef.CreateFromLocalFile(a.ToString());
combineFilesOperation.AddInput(combineSource);

}
FileRef result = combineFilesOperation.Execute(executionContext);

// Save the result to the specified location.
result.SaveAs(@outputPath);
Console.WriteLine("End of Merge method");
}

catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}
Console.WriteLine("End of catch");
}

Translate
Raymond Camden
Community Manager
Community Manager
Nov 10, 2021 2:25 PM UTC

Can you share your code that you are using?

Translate
Ops15FDDAuthor
Participating Frequently
Nov 15, 2021 12:07 PM UTC

Poseted code which we are using in C#

//inputPath is Path (C:\test\AllPDFFiles\)

public static void mergePDFMethod(Credentials credentials, string inputPath, string outputPath)
{

try
{
//Create an ExecutionContext using credentials and create a new operation instance.
ExecutionContext executionContext = ExecutionContext.Create(credentials);
CombineFilesOperation combineFilesOperation = CombineFilesOperation.CreateNew();

// Add operation input from source files.

filesList = Directory.GetFiles(Path.GetDirectoryName(Path.GetDirectoryName(@outputPath) + "\\TempMerge\\"), "*.pdf", SearchOption.TopDirectoryOnly).Select(fn => new FileInfo(fn)).OrderBy(f => f.Name).ToArray();
foreach (var a in filesList.ToArray())
{
FileRef combineSource = FileRef.CreateFromLocalFile(a.ToString());
combineFilesOperation.AddInput(combineSource);

}
FileRef result = combineFilesOperation.Execute(executionContext);

// Save the result to the specified location.
result.SaveAs(@outputPath);
Console.WriteLine("End of Merge method");
}

catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}
Console.WriteLine("End of catch");
}

Translate