Delphi llPDFLib 操纵 PDF
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;
上一篇: 单因子测试(上)--因子中和