delphi llPDFLib 操作PDF

llPDFLib 操作PDF

属性和方法

TPDFCanvas.SetActiveFont

procedure SetActiveFont(FontName: AnsiString; FontStyle: TFontStyles; FontSize: Extended; FontCharset: TFontCharset = ANSI_CHARSET); overload;

设置文本操作的活动truetype字体。llPDFLib模拟 fsUnderLinefsStrikeOut 样式。 如果字体没有 fsBoldfsItalic 样式,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;
posted @ 2022-02-17 14:46  txgh  阅读(1129)  评论(0编辑  收藏  举报