Skip to main content
Participating Frequently
November 9, 2021
Question

PDF Services API: Merge issue

  • November 9, 2021
  • 2 replies
  • 2332 views

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 has been closed for replies.

2 replies

Ops15FDDAuthor
Participating Frequently
November 15, 2021

//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");
}

Raymond Camden
Community Manager
Community Manager
November 10, 2021

Can you share your code that you are using?

Ops15FDDAuthor
Participating Frequently
November 15, 2021

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");
}