WPViewPDF4: Speicherbedarf beim Zusammenführen großer Dateien

  • Zunächst vorab: großes Lob für die Möglichkeiten in WPViewPDF4 Plus, PDF-Dateien zusammenzuführen und die dabei vorhandenen Möglichkeiten der Manipulation (Bookmarks, Hinzufügens von Text über Stamps, usw.) - da geht schon ziemlich viel.

    Ich versuche gerade, relativ große PDF-Dateien zusammenzufassen, und habe dabei sowohl die Funktion wpview_pdfMergeW ausprobiert als auch eine Kombination aus wpview_pdfWorkbenchCreate/wpview_pdfWorkbenchLoad*/wpview_pdfWorkbenchCommand(COMPDF_SaveToFile).

    Als Test wurden 5 Dateien mit insg. 366 MB Größe zusammengeführt. Die zusammengeführte Datei hatte danach eine Größe von 383 bzw. 386 MB und 2922 Seiten.

    In einer Testanwendung benötigt wpview_pdfMergeW ca. 1,4 GB Hauptspeicher, die Kombination mit den Workbench-Befehlen ca. 1,0 GB. Beides klappt.

    Das wäre aber ein ideales Szenario, das in einer echten Anwendung leider nicht vorkommt. Sobald vorher Speicher belegt wird, was in einem "natürlichen" Ablauf eher der Fall ist, klappt das Zusammenführen nicht mehr und bricht mit EOutOfMemory ab.

    Bevor ich eine separate 64-Bit-Kommandozeilenanwendung für das Zusammenführen baue, hätte ich gerne gewusst:

    1. Gibt es irgendwelche Parameter, mit denen man den Speicherverbrauch beeinflussen kann?

    2. Gibt es irgendwo eine Liste, welche der COMPDF_...-Befehle von wpview_pdfWorkbenchCommand unterstützt werden und was man in welchen Parametern übergeben muss?

    3. Aus Neugier: Wieso brauchen die beiden Verfahren unterschiedlich viel Speicher und wieso ist das Ergebnis leicht unterschiedlich?

  • Danke für die rasche Antwort. Ggf. ist eine externe 64-Bit-Anwendung, die nicht den Speicher der Hauptanwendung "vollmüllt", vielleicht sowieso die bessere Variante.

    Zur Frage 2: Klar, in WPDF_ViewCommands.pas stehen die ganzen Kommandos drin. In der Hilfe stehen die ja auch. Da steht aber (oft) nicht dabei, was man für welches Kommando in welchem Parameter übergeben muss.

    Ganz explizit meine ich COMPDF_LoadEStream oder auch COMPDF_SaveToEStream. Kann man die über wpview_pdfWorkbenchCommand aufrufen?