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
| 0 | Brak otwartego dokumentu albo kompresja nie powiodła się. |
|---|---|
| 1 | Strumienie 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');