此 HotPDF 元件示例演示瞭如何使用與 VCL 應用程式中 Delphi 開發人員已經使用的相同 TCanvas 工作流程,建立向量風格的 PDF 圖形。該示例不將 PDF 輸出視為獨立的繪圖模型,而是通過 HotPDF.Canvas 寫入文本和形狀,然後將結果儲存為 PDF 文件。
當應用程式已經具有基於 TCanvas 的圖表、圖表、預覽或自定義控制元件渲染程式碼時,此示例非常有用。核心模式很簡單:建立 THotPDF,指定輸出檔案,呼叫 BeginDoc,配置畫布狀態,繪製內容,然後使用 EndDoc 完成檔案。
在下面的程式碼中,繪圖迴圈渲染了三組彩色形狀。每組使用相同的座標系統,並且僅更改正在繪製的原始圖形:矩形、橢圓或圓角矩形。這使其成為一個緊湊的參考,用於測試生成的 PDF 中的畫布顏色、填充行為、文本放置和頁面佈局。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
program CanvasDraw; {$APPTYPE CONSOLE} uses {$IFDEF VER230} System.SysUtils, System.Classes, Vcl.Graphics, {$ELSE} SysUtils, Classes, Graphics, {$ENDIF} HPDFDoc; var I, Y: Integer; HotPDF: THotPDF; begin HotPDF:= THotPDF.Create(nil); try Randomize; HotPDF.AutoLaunch := true; HotPDF.FileName := 'CanvasDraw.pdf'; HotPDF.BeginDoc; // Create PDF file HotPDF.Canvas.Font.Size := 14; // Set canvas font size I :=20; Y := 60; HotPDF.Canvas.TextOut(10, 30, 'Canvas Rectangles'); // Print text while I <= 700 do begin // Draw colour HotPDF.Canvas.Brush.Color := random($FFFFFF); // rectangles HotPDF.Canvas.Rectangle(I, Y, I+90, Y + 160); Inc(I, 30); Inc( Y, 3 ); end; I :=20; Y := 350; HotPDF.Canvas.TextOut(10, 320, 'Canvas Ellipses'); // Print text while I <= 700 do // Draw colour begin // ellipses HotPDF.Canvas.Brush.Color := random($FFFFFF); HotPDF.Canvas.Ellipse(I, Y, I+90, Y + 160); Inc(I, 30); Inc( Y, 3 ); end; I :=20; Y := 680; HotPDF.Canvas.TextOut(10, 650, 'Canvas RoundRects'); // Print text while I <= 700 do begin HotPDF.Canvas.Brush.Color := random($FFFFFF); // Draw colour HotPDF.Canvas.RoundRect(I, Y, I+90, Y + 160, 20, 20); // roundrects Inc(I, 30); Inc( Y, 3 ); end; HotPDF.EndDoc; // Close PDF file finally HotPDF.Free; end; end. |
此示例展示的內容
- 如何初始化 THotPDF,以執行基於控制台的 Delphi PDF 生成任務。
- 如何使用 HotPDF.Canvas 進行文本和基本的幾何圖形繪製。
- 筆刷顏色如何影響生成的 PDF 中填充形狀的外觀。
- 如何通過重複座標構建分層視覺輸出,而無需點陣圖螢幕截圖。
實現說明
PDF 頁面的最終化僅在呼叫 EndDoc 後完成,因此生產程式碼應在元件的生命週期周圍保留 try/finally 塊,以避免在繪圖失敗時留下部分寫入的檔案。為了獲得可預測的測試輸出,將 Randomize 和隨機顏色替換為固定顏色值。
基於 Canvas 的 PDF 繪圖最適合於報告、疊加層、圖表和生成的表單,這些輸出應在任何縮放級別下保持清晰。如果源繪圖依賴於螢幕 DPI 或裝置特定的字型,請在釋出之前,在乾淨的系統上驗證最終的 PDF 檔案。