llPDFLib 操作PDF
屬性和方法
TPDFCanvas.SetActiveFont
procedure SetActiveFont(FontName: AnsiString; FontStyle: TFontStyles; FontSize: Extended; FontCharset: TFontCharset = ANSI_CHARSET); overload;
設置文本操作的活動truetype字體。llPDFLib模擬 fsUnderLine 和 fsStrikeOut 樣式。 如果字體沒有 fsBold 或 fsItalic 樣式,llPDFLib也會模擬它。
參數
FontName truetype字體的名稱。
FontStyle 字體的樣式。
FontSize 字體大小。
FontCharset Charset,用於ansi字符串。 默認值 ANSI_CHARSET。
TPDFCanvas.TextOut
procedure TextOut(X: Extended; Y: Extended; Orientation: Extended; TextStr: AnsiString); overload;
文本字符串輸出。
參數
X 文本輸出起始點的X坐標。
Y 文本輸出起始點的Y坐標。
Orientation 文本方向。
TextStr 要輸出的文本字符串。
TPDFCanvas.SetColor
procedure SetColor(Color: TPDFColor);
設置閉合區域的填充顏色和線條的顏色。
參數
Color 填充和線條的顏色。
TPDFCanvas.SetColorFill
procedure SetColorFill(Color: TPDFColor);
設置閉合區域的填充顏色。
參數
Color 填充的顏色。
TPDFCanvas.SetLineWidth
procedure SetLineWidth(lw: Extended);
將當前線寬設置為以點為單位指定的值。
參數
lw 新線寬 。
TPDFCanvas.Rectangle
procedure Rectangle(X1: Extended; Y1: Extended; X2: Extended; Y2: Extended);
繪制一個矩形,其中左上角位於( X1 , Y1 ),右下角位於( X2 , Y2 )。
參數
X1 矩形左上角的X坐標。
Y1 矩形左上角的Y坐標。
X2 矩形右下角的X坐標。
Y2 矩形右下角的Y坐標。
TPDFCanvas.Stroke
procedure Stroke;
通過當畫筆顏色和當前線寬描邊當前路徑。
TPDFCanvas.FillAndStroke
procedure FillAndStroke;
首先使用當前填充顏色填充內部,然后使用當前畫筆顏色描邊路徑。PDF的圖形狀態為填充和描邊操作保留了不同的顏色,因此可以使用這些組合操作符。
TPDFCanvas.ShowImage
procedure ShowImage(ImageIndex: Integer; X: Extended; Y: Extended); overload;
在畫布上顯示圖像。
參數
ImageIndex 生成的圖像中的圖像索引。
X 矩形左上角的X坐標。
Y 矩形左上角的Y坐標。
TPDFImages.AddImage
function AddImage(FileName: TFileName; Compression: TImageCompressionType): Integer; overload;
function AddImage(Image: TGraphic; Compression: TImageCompressionType): Integer; overload;
根據壓縮類型將文件中的圖像或TGraphic
中的圖像添加到生成的文檔中。目前支持bmp(TBitmap
)和jpeg(TJPegImage
)格式。
參數
FileName 要插入到文檔中的圖像的文件名。
Image 要插入到文檔中的圖像的對象。
Compression 壓縮類型,將圖像保存在文檔中。
返回值
返回保存在文檔圖像中的索引。
由於圖像可能會占用很大的尺寸,因此會立即將其寫入生成的輸出流或文件。
llPDFCanvas.ColorToPDFColor
function ColorToPDFColor(Color: TColor): TPDFColor;
將TColor轉換為PDFColor的函數。
參數
Color 顏色 。
TImageCompressionType
指定PDF文檔中圖像的存儲類型
unit
llPDFTypes
TImageCompressionType = (
itcFlate,
itcJpeg,
itcCCITT3,
itcCCITT32d,
itcCCITT4,
itcJBIG2
);
- itcFlate Flate 壓縮(可用於黑白和彩色圖像)
- itcJpeg Jpeg 壓縮(可用於黑白和彩色圖像)
- itcCCITT3 CCITT3(僅適用於黑白圖像)
- itcCCITT32d CCITT32d(僅適用於黑白圖像)
- itcCCITT4 CCITT4(僅適用於黑白圖像)
- itcJBIG2 JBIG2(用於掃描頁面的黑白圖像)
TPDFColor
確定繪制圖形基元時使用的色彩空間和顏色。
unit
llPDFTypes
TPDFColor = record
ColorSpace: TPDFColorSpace;
case TPDFColorSpace of
csCMYK: (Cyan: Extended;
Magenta: Extended;
Yellow: Extended;
Key: Extended;);
csGray: (Gray: Extended;);
csRGB: (Red: Extended;
Green: Extended;
Blue: Extended;);
end;
例子
輸出文字
uses llPDFDocument, llPDFCanvas;
procedure TForm1.Button5Click(Sender: TObject);
var
Pdf: TPDFDocument;
begin
Pdf := TPDFDocument.Create(nil);
try
//創建PDF文檔
Pdf.AutoLaunch := True;
Pdf.FileName := 'C:\Users\Administrator\Desktop\ceshi.pdf';
Pdf.BeginDoc;
with Pdf.CurrentPage do
begin
//設置字體
SetActiveFont('宋體', [fsBold], 20, GB2312_CHARSET);
//設置字體顏色
SetColor(ColorToPDFColor(clBlue));
//輸出內容
TextOut(100, 100, 0, '文本內容');
end;
Pdf.EndDoc;
finally
Pdf.Free;
end;
end;
輸出矩形
uses llPDFDocument, llPDFCanvas;
procedure TForm1.Button6Click(Sender: TObject);
var
Pdf: TPDFDocument;
begin
Pdf := TPDFDocument.Create(nil);
try
//創建PDF文檔
Pdf.AutoLaunch := True;
Pdf.FileName := 'C:\Users\Administrator\Desktop\ceshi.pdf';
Pdf.BeginDoc;
with Pdf.CurrentPage do
begin
//設置顏色
SetColor(ColorToPDFColor(clRed));
SetColorFill(ColorToPDFColor(clYellow));
//設置寬度
SetLineWidth(1);
//畫矩形
Rectangle(100, 100, 250, 175);
Stroke;
//填充矩形
Rectangle(100, 200, 200, 300);
FillAndStroke;
end;
Pdf.EndDoc;
finally
Pdf.Free;
end;
end;
插入圖片
uses llPDFDocument, llPDFTypes;
procedure TForm1.Button8Click(Sender: TObject);
var
Pdf: TPDFDocument;
Bmp1, Bmp2: Integer;
begin
Pdf := TPDFDocument.Create(nil);
try
//創建PDF文檔
Pdf.AutoLaunch := True;
Pdf.FileName := 'C:\Users\Administrator\Desktop\ceshi.pdf';
Pdf.BeginDoc;
Bmp1 := Pdf.Images.AddImage('C:\Users\Administrator\Desktop\bmp0001.bmp', itcJpeg);
Bmp2 := Pdf.Images.AddImage('C:\Users\Administrator\Desktop\bmp0002.bmp', itcJpeg);
with Pdf.CurrentPage do
begin
ShowImage(Bmp1, 10, 50);
ShowImage(Bmp2, 10, 200);
end;
Pdf.EndDoc;
finally
Pdf.Free;
end;
end;