1. 程式人生 > 其它 >delphi llPDFLib 操作PDF

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;