Haru PDF Library のサンプルです.
動作確認は,Windows 7 U64(SP1) + Delphi 2007-R2 です.
このコードのままでは,Delphi 2009 以上でコンパイルしても,
コンパイルのエラーは発生しませんが,正常に動作しません.
Delphi 2009 以上で使用するには,hpdf_types.pas, hpdf_consts.pas 内の
PChar を PAnsiChar にして,使用する文字列の型を AnsiString にすれば,
PDF 文書が作成できます.
日本語フォントを使用するには工夫が必要です.
面倒そうなのでやっていません.
個人的には,Quick PDF, Gnostice PDF に比較して,ちょっと使いづらい気もします.
ただ,Haru PDF は無料で使用可能です.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
uses
hpdf, hpdf_types, hpdf_consts;
{$R *.dfm}
procedure error_handler (error_no: HPDF_STATUS; detail_no: HPDF_STATUS;
user_data: Pointer); stdcall;
var
message: string;
begin
message := 'ERROR: ' + IntToStr(error_no) + '-' + IntToStr(detail_no);
raise Exception.Create(message);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
HaruPdf : HPDF_Doc;
HaruFont : HPDF_Font;
HaruPage : HPDF_Page;
FilePath : String;
begin
//HPDF_Docオブジェクトの生成
//エラー処理用のコールバック関数を指定
HaruPdf := HPDF_New(@error_handler, nil);
try
//サムネイルを表示するようにする
HPDF_SetPageMode(HaruPdf, HPDF_PAGE_MODE_USE_THUMBS);
//新規ページを作成
HaruPage := HPDF_AddPage(HaruPdf);
//ページのサイズと用紙の方向を指定
HPDF_Page_SetSize(HaruPage, HPDF_PAGE_SIZE_A4, HPDF_PAGE_LANDSCAPE);
//組み込みフォントを使用
HaruFont := HPDF_GetFont(HaruPdf, 'Courier-Bold', nil);
//線の色を設定
HPDF_Page_SetRGBStroke(HaruPage, 0, 0, 0);
//塗り潰しの色を設定
HPDF_Page_SetRGBFill(HaruPage, 0.7, 0.8, 0.9);
//四角形を描画
HPDF_Page_Rectangle(HaruPage, 150, 150, 550, 250);
//四角形を塗り潰す
HPDF_Page_FillStroke(HaruPage);
//フォントサイズを設定
HPDF_Page_SetFontAndSize(HaruPage, HaruFont, 60);
//輪郭線の色
HPDF_Page_SetRGBStroke(HaruPage, 0.5, 0.5, 0.1);
//テキストの塗り潰しの色を設定
HPDF_Page_SetRGBFill(HaruPage, 1, 1, 1);
//テキストを塗り潰しで描画
HPDF_Page_SetTextRenderingMode(HaruPage, HPDF_FILL_THEN_STROKE);
//テキストの表示
HPDF_Page_BeginText(HaruPage);
HPDF_Page_TextOut(HaruPage, 210, 270, 'Hellow World');
HPDF_Page_EndText(HaruPage);
//ディスクに保存
FilePath := 'ABC.pdf';
HPDF_SaveToFile(HaruPdf, PChar(FilePath));
finally
HPDF_Free (HaruPdf);
end;
end;
end.
下図は,上のコードを実行して,保存した PDF 文書を表示した画面です.
Adobe Reader X で表示しています.
システムに Adobe Acrobat がなくても,PDF 文書は作成できます.
PDF 文書の表示には Adobe Acrobat または Adobe Reader が必要です.
|