TfrxHotPDFExport

FastReport 4 / FastReport VCL bağdaştırıcısı

 

QuickReport adapter  ReportBuilder device  DevExpress adapter

FastReport'un kendi yerleşik PDF yazıcısı yerine HotPDF'i alttaki PDF arka ucu olarak kullanan FastReport 4 / FastReport VCL PDF dışa aktarma filtresi. HotPDF'i çoktan gömmüş ve uygulamanın tamamında tek bir PDF arka ucu isteyen projeler içindir

 

Delphi bildirimi:

type

  TfrxHotPDFExport = class(TfrxCustomExportFilter)

  published

    property Compressed: Boolean default True;

    property Title, Author, Subject, Keywords: string;

    property PageRange: string;

    property PDFVersion: TPDFVersType default pdf17;

    property PDFACompliance: string;

    property PDFXCompliance: string;

    property CompressionLevel: TPDFCompressionLevel default clDefault;

    property RenderDPI: Integer default 200;

    property ExportMode: TfrxHotPDFExportMode default hemPageMetafile;

    property AutoCreateURL: Boolean default False;

    property FontEmbedding: Boolean default True;

    property NotEmbeddedFonts: TStrings;

    property ActivateProtection: Boolean default False;

    property UserPassword, OwnerPassword: string;

    property CryptKeyLength: THPDFKeyType default k40;

    property ProtectOptions: THPDFProtectOptions default [];

    property EncryptMetadata: Boolean default True;

    property DialogDefaultFileName, DialogFilter, DialogTitle: string;

  end;

 

Açıklama

TfrxHotPDFExport, TfrxCustomExportFilter'dan türer; böylece FastReport çekirdeğinde hiçbir değişiklik gerektirmeden olağan MyReport.Export(MyExportInstance) iş akışına oturur. Birim, RegisterComponents('FastReport 4.0 Export Filters', [TfrxHotPDFExport]) çağırır; böylece filtre, birim bir pakete eklendiğinde IDE bileşen paletinde görünür

 

ShowDialog True olduğunda ve bir çıktı stream'i ayarlanmadığında, dışa aktarma dosyayı bir kaydetme iletişim kutusuyla ister. DialogDefaultFileName dosya adını doldurur (boş: önce FileName, sonra Title, sonra rapor adı), DialogFilter dosya türü listesini ayarlar (boş: PDF dosyaları ve tüm dosyalar), DialogTitle ise başlığı belirler (boş: Export to PDF). Sessiz dışa aktarmalarda etkisizdirler

 

Bağdaştırıcı üç kipten biriyle dışa aktarabilir:

 

1. Start taze bir THotPDF örneği oluşturur ve belge üst verisini ayarlar (Title / Author / Subject / Keywords / PDFVersion / Compression)

2. PageRange, isteğe bağlı olarak HotPDF sayfa nesneleri boyutlandırılmadan ya da doldurulmadan önce FastReport sayfalarını filtreler

3. StartPage, yeni HotPDF sayfasını FastReport rapor sayfasının milimetre boyutlarına eşleşecek şekilde punto cinsinden boyutlandırır

4. hemPageMetafile, özgün tüm sayfa önizleme yakalama yolunu korur ve onu ShowEnhancedMetafile üzerinden içe aktarır

5. hemObjectCanvas, FastReport'tan hazırlanan her görünümü ara bir sayfa meta dosyasına çizmesini ister; HotPDF daha sonra o sayfayı içe aktarır

6. hemNativeObjects; desteklenen hazırlanmış görünümleri doğrudan HotPDF sayfa çağrılarına eşler: arka planlı, hizalı, kırpılmış, karakter aralıklı ve çerçeveli seçilebilir memo metni, raster resim görüntü XObject'leri, basit şekil geometrisi, çizgi konturları ve görünüm URL ek açıklamaları

7. Finish EndDoc çağırır ve gerekiyorsa geçici PDF'i çağıranın sağladığı Stream'e kopyalar

 

Property'ler

Compressed - HotPDF stream sıkıştırması açık (varsayılan True). Tanısal PDF'ler için False yapın (~5 kat büyük dosyalar).

Title / Author / Subject / Keywords - belge üst verisi. Title boş olduğunda bağdaştırıcı Report.Name'e döner; böylece PDF'in her zaman boş olmayan bir başlığı olur

PageRange - HotPDF sayfa işlemleriyle aynı söz dizimini kullanan, isteğe bağlı bir tabanlı sayfa filtresi; örneğin 1, 1,3-5 ya da tüm sayfalar için boş dize

PDFVersion - belgenin hedefleyeceği PDF spec düzeyi. Varsayılan pdf17

PDFACompliance ve PDFXCompliance - HotPDF standart uyumluluk kapılarını üretilen rapor PDF'ine aktarır. Son uyumluluk iddiasına güvenmeden önce çağıranlar, gerekli ICC profilini, OutputIntent'i, etiketlemeyi veya baskı öncesi varlıkları yine normal HotPDF iş akışıyla hazırlar

CompressionLevel - FlateDecode düzeyi. Varsayılan clDefault

RenderDPI - FastReport sayfası TMetafileCanvas üzerinden rasterleştirilirken kullanılan piksel yoğunluğu. Yüksek = daha keskin metin ve çizgiler ama daha büyük meta dosya ve PDF. 96, FastReport'un yerel ekran DPI'sıdır; 200 (varsayılan), devasa dosyalar olmadan baskı kalitesi sonuç verir

ExportMode - o an eşlenen FastReport görünüm sınıfları için tüm sayfa meta dosyası dışa aktarması, nesne başına tuval dışa aktarması ya da yerel nesne dışa aktarması arasından seçim yapar

AutoCreateURL - THotPDF.AutoCreateURL'e iletilir; böylece native memo metni algılanan URL'ler için URI annotation'ları oluşturabilir

FontEmbedding ve NotEmbeddedFonts - olağan HotPDF yazı tipi gömme ilkesini üretilen rapor PDF'ine aktarır

ActivateProtection, UserPassword, OwnerPassword, CryptKeyLength, ProtectOptions ve EncryptMetadata - şifreli rapor çıktısı gerektiğinde HotPDF parola güvenlik ayarlarını aktarır

 

Tipik iş akışı

 

Exp := TfrxHotPDFExport.Create(nil);

try

  Exp.FileName := 'Report.pdf';

  Exp.Title := 'Monthly Statement';

  Exp.PDFVersion := pdf17;

  Exp.PDFACompliance := '3B';

  Exp.PageRange := '1,3-5';

  Exp.RenderDPI := 200;

  Exp.ExportMode := hemNativeObjects;

  Exp.AutoCreateURL := True;

  Exp.FontEmbedding := True;

  Exp.NotEmbeddedFonts.Add('Courier New');

  Exp.ActivateProtection := True;

  Exp.CryptKeyLength := aes256;

  Exp.OwnerPassword := 'owner';

  Exp.UserPassword := 'viewer';

  Exp.ProtectOptions := [prPrint, prInformationCopy];

  frxReport1.Export(Exp);

finally

  Exp.Free;

end;

 

Korunan yetenekler

Tüm sayfa ve nesne tuvali kipleri, FastReport'un standart düzen motorunun çizdiği vektör ve raster sayfa içeriğini korur. Yerel nesne kipi şu anda; desteklenen memo metnini arka plan, yatay/dikey hizalama ve çerçeve stilleriyle PDF metni olarak, resim görünümlerini görüntü XObject'leri olarak, basit şekilleri PDF geometrisi olarak, çizgi görünümlerini kontur olarak ve görünüm URL'lerini URI bağlantı ek açıklamaları olarak korur. Belge düzeyi üst veri her kipte korunur

 

Sınırlamalar

Ek yapısal eşleme gerektiren FastReport'a özgü PDF özellikleri (AcroForm alanları, adlandırılmış hedefler ve belge ana hatları) bu bağdaştırıcı tarafından aktarılmaz. PDF/A ve PDF/X kapı özellikleri HotPDF'e aktarılır; OutputIntent profilleri gibi standarta özgü varlıklar çağıranın sorumluluğunda kalır

 

Paketleme notu

Bağdaştırıcı, ana HotPDF*.dpk paketlerinin bir bağımlılığı yerine isteğe bağlı bir ek olarak dağıtılır; böylece FastReport'u olmayan projeler FastReport birimlerini çekmez

 

Ayrıca bkz.: TQRHotPDFExportFilter, TppHotPDFDevice, dxHotPDFExportReportLink, THPDFPage.ShowMetafile, Gelişmiş EMF/WMF desteği