THotPDF.LinearizeOutput Özelliği
Yeni oluşturulan bir belgenin bir HTTP bayt aralığı aktarımı üzerinden hızlı ilk sayfa görüntülemesi için bağımlılık sıralı doğrusallaştırılmış bir yerleşimde yazılıp yazılmayacağını denetler
Bildirimler
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Varsayılan
False
Çıktı yerleşimi
BeginDoc ve EndDoc'tan önce etkinleştirildiğinde HotPDF, sınırlı bir yerleşim geçişi yapar ve ardından hedef akışı doğrudan doğrusallaştırılmış sırayla yazar
- Doğrusallaştırma parametre sözlüğü ilk 1024 bayt içinde yer alır
- İlk sayfa ve onun özel bağımlılıkları sonraki sayfa bölümlerinden önce gelir
- Paylaşılan bağımlılıklar gruplandırılır; böylece aralık duyarlı okuyucular gereksiz isteklerden kaçınabilir
- Birincil ipuçları akışı sayfa ofset ve paylaşılan nesne ipuçları tablolarını içerir
- Erken bir çapraz başvuru tablosu ilk sayfa erişimini destekler ve bir ana çapraz başvuru tablosu belgeyi tamamlar
Uyumluluk ve sınırlar
- Doğrusallaştırma PDF 1.2 veya sonrasını gerektirir; HotPDF,
StrictVersionLocketkin olmadığı sürece daha eski seçilmiş bir sürümü yükseltir; bu durumda yazma bir istisna yükseltir - Doğrusallaştırılmış yazıcı,
UseXRefStreamveyaUseObjectStreamsetkin olsa bile geleneksel metin çapraz başvuru tabloları ve paketlenmemiş dolaylı nesneler yayar - İpuçları tablosu biçimi 32 bit ofsetler kullanır; bu nedenle 4 GiB veya üzeri çıktı açık bir istisnayla reddedilir
- Hızlı ilk sayfa teslimi sağlamak için web sunucusu veya depolama aktarımı bayt aralığı isteklerini desteklemelidir
- Bu özellik oluşturulan belge çıktısını değiştirir ve var olan uzak bir PDF'i ilerleyen biçimde yüklemez
Delphi örneği
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 örneği
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();