喫茶XRAYトップページ

[スレッド全体
]

[7853] PDF の作成や印刷等返信 削除
2014/8/29 (金) 19:02:40 Mr.XRAY
[720_Acrobat ( PDF ) 文書の表示と印刷] の参考リンクの記事を更新しました.
ですが,まだ,整理された記事にはなっていませんが,一応,ここまで.

PDF の作成には,
(1) レポートツールとして,また,その一部して
(2) 仮想プリンタドライバを使用
(3) その他

とあると思いますが,これらのカテゴリに分類がちょっと難しかったので.

[07_PDF 文書の作成や操作関係の参考リンク - Adobe サイト以外]
http://mrxray.on.coocan.jp/Delphi/plSamples/720_Acrobat.htm#07

参考になれば幸いです.
ついでに,[722] のサンプルも動作確認と,少しばかり修正しています.


[7854] Haru Free PDF Library返信 削除
2014/8/29 (金) 19:03:51 Mr.XRAY
[720] の参考リンクにあった Haru Free PDF Library のリンクは削除しました.

Haru Free PDF Library(Haru PDF) について調べた結果を書いておきます.

Haru PDF は菅野さんという方が開発したライブラリです.
http://www.ipa.go.jp/files/000006420.pdf

菅野さんが開発した最終バージョンは 2.0.8 です.
以下から libharu_2_0_8_dll_win32.zip をダウンロードします.
この中にある libhpdf.dll を使用します.

[Haru Free PDF Library U]
http://libharu.sourceforge.net/ の [download] から以下のリンクへ移動
http://sourceforge.net/projects/libharu/files/libharu2/2.0.8/
[PDFマニュアル]
http://src.gnu-darwin.org/ports/biology/migrate/work/migrate-2.3/src/haru/experimental/LibHaru.pdf

Haru Free PDF Library は,現在,以下で,外国の方が提供しています.
ただし,これらには,DLL は同梱されていません.
C または C++ でコンパイルして作成する必要があります.

[Haru Free PDF Library]
http://libharu.org/

有志の方が作成した日本語のマニュアル類が以下にあります.

[libHaruの部屋]
http://www.t-net.ne.jp/~cyfis/libharu/index.html

[LIII. Haru PDF 関数]
http://taichistereo.net/php_man/ref.haru.html


[7855] Re:Haru Free PDF Library返信 削除
2014/8/29 (金) 19:11:32 Mr.XRAY
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 が必要です.


[7859] Re2:Haru Free PDF Library返信 削除
2014/8/30 (土) 10:43:22 Mr.XRAY
>日本語フォントを使用するには工夫が必要です.
>面倒そうなのでやっていません.


日本語フォントを使用するテストをしてみました.

添付の EXE は Windows 7 U64(SP1) + Delphi XE(UP1) Pro で作成しています.
文字列は PAnsiChar で扱うように,ユニットを修正しています.
Delphi 6 以上で使用可能と思います.

http://mrxray.on.coocan.jp/Delphi/zip/HaruPDFLib_DelphiTest.zip

[参考リンク]
[Haru Free PDF Library U Fonts and Encodings]
http://libharu.sourceforge.net/fonts.html

http://www.t-net.ne.jp/~cyfis/libharu/graphics/HPDF_Page_TextOut.html
http://www.t-net.ne.jp/~cyfis/libharu/graphics/HPDF_Page_TextRect.html

[別のバージョンで作成された Delphi プロジェクトの利用]
http://mrxray.on.coocan.jp/Delphi/Others/Delphi_Versionl.htm#01


[7865] Re3:Haru Free PDF Library返信 削除
2014/9/2 (火) 09:29:31 Mr.XRAY
> http://mrxray.on.coocan.jp/Delphi/zip/HaruPDFLib_DelphiTest.zip

更新しました.

[Haru Free PDF Library]
http://libharu.org/

の libHaru 2.3.0RC2 を使用して DLL を作成しました.
C++Builder はもっていないので,Visual Studio 2013 Express を使用しました.
HPDF_UseUTFEncodings という関数を追加していますが,
使い方は全く分かりません (^^;

内容は,今回 [720_Acrobat ( PDF ) 文書の表示と印刷] に添付したものと
全く同じです.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82