CompressContent

Właściwości dokumentu

Opis

Kompresuje każdy strumień zawartości strony w aktualnie wybranym dokumencie. Używany jest algorytm Flate (zlib), dlatego wynikowe strumienie po zapisaniu dokumentu zawierają filtr /FlateDecode. Strumienie już skompresowane pozostają bez zmian.

W systemie Windows używany jest dołączony backend zlib-ng w trybie zgodnym z zlib. Kompilacje Win64 łączą zestaw obiektów SIMD środowiska wykonawczego zlib-ng dla bcc64x; Win32 zachowuje ogólny zestaw obiektów nastawiony na zgodność. Istniejący kod Delphi, ActiveX, DLL i C++Builder nie wymaga zmian źródłowych.

Składnia

Delphi

Function TPDFlib.CompressContent: Integer;

ActiveX

Function PDFlib::CompressContent() As Long

DLL

int DLCompressContent(int InstanceID);

Wartości zwracane

0Brak otwartego dokumentu albo kompresja nie powiodła się.
1Strumienie zawartości stron zostały pomyślnie skompresowane.

Uwagi

Jest to operacja obejmująca cały dokument. Jeśli trzeba skompresować tylko aktualnie wybraną stronę, użyj CompressPage. Aby kontrolować, czy nowo dodawane obrazy i czcionki są przechowywane w postaci skompresowanej, użyj odpowiednio CompressImages i CompressFonts.

Wywołaj tę funkcję raz przed SaveToFile, gdy zmniejszasz świeżo utworzony dokument; oszczędność jest zwykle duża na stronach zawierających dużo tekstu i pomijalna na stronach składających się głównie ze wstępnie skompresowanych danych obrazów.

Przykład

// Build a document, compress everything, then save
PDF.NewDocument;
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.PrintText(50, 750, 'Compressed document');

PDF.CompressContent;                   // page streams -> /FlateDecode
PDF.CompressImages(1);                 // also flate-encode any subsequent images
PDF.SaveToFile('compressed.pdf');

Zobacz również

CompressPage, CompressImages, CompressFonts, SaveToFile