喫茶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 が必要です.


[7856] Re2:Haru Free PDF Library返信 削除
2014/8/29 (金) 19:20:19 Mr.XRAY
> Haru PDF Library のサンプルです.

一応,念のため.
[未定義のエラーとuses部の見方]
http://mrxray.on.coocan.jp/bbs/DelphiBBS/mrxray_delphifan_coffe.cgi?tree=s7849#7849

なお,上の [7855] の Haru PDF のサンプルについての質問には
応じかねます.特に「未定義のエラー」に関しては (笑)


[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


[7860] Re3:Haru Free PDF Library返信 削除
2014/8/30 (土) 12:04:45 Mr.XRAY
システムに 創英角ポップ体標準 というフォントがインストールされています.
このフォントを使用した例です.


[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 ) 文書の表示と印刷] に添付したものと
全く同じです.


[7857] Google の検索語句返信 削除
2014/8/29 (金) 20:41:53 Mr.XRAY
Google で検索してみました.
「Delphi PDF」と「PDF Delphi」とでは微妙にヒットの順番等が違うのですね.
えっ? 白々しい ?
う〜む (^^;


[7871] Re:PDF の作成や印刷等返信 削除
2014/9/2 (火) 22:58:24 igy
▼ Mr.XRAYさん

FastReportについてですが、

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


で、

> Delphi XE2 以降には 機能を限定した FastReport のデモバージョンが実装されています.

とありますが、デモバージョンというより、
FastReport 4 Embarcadero RAD Edition(または、FastReport VCL Embarcadero Edition)
が正確かもしれません。

Comparison of FastReport VCL 5 Editions
http://www.fast-report.com/en/products/report-for-delphi-fastreport-4-feature-matrix.html/
レポーティングソリューション FastReport VCL | Embacadero との比較
https://www.agtech.co.jp/products/fastreportvcl/vs_embarcadero.html
FastReport in Delphi, C++Builder and RAD Studio
https://www.embarcadero.com/jp/products/rad-studio/fastreport

FastReport VCL Basic Edition(Ver.4 英語版)を使っていましたが、
3つ目のembarcaderoのサイトにある比較表にあるように、
Embarcadero RAD Edition は、(少し機能が削られていますが)Basic Edition と
ほぼ同じような印象があります。


[7872] Re2:PDF の作成や印刷等返信 削除
2014/9/2 (火) 23:30:44 Mr.XRAY
▼ igyさん,どうもです.

> > Delphi XE2 以降には 機能を限定した FastReport のデモバージョンが実装されています.
>
> とありますが、デモバージョンというより、
> FastReport 4 Embarcadero RAD Edition(または、FastReport VCL Embarcadero Edition)
> が正確かもしれません。

  (以下,略)

情報ありがとうございます.
何か文章というか,用語を考えて書き直してみます.
比較の表も便利なので,リンクに追加させていただきます.


[7913] Re3:PDF の作成や印刷等返信 削除
2014/9/9 (火) 14:45:15 Mr.XRAY
▼ igyさん,みなさん,

> 情報ありがとうございます.

FastReport 関係の記事を直しておきました.
「デモ版」じゃ印象が大分違いまいすよね (汗)

>の libHaru 2.3.0RC2 を使用して DLL を作成しました.
>C++Builder はもっていないので,Visual Studio 2013 Express を使用しました.


これを使用した添付のサンプルに hpdf_Readme.txt という説明を書いておきました.
http://mrxray.on.coocan.jp/Delphi/zip/hpdf_Readme.txt


[7914] Re4:PDF の作成や印刷等返信 削除
2014/9/9 (火) 15:12:06 igy
▼ Mr.XRAYさん
>
> FastReport 関係の記事を直しておきました.



修正ありがとうございました。

ちなみに、

FastReport VCLのFAQ

日本語のワードラップの折り返し位置が正しくないようですが、なぜでしょうか?
https://www.agtech.co.jp/support/faq/fastreport/fastreport_vcl/20130308020.html

で、

>この問題は、v4.13.5 で正しい折り返し位置に修正されました。

とあり、

XE2〜XE4にバンドルしているFastReportは、

Delphi Registered User Downloads
http://cc.embarcadero.com/reg/delphi

で、Ver.4.14.2 が公開されてますので、適用されるのもよいかと思います。



[7916] FastReportのFAQ返信 削除
2014/9/9 (火) 15:47:02 Mr.XRAY
▼ igyさん,

> で、Ver.4.14.2 が公開されてますので、適用されるのもよいかと思います。

またまた,サンクスです.
前に,どこかの掲示板でも,折り返しのことが話題になっていたような.

今気づいたのですが,これ.AG-TECH なんですね.
[日本語のワードラップの折... ] 直接ではなく,FAQ のページへのリンクを
[720] の記事に追加しておきました.

https://www.agtech.co.jp/support/faq/fastreport/fastreport_vcl/


[7917] Re:FastReportのFAQ返信 削除
2014/9/9 (火) 16:26:32 igy
▼ Mr.XRAYさん
> 今気づいたのですが,これ.AG-TECH なんですね.

ですね。

日本語の説明書、デモプログラム、テクニカル サポート、100% 日本語化されたユーザー インターフェイス

などが必要な場合、AG-TECHから購入したほうがよいかもしれません。



[8339] Re:PDF の作成や印刷等返信 削除
2014/12/30 (火) 15:30:35 igy
▼ Mr.XRAYさん
今、WordやExcelのファイルをPDFファイルで出力するのを、調べていたのですが、
WordやExcelの2010以降(アドインインストールすれば、2007以降)だと、
ExportAsFixedFormatメソッドがあり、
プログラムから、WordやExcelを操作して、簡単にPDFファイルをエクスポートできそうです。

参考までに・・・


[8341] Re2:PDF の作成や印刷等返信 削除
2014/12/30 (火) 15:45:10 TS
▼ igyさん
> ▼ Mr.XRAYさん

> 参考までに・・・

最近知ったのですが、Delphi-fanさんの記事に以下のものがありました。

http://hiderin.air-nifty.com/delphi/excel/index.html

[8342] Re3:PDF の作成や印刷等返信 削除
2014/12/30 (火) 16:18:04 igy
▼ TSさん
> 最近知ったのですが、Delphi-fanさんの記事に以下のものがありました。
> http://hiderin.air-nifty.com/delphi/excel/index.html


情報ありがとうございます。

Delphi-fanさんの記事もそうですが、Mr.XRAYさんのエクセル操作関連の記事なども、
かなり参考になりますよね。

私なんて、

PDFファイルを作成するには?
https://forums.embarcadero.com/thread.jspa?threadID=107571&tstart=30

みたいに、ちょこっと検索して、

> 試していませんが、
> ○○○○○○
> は、いかがですか?


みたいな書き込みばっかりで・・(汗)



[8345] Re3:PDF の作成や印刷等返信 削除
2014/12/30 (火) 18:00:17 Mr.XRAY
▼ TSさん

> 最近知ったのですが、Delphi-fanさんの記事に以下のものがありました。
>
> http://hiderin.air-nifty.com/delphi/excel/index.html


おおっ,具体的なコードが...
しかし,VCL も,これ以上新しい話題はないだろうなぁ,と思いつつ,
結構あるもんですね.


[8344] Re2:PDF の作成や印刷等返信 削除
2014/12/30 (火) 17:56:30 Mr.XRAY
▼ igyさん

> ExportAsFixedFormatメソッドがあり、
> プログラムから、WordやExcelを操作して、簡単にPDFファイルをエクスポートできそうです。


つまり,記事に書いておけ,ということですね.
プレッシャーが.....
ここのところ,HTTP, TS さんの件,プリンタ設定コンポの件等が
ありましたので,後日,やっておきたいと思います (^^;
いつ ? というは訊かないできくださいませ.

一応全部「未処理」のテキストファイルに追加しておきました.


[8346] Re3:PDF の作成や印刷等返信 削除
2014/12/30 (火) 18:42:40 igy
▼ Mr.XRAYさん
> つまり,記事に書いておけ,ということですね.
> プレッシャーが.....


Excelだと、

ブック全体なら、
Book.ExportAsFixedFormat(Type:=0(*xlTypePDF*), Filename:=ファイル名);

特定のシートなら、
ws := Book.Worksheets[indexまたはシート名];
ws.ExportAsFixedFormat(Type:=0(*xlTypePDF*), Filename:=ファイル名);

複数のシートなら
StringList1にエクスポートしたいシート名を格納し、
wslst := Book.Sheets[VarArrayFromStrings(StringList1)];
wslst.Select;
Book.ActiveSheet.ExportAsFixedFormat(Type:=0(*xlTypePDF*), Filename:=ファイル名);

みたいな感じでできそうです。


[8354] Re4:PDF の作成や印刷等返信 削除
2014/12/31 (水) 09:27:03 igy
Wordは、

Doc.ExportAsFixedFormat(OutputFileName:=ファイル名, ExportFormat:=17(*wdExportFormatPDF*), DocStructureTags:=false);

こんな感じで。


[8351] Re2:PDF の作成や印刷等返信 削除
2014/12/30 (火) 23:03:26 Mr.XRAY
▼ igyさん

> WordやExcelの2010以降(アドインインストールすれば、2007以降)だと、

Excel 2003 ですが,図のようなアイコンが表示されていました.
Excel 2010 だとメニューからの操作のようですね.


[8352] Re3:PDF の作成や印刷等返信 削除
2014/12/30 (火) 23:12:08 igy
▼ Mr.XRAYさん
> Excel 2003 ですが,図のようなアイコンが表示されていました.

もしかして、Adobe Acrobat をインストールされていますか?
(あるいは他の有償のPDF作成ツールとか・・)

> Excel 2010 だとメニューからの操作のようですね.

Excel2013だと、

http://kokodane.com/2013_kiso20.htm

こんな感じでエクスポートできます。


[8353] Re4:PDF の作成や印刷等返信 削除
2014/12/31 (水) 09:09:54 Mr.XRAY
▼ igyさん

> もしかして、Adobe Acrobat をインストールされていますか?

は〜い,Adobe Acrobat 入れています.

> Excel2013だと、
>
> http://kokodane.com/2013_kiso20.htm


なるほど


INCM/CMT
Cyclamen v3.82