Свойство THotPDF.LinearizeOutput
Контролира дали новогенериран документ се записва в линеаризирано подреждане по зависимости за бързо показване на първата страница през HTTP транспорт с байтови диапазони
Декларация
property LinearizeOutput: Boolean;
__property bool LinearizeOutput;
Стойност по подразбиране
False
Описание
Когато е разрешено преди BeginDoc и EndDoc, HotPDF изпълнява ограничен проход на подредба и след това записва целевия поток директно в линеаризиран ред
- Речникът с параметри за линеаризация се съдържа в първите 1024 байта
- Първата страница и нейните частни зависимости предхождат секциите на по-късните страници
- Споделените зависимости са групирани, така че четци, които поддържат диапазони, да избягват излишни заявки
- Основният hint поток съдържа hint таблици за отместване на страници и споделени обекти
- Ранна таблица с кръстосани препратки поддържа достъп до първата страница, а основна таблица с кръстосани препратки завършва документа
Съвместимост и ограничения
- Линеаризацията изисква PDF 1.2 или по-нов; HotPDF надгражда по-стара избрана версия, освен ако
StrictVersionLockне е разрешен, в който случай записването повдига изключение - Линеаризиращият записващ модул излъчва традиционни текстови таблици с кръстосани препратки и непакетирани индиректни обекти, дори когато
UseXRefStreamилиUseObjectStreamsе разрешено - Форматът на hint таблиците използва 32-битови отмествания, така че изход над 4 GiB се отхвърля с ясно изключение
- Уеб сървърът или транспортът за съхранение трябва да поддържа заявки с байтови диапазони, за да осигури бърза доставка на първата страница
- Това свойство променя изхода на генериран документ и не зарежда прогресивно съществуващ отдалечен PDF
Свързани API
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;
Пример за 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();