Bu HotPDF Bileşeni örneği, Delphi geliştiricilerinin VCL uygulamalarında halihazırda kullandığı aynı TCanvas iş akışıyla vektör tarzı PDF çizimlerinin nasıl oluşturulacağını gösterir. Örnek, PDF çıktısını ayrı bir çizim modeli olarak ele almak yerine, metni ve şekilleri HotPDF.Canvas aracılığıyla yazar ve ardından sonucu bir PDF belgesi olarak kaydeder.
Örnek, bir uygulamada halihazırda TCanvas'a dayalı grafik, diyagram, önizleme veya özel kontrol oluşturma kodu bulunduğunda kullanışlıdır. Temel model basittir: THotPDF oluşturun, çıktı dosyasını atayın, BeginDoc'u çağırın, tuval durumunu yapılandırın, içeriği çizin ve dosyayı EndDoc ile tamamlayın.
Aşağıdaki kodda, çizim döngüsü üç grup renkli şekli oluşturur. Her grup aynı koordinat sistemini kullanır ve yalnızca çizilen ilkel öğeyi değiştirir: Dikdörtgen, Elips veya Yuvarlak Dikdörtgen. Bu, onu oluşturulan bir PDF'de tuval renklerini, dolgu davranışını, metin yerleşimini ve sayfa düzenini test etmek için kompakt bir referans haline getirir.
Urvanov Sözdizimi Vurgulayıcı v2.9.1|
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. |
Örnek neyi gösteriyor?
- Konsol tarzı Delphi PDF oluşturma görevi için THotPDF nasıl başlatılır.
- Metin ve temel geometrik çizim için HotPDF.Canvas nasıl kullanılır?
- Fırça renklerinin oluşturulan PDF'deki doldurulmuş şekilleri nasıl etkilediği.
- Tekrarlanan koordinatlar, bitmap ekran görüntüleri olmadan nasıl katmanlı görsel çıktı oluşturabilir?
Uygulama notları
PDF sayfası yalnızca EndDoc çağrıldıktan sonra sonlandırılır, bu nedenle üretim kodu try/finally bloğunu bileşen ömrü boyunca tutmalı ve çizim başarısız olursa kısmen yazılmış bir dosya bırakmaktan kaçınmalıdır. Deterministik test çıktısı için Rastgele ve rastgele renkleri sabit renk değerleriyle değiştirin.
Kanvas tabanlı PDF çizimi, çıktının herhangi bir yakınlaştırma düzeyinde keskin kalması gereken raporlar, kaplamalar, diyagramlar ve oluşturulan formlar için en iyi sonucu verir. Kaynak çizim ekran DPI'sına veya cihaza özel yazı tiplerine bağlıysa göndermeden önce son PDF'yi temiz bir sistemde doğrulayın.
[Format Süresi: 0,0019 saniye]