首先,F(xiàn)astReport VCL 是一個報告生成器?;谶@個結(jié)論,我們可以假設(shè)在報表中預(yù)覽或嵌入其他格式的文檔是多余的。但根據(jù)客戶的要求,我們可以看到相反的觀點。我們的許多客戶正在通過新舊系統(tǒng)的集成來解決任務(wù)。這種舊系統(tǒng)可能包含需要連接到新報告的已經(jīng)準備好的文檔。換句話說 – 將第三方格式的文檔嵌入和查看到報告中,向其中添加新頁面或字段。
對于 FastReport VCL 2021.3 中的此類任務(wù),我們添加了新的報告對象 - TfrxPDFView。此對象使用開源庫Pdfium,旨在查看報告中的 PDF 文檔。您可以從源代碼構(gòu)建這個庫,也可以使用 FastReport VCL 安裝包(Bin 文件夾中的 frx_pdfium.dll 和 frx_pdfium_64.dll)中的一個現(xiàn)成的庫。手動構(gòu)建后,您需要將庫重命名為 frx_pdfium.dll(對于 32 位系統(tǒng))和 frx_pdfium_64.dll(對于 64 位系統(tǒng))。對于手動構(gòu)建,您需要 Visual Studio 和 Google depot_tools。
如上所述,您不需要構(gòu)建 Pdfium,您可以使用 FastReport VCL 安裝包中準備好的庫,但如果您的公司有安全限制并且需要在您的端構(gòu)建所有代碼,請使用上面的鏈接。
該TfrxPDFView既可以在一個和幾個報表頁畫文件。使用報表引擎拆分對象的能力。讓我們更仔細地檢查一下如何使用這個對象以及它提供了什么功能。
清除安裝最新的FastReport VCL 2021.3 版本后,該組件應(yīng)該出現(xiàn)在FastReport VCL 部分的Delphi 組件面板上。
只需將 TfrxPDFObject 放在申請表上,即可在運行時使用 TfrxPDFView。如果您從新項目開始,還要將 TfrxReport 組件添加到表單中,然后雙擊它調(diào)用報告設(shè)計器。
然后單擊報表設(shè)計器對象面板中的 PDF 對象并在報表的帶區(qū)上創(chuàng)建一個新對象。就像任何其他 FastReport VCL 對象一樣。
對象已創(chuàng)建。之后,應(yīng)出現(xiàn)允許加載 PDF 文檔的對象編輯器。
TfrxPDFView允許打印多頁文檔。特別為此 TfrxPDFView 有新的屬性。
DetailStretchMode 屬性負責顯示對象容器內(nèi)的內(nèi)容,可以是以下值之一:
pdOneToOneStrongStretch – 始終使用報表對象大小拉伸頁面。它不保持縱橫比。
pdOneToOneNormalize – 頁面總是被拉伸并保持 PDF 文檔中原始頁面的縱橫比。
pdManyToOneNormalize - 允許將多個頁面放入報表對象區(qū)域并保持 PDF 文檔中原始頁面的縱橫比。
打印多頁PDF文檔
FastReport VCL 允許將 PDF 文檔作為 PDF 文檔的一頁打印到 PDF 文檔的每一頁的報告的一頁上。
我們已經(jīng)在報表的報表標題欄上創(chuàng)建并加載了一個 PDF 文檔。讓我們將其拉伸到報告模板頁面的整個頁面。它應(yīng)該如下圖所示。
如果我們現(xiàn)在點擊報告預(yù)覽,即使一個文檔有多于一頁,我們也只會看到加載 PDF 文檔的一頁。要打印所有頁面,我們需要執(zhí)行一系列步驟。
第 1 步:打開 AllowSplit 和 Stretched 屬性,并將它們設(shè)置為 True 在以 TfrxPDFView 作為子項的帶區(qū)對象中。我們需要這個帶區(qū)進行拉伸和切分。
第2步:在 TfrxPDFView 對象上將 StretchMode 屬性設(shè)置為 smActualHeight 或 smMaxHeight。這個物體現(xiàn)在可以拉伸了。
讓我們運行報告預(yù)覽并檢查報告輸出。
FastReport VCL 在報告頁面上打印 PDF 文檔的所有頁面。
TfrxPDFView 對象具有和其他屬性。“密碼”屬性設(shè)置 PDF 文檔密碼。“DrawOptions”標志允許控制文檔輸出。
此外,您可以使用 FileLink 屬性將文件名用作 TfrxPDFView 對象的源。這還不是全部!使用新的 DataLink 屬性,甚至可以通過 http 和 https 協(xié)議加載文檔。
現(xiàn)在 FastReport VCL 可以在報告中打印 PDF 文檔,而不僅僅是生成它們!
京ICP備09015132號-996 | 違法和不良信息舉報電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號豪柏大廈C2座11層1105室
北京哲想軟件集團旗下網(wǎng)站:哲想軟件 | 哲想動畫