PDFium Delphi Component Docs

Compressed Eigenschaft

Komponente: TPdf  ·  Unit: PDFium
Steuert, ob Streams im Ausgabe-PDF beim Aufruf von SaveAs / Save FlateDecode-komprimiert werden. Die Kompressions-Engine nach dem Speichern durchsucht das serialisierte PDF, ersetzt jeden unkomprimierten Stream durch sein zlib-Deflate-Äquivalent und baut die xref-Tabelle neu auf. Bereits komprimierte Streams bleiben unverändert

Syntax

property Compressed: Boolean; // default True

Beschreibung

Compressed steuert, ob der nächste SaveAs-Aufruf (und seine Familie) eine Nachbearbeitung der Streams mit Kompression anwendet. Bei True — dem Standard — serialisiert PDFium Delphi Component das Dokument über PDFium und durchläuft danach einen Durchlauf, der unkomprimierte Content-/Metadaten-Streams durch FlateDecode-komprimierte Äquivalente ersetzt und die Cross-Reference-Tabelle mit den neuen Offsets neu schreibt

Bei False werden die Ausgabe-Streams unverändert geschrieben. Die erzeugte Datei ist typischerweise 2-10× größer, aber menschenlesbar, wenn sie in einem Texteditor geöffnet wird, was beim Debuggen von Content-Streams, beim Vergleichen zweier PDF-Revisionen mit diff oder beim Einspeisen der Ausgabe in ein PDF-Syntax-bewusstes Werkzeug nützlich ist, das unkomprimierte Eingabe bevorzugt

Das Setzen von Compressed ändert nur das Verhalten der nächsten Speicherung; das Dokument im Speicher bleibt unberührt. Ein komprimiert geladenes und mit Compressed := False gespeichertes Dokument wird bei der Ausgabe dekomprimiert; ein unkomprimiert geladenes und mit Compressed := True gespeichertes Dokument wird bei der Ausgabe komprimiert Ein Round-Trip eines vollständig komprimierten Dokuments mit Compressed := True ergibt eine nahezu identische Dateigröße — die Engine erkennt vorkomprimierte Streams und deflate sie nicht erneut

Hinweise

Beispiel

// Save an uncompressed copy alongside the compressed original for debugging
begin
  Pdf.Active := True;
  Pdf.Compressed := True;
  Pdf.SaveAs('output.pdf'); // production copy
  Pdf.Compressed := False;
  Pdf.SaveAs('output_debug.pdf'); // human-readable copy
end;

Siehe auch

SaveAs, Save, Active, Password