Merge pdf in Nativepdflib

with this source:


procedure TForm17.mergepdf(fname: string; lf:tlistapdf);
var  f : string;
     i, k: integer;
begin
 with PDFlib1 do
     begin
     k := 0;
      BeginDocument(dirdoc + fname);
      for f in lf do
          begin
            OpenDocument(dirdoc + f);
            for i := 1 to  GetPageCount do
                   begin
                     GetPageInfo(i + k);
                      Footer := 'Page 1 / 2';
                     NewPage;
                     DrawPage(i);
                   end;
             inc(k);
          end;
          NewPage;

          EndDocument;
      CloseDocument;
     end;
end;

the new pdf content only the first pdf.

how merge more pdf?

Hi, 


We have tested this here with the following code, input of three PDF files added from the deployment window and output in the documents folder in a "Merged.pdf" file and all three PDF files are added.

var
  input: TStringList;
  output: String;
  I, J: Integer;
begin
  input := TStringList.Create;
  input.Add(ExtractFilePath(ParamStr(0)) + 'Egypt.pdf');
  input.Add(ExtractFilePath(ParamStr(0)) + 'BoraBora.pdf');
  input.Add(ExtractFilePath(ParamStr(0)) + 'London.pdf');

  output := TPath.GetDocumentsPath + '/Merged.pdf';
  TMSFMXNativePDFLib1.BeginDocument(output);
  for I := 0 to input.Count - 1 do
  begin
    TMSFMXNativePDFLib1.OpenDocument(input);
    for J := 1 to TMSFMXNativePDFLib1.GetPageCount do
    begin
      TMSFMXNativePDFLib1.GetPageInfo(J);
      TMSFMXNativePDFLib1.NewPage;
      TMSFMXNativePDFLib1.DrawPage(J);
    end;
    TMSFMXNativePDFLib1.CloseDocument;
  end;
  TMSFMXNativePDFLib1.EndDocument;

  input.Free;

I see GetPageInfo(i+K) is incorrect and should be GetPageInfo(I); CloseDocument should happen for each OpenDocument. EndDocument is paired with BeginDocument.

Kind Regards, 
Pieter