THotPDF.LinearizeOutput Property
Kontroluje, czy nowo generowany dokument jest zapisywany w układzie zlinearyzowanym uporządkowanym według zależności dla szybkiego wyświetlania pierwszej strony przez transport zakresłowy HTTP
Deklaracje
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Wartość domyślna
False
Output layout
Po włączeniu przed BeginDoc i EndDoc HotPDF wykonuje ograniczony przebieg układu, a następnie zapisuje strumień docelowy bezpośrednio w kolejności zlinearyzowanej
- Słownik parametrów linearyzacji jest zawarty w pierwszych 1024 bajtach
- Pierwsza strona i jej prywatne zależności poprzedzają późniejsze sekcje stron
- Współdzielone zależności są grupowane, tak aby czytelniki świadome zakresów mogły unikać nadmiarowych żądań
- Główny strumień podpowiedzi zawiera tabele podpowiedzi przesunięć stron i współdzielonych obiektów
- Wczesna tabela odsyłaczy krzyżowych obsługuje dostęp do pierwszej strony, a główna tabela odsyłaczy krzyżowych kompletuje dokument
Kompatybilność i ograniczenia
- Linearyzacja wymaga PDF 1.2 lub nowszego; HotPDF podnosi starszą wybraną wersję, chyba że
StrictVersionLockjest włączone, w takim przypadku zapis zgłasza wyjątek - Program zapisujący zlinearyzowany emituje tradycyjne tekstowe tabele odsyłaczy krzyżowych i rozpakowane obiekty pośrednie nawet wtedy, gdy
UseXRefStreamlubUseObjectStreamsjest włączone - Format tabeli podpowiedzi używa przesunięć 32-bitowych, więc wyjście o rozmiarze 4 GiB lub większym jest odrzucane z jasnym wyjątkiem
- Serwer WWW lub transport pamięci musi obsługiwać żądania zakresowe bajtów, aby zapewnić szybką dostawę pierwszej strony
- Ta właściwość zmienia wyjście generowanego dokumentu i nie wczytuje przyrostowo istniejącego zdalnego pliku PDF
Przykład Delphi
PDF := THotPDF.Create(nil);
try
PDF.FileName := 'fast-view.pdf';
PDF.Version := pdf17;
PDF.LinearizeOutput := True;
PDF.BeginDoc;
PDF.Canvas.TextOut(72, 72, 'First page');
PDF.EndDoc;
finally
PDF.Free;
end;
Przykład C++Builder
std::unique_ptr<THotPDF> pdf(new THotPDF(nullptr));
pdf->FileName = L"fast-view.pdf";
pdf->Version = pdf17;
pdf->LinearizeOutput = true;
pdf->BeginDoc();
pdf->Canvas->TextOut(72, 72, L"First page");
pdf->EndDoc();