Mam's WebSite
無料フリーソフト ダウンロード

トップページ自作フリーソフトダウンロード(Delphiコンポーネント)⇒PowerPDF

PowerPDF 日本語版とは

DelphiからPDFファイルを作成することができるコンポーネント

TPReport クラス

プロパティ
   FileName:string;
作成するPDFファイルを保存するファイル名(フルパス指定推奨)です。
(例)c:\a.pdf
 
Author:string;
PDFファイルのプロパティの作者を入力します。
 
CreationDate:TDateTime;
PDFファイルのプロパティの作成日を入力します・・・がうまく動きません^^
 
Creator:string;
PDFファイルのプロパティの作成したソフト名を入力するようです。
 
KeyWords:string;
PDFファイルのプロパティのキーワードを入力します。
 
ModDate:TDateTime;
PDFファイルのプロパティの何かの日を入力します・・・がうまく動きません^^
 
Title:string;
PDFファイルのプロパティのタイトルを入力します。
 
Subject:string;
PDFファイルのプロパティのサブタイトルを入力します。
 
PageMode:TPdfPageMode;
PDFファイルを開くときに左側のペインに表示するものを設定できます。
TPdfPageMode=(pmUseNone,pmUseOutlines,pmUseThumbs,pmFullScreen);
pmUseNone 「しおり」や「ページ」を表示しないで開きます。
pmUseOutlines 「しおり」を表示して開きます。
pmUseThumbs 「ページ」(サムネイルイメージ)を表示して開きます。
pmFullScreen フルスクリーンモードで、メニューバーも表示しないで開きます。
 
PageLayout: TPdfPageLayout;
PDFファイルを開くときに、ページをどのように表示するかを設定できます。
TPRPageLayout = (plSinglePage, plOneColumn, plTwoColumnLeft, plTwoColumnRight);
plSinglePage 1ページ目と2ページ目の境目をまたがって表示できない、シングルページのレイアウト。(単一ページ)
plOneColumn 1ページ目と2ページ目の境目をまたがって表示できるレイアウト。(連続ページ)
plTwoColumnLeft 左右に2ページ分表示するレイアウト。(見開きページ)
plTwoColumnRight 左右に2ページ分表示するレイアウト。(連続見開きページ)
 
CompessionMethod:TPdfCompressionMethod;
PDFファイルを圧縮するかしないかのプロパティ。実際にはかなり古いzlibライブラリが必要なので、cmNoneしか設定できない。
TPdfCompressionMethod=(cmNone,cmFlatDecode);
 
PageNumber:integer;
Print命令を与えたページの番号(ページの数)を表します。このプロパティを用いてページ番号を振ることもできます。
(例)ページにページ番号振ります。
PReport1.BeginDoc;
PRLabel1.Caption:=IntToStr(PReport1.PageNumber+1);
PReport1.Print(PRPage1);
PRLabel1.Caption:=IntToStr(PReport1.PageNumber+1);
PReport1.Print(PRPage1);
PReport1.EndDoc;
 
OpenAction: TPRDestination;
PDFファイルを開くときの表示倍率や位置を指定することができるようです。
TRDDestination型を参照。
(例)PDFファイルを開くときに3ページ中、2ページ目をズーム倍率50%で開きます。
Begin
 PReport1.BeginDoc;
 PReport1.Print(PRPage1);
 PReport1.Print(PRPage2);
 //2ページ目をPrint後にTPRDestinationを作成しているのでPDFファイルを開いたら2ページ目が表示される。
 PReport1.OpenAction:=PReport1.CreateDestination;
 PReport1.OpenAction.zoom:=0.50; //50%に設定
 PReport1.OpenAction.Left:=0;
 PReport1.OpenAction.Top :=0;
 PReport1.OpenAction.DestinationType:=dtXYZ;
 PReport1.Print(PRPage1);
 PReport1.EndDoc;
End;
 
ViewerPreference: TPdfViewerPreferences;
PDFビューアー(AdobeReader等)のツールバー等の表示非表示を設定できます。
TPdfViewerPreference = (vpHideToolbar, vpHideMenubar, vpHideWindowUI,vpFitWindow, vpCenterWindow);
vpHideToolbar ツールバーを非表示にします。
vpHideMenubar メニューバーを非表示にします。
vpHideWindowUI 左側ペインのタブメニューを完全に非表示にします。
vpFitWindow MDIタイプのビューアーの場合、内部ウィンドウを最大化します。(SDIの場合は関係なし)
vpCenterWindow PDFビューアー(AdobeReader等)をデスクトップの中央に配置します。
 
UseOutlines:boolean;
「しおり」を作る場合はTrueに設定します。Trueに設定したときのみ、OutlineRootプロパティを使って「しおり」を作成できます。
 
OutlineRoot:TPROutlineEntry;
UseOutlinesがTrueの場合に使用できます。「しおり」を作成することができます。TPROutlineEntry型を参照。
(例)「しおり」を作成します。しおりをクリックしたときに、2ページ目をズーム倍率200%で、X=100、Y=200の位置を表示します。
var oe:TPROutlineEntry;
begin
 PReport1.UseOutlines:=true;
 PReport1.BeginDoc;
 PReport1.Print(PRPage1);
 PReport1.Print(PRPage2);
 oe:=PReport1.OutlineRoot.AddChild;
 oe.Title:='2ページ目200%';
 oe.Dest:=PReport1.CreateDestination;
 oe.Dest.Zoom:=2.00;
 oe.Dest.Left:=100;
 oe.Dest.Top:=200;
 oe.Dest.DestinationType:=dtXYZ;
 PReport1.Print(PRPage1);
 PReport1.EndDoc;
end;
 
メソッド
   Procedure BeginDoc
PDFファイルの作成を開始する。
 
Procedure EndDoc
PDFファイルの作成を終了する。
 
Procedure Print
BeginDocとEndDocの間で使われ、作成するTPRPageを指定する。
 
(例)
PReport1.FileName:='c:\abc.pdf';  //出力ファイル名の指定
PReport1.BedinDoc;            //ファイル作成開始
PReport1.Print(PRPage1);    //PRPage1を1ページ目に出力
PReport1.Print(PRPage1);    //PRPage1を2ページ目に出力
PReport1.Print(PRPage2);    //PRPage2を2ページ目に出力
PReport1.EndDoc;            //PDFファイルの作成終了
 
Procedure Abort
BeginDoc後にPDF作成を中止する。
 
Function CreateDestination():TPRDestination;
Printしたページに対するTPRDestinationクラスのインスタンスを返します。
 

TPRPage クラス

PDFファイル1ページを表現します。TScrollBoxに置いて使うとスクロールできて操作が楽です。

プロパティ
   Height:integer;
A4縦の場合は842
 
Width:integer;
A4縦の場合は596
 
MarginTop:integer;
MarginBottom:integer;
MarginLeft:integer;
MarginRight:integer;
上下左右方向のマージン(印刷不可領域)の指定・・・のはずですが、動かないように感じます・・・すいません^^
 
(参考) WYSIWYGで印刷したい場合は、例えばA4縦の場合 Height:=842; Width:=596; にして
AdobeReaderで印刷するときに「ページの拡大/縮小」を[なし]にして印刷すれば、より近い印刷イメージになります。
(プリンタマージン内に文字等があっても強引に印刷しようと努力だけはします^^・・・)
通常、AdobeReaderで印刷するときは「ページの拡大/縮小」を[用紙にあわせる]がデフォルトなので、
HeightとWidthを大きな値にしても、自動拡縮して、指定用紙サイズで印刷するので、WidthやHeightの値を意識する必要はないのかもしれません。
イベント
   propery OnPrintPage:TPRPrintPageEvent;
Print時に呼ばれます。つまり、PReport1.Print(PRPage1) の時です。
Print時に初期化が必要な場合に使います。
 

TPRLayoutPanel クラス

TPRPageの上にのせて使います。単票形式の帳票を作成することができます。
TPRLayoutPanelの上にはTPRLabelやTPRTextやTPRRectやTPREllipseやTPRImageやTPRJpegImageやTPRAnnotationやTPRLineをのせて使うことができます。

プロパティ
   Align:TAlign;
TPRPageに対してどのように配置するかを指定します。alClientに指定するとTPRPage全面になるので楽です。
 
イベント
   BeforePrint:TPRPrintPanelEvent;
Print前に呼ばれます。同一ページを複数回Printする場合の初期化等に使えます。
 
AfterPrint:TPRPrintPanelEvent;
Print後に呼ばれます。あまり使わないかも・・・。
 

TPRGridPanel クラス

TPRPageの上にのせて使います。TDBCtrlGridみたいな感じで使うグリッドです。工夫次第で表形式の帳票を作成することができます。 プロパティ設定だけでデータベース連携帳票を作成することはできませんが、プログラムを組めば、データベースのデータから表形式の帳票を作成することができます。

プロパティ
   ColCount:integer;
グリッドの列数です。
 
RowCount:integer;
グリッドの行数です。
 
PrintDirection:TPrintDirection;
グリッドに対してどの順序でPrintするかを指定します。
pdHorz 左上から水平方向の順序でPrintします。
pdVert 左上から垂直方向の順序でPrintします。
 
イベント
   BeforePrint:TPRPrintPanelEvent;
Print前に呼ばれます。同一ページを複数回Printする場合の初期化等に使えます。
 
AfterPrint:TPRPrintPanelEvent;
Print後に呼ばれます。
 
PrintDirection:TPrintDirection;
グリッドに対してどの順序でPrintするかを指定します。
pdHorz 左上から水平方向の順序でPrintします。
pdVert 左上から垂直方向の順序でPrintします。
 
BeforePrintChild:TPRPrintChildPanelEvent;
データベース等と連携して表形式の帳票を作成するのに重要なイベントです。
グリッドの1つ1つがPrintされる直前に呼び出されます。
  TPRPrintChildPanelEvent=procedure(Sender:TObject;ACanvas:TPDFCanvas;ACol,ARow:integer;Rect:TRect);
   Print時のAColとARowがわかります。
(例)
PRGridPanel1BeforePrintChild(Sender:TObject;ACanvas:TPDFCanvas;ACol,ARow:integer;Rect:TRect);
begin
 PRLabel.Caption:=InttoStr(ARow) + '行目です';
end;
 
AfterPrintChild:TPRPrintChildPanelEvent;
グリッドの1つ1つがPrintされた直前に呼び出されます。直後なので、あまり使わないです。
 

TPRLabel クラス

TPRLayoutPanelやTPRGridPanelの上において使います。1行文字列です。(改行不可)

プロパティ
   AlignJustified:Boolean;
幅に対して均等な文字幅になります。
 
Alignment:TAlignment;
左寄せ、中央寄せ、右寄せの指定。
 
Printable:Boolean;
PDFファイルに出力するかしないか。
 
FontColor:TColor;
フォントの色。
 
FontName:TPRFontName;
フォント名です。指定できるのは fmGothic、fmMincyo、fmPGothic、fmPMincyoの4つだけです。これ以外を選んだ場合にどうなるのかは不明です。
 
FontSize:Single;
フォントのサイズです。
 
FontBold:Boolean;
太文字指定です。
 
FontItalic:Boolean;
イタリック書体指定です。
 

TPRText クラス

TPRLayoutPanelやTPRGridPanelの上において使います。複数行表示可能な文字列コンポーネントです。

プロパティ
   Printable:Boolean;
PDFファイルに出力するかしないか。
 
FontColor:TColor;
フォントの色。
 
FontName:TPRFontName;
フォント名です。指定できるのは fmGothic、fmMincyo、fmPGothic、fmPMincyoの4つだけです。これ以外を選んだ場合にどうなるのかは不明です。
 
FontSize:Single;
フォントのサイズです。
 
FontBold:Boolean;
太文字指定です。
 
FontItalic:Boolean;
イタリック書体指定です。
 
Leading:Single;
複数行の場合の改行幅です。複数行でこの値が0だと文字が完全に被ります。
通常はFontSize以上の値を指定してください。
 
Lines:TStrings;
表示する文字列です
 
WordWrap:Boolean;
文字列が幅を超えたときに自動改行するかどうか。(日本語用ワードラップをします。)
但し半角カナの濁音、半濁音に関しては完全にはラップしません。
(例)以下のようにプの途中で幅を超えた場合、半濁音が改行されてしまいます。
この行はラッフ
゚されました。
 
TextMarginLeft:Cardinal;
TextMarginRight:Cardinal;
TextMarginTop:Cardinal;
TextMarginBotom:Cardinal;
上下左右のマージンです。境界線の太さを太くして、文字が見えなくなってしまったときに使ってください。^^
 
FillColor:TColor;
背景色の指定です。デフォルトはclNone(背景色なし)
 
LineColor:TColor;
境界線の色です。デフォルトはclBlack
 
LineStyle:TPenStyle;
境界線のスタイルです。
psClear(境界線なし)、psDash(破線)、psDashDot(一点鎖線)、psDashDotDot(二点鎖線)、pdDot(点線)、pdSolid(実線)の指定が可能です。
 
LineWidth:Single;
境界線の線の太さです。
 

TPRImage クラス

TPRLayoutPanelやTPRGridPanelの上において使います。24Bitビットマップのみ可能です。
ビットマップなので作成されるPDFファイルのサイズは大きくなります。
なるべくJPEG画像を使えるTPRJpegImageのご利用をお勧めします。

プロパティ
   Printable:Boolean;
PDFファイルに出力するかしないか。
 
Picture:TPicture;
PDFファイルに出力するイメージです。
 
Stretch:boolean;
WidthとHeightのサイズに合わせて自動拡縮するかしないか。
 
SharedImage:boolean;
PDF文書ファイル上でページごとにイメージのデータもつか、ページでデータを共用するかどうかを表します。
共用すると、ファイルサイズは小さくなります。
 
SharedImageをTrueにしても良い例
(PRImage1はPRPage1のPRLayoutPanel1の上にあるもとのします。)
Image1.Picture.Bitmap.PixelFormat:=pf24Bit; //24ビットイメージにするのを忘れずに。
PRImage1.Picture.Bitmap.Assign(Image1.Picture.Bitmap);
PRImage1.ShareImage:=True;
PRReport1.BeginDoc;
PReport1.Print(PRPage1);
PReport1.Print(PRPage1);
PReport1.EndDoc;
 
SharedImageをFalseにすべき例。TPRImageのPicture情報がページ毎に変化する場合。
(PRImage1はPRPage1のPRLayoutPanel1の上にあるもとのします。)
Image1.Picture.Bitmap.PixelFormat:=pf24Bit; //24ビットイメージにするのを忘れずに。
Image2.Picture.Bitmap.PixelFormat:=pf24Bit; //24ビットイメージにするのを忘れずに。
PRImage1.ShareImage:=False;
PRReport1.BeginDoc;
PRImage1.Picture.Bitmap.Assign(Image1.Picture.Bitmap);//イメージを割り当て
PReport1.Print(PRPage1);
PRImage1.Picture.Bitmap.Assign(Image2.Picture.Bitmap);//別のイメージを割り当て
PReport1.Print(PRPage1);
PReport1.EndDoc;

TPRJpegImage クラス

TPRLayoutPanelやTPRGridPanelの上において使います。JPEG画像をPDFファイルにすることができます。
元の(圧縮率等に起因する)JPEG画像のサイズが出力時のファイルサイズに影響します。
画像をPDFファイルに含めてファイルサイズを小さくしたいのであれば圧縮率を高くしておけばOK。)

プロパティ
   Printable:Boolean;
PDFファイルに出力するかしないか。
 
Picture:TPicture;
PDFファイルに出力するJPEGイメージです。
 
SharedImage:boolean;
PDF文書ファイル上でページごとにイメージのデータもつか、ページでデータを共用するかどうかを表します。
共用すると、ファイルサイズは小さくなります。 
SharedImageをTrueにしても良い例
(PRJPEGImage1はPRPage1のPRLayoutPanel1の上にあるもとのします。
また、以下ソースコードではJPEGの再圧縮を行っていますが、適切な圧縮率であれば再圧縮を行う必要はありません。)
var jpg:TJPEGImage;
begin
 jpg:=TJPEGImage.Create;
 try
  jpg.LoadFromFile('c:\a.jpg');
  jpg.DIBNeeded;//JPEGから一旦DIBBitmapを復元
  jpg.CompressionQuality:=70;//1を指定するとサイズが小さくなり画像が汚くなる。100はその逆。
  jpg.Compress;//再圧縮します。

  PRJPEGImage1.Picture.Assign(jpg);
  PRImage1.ShareImage:=True;
  PRReport1.BeginDoc;
  PReport1.Print(PRPage1);
  PReport1.Print(PRPage1);
  PReport1.EndDoc;
 finally
  jpg.free;
 end;
end;
 
SharedImageをFalseにすべき例
(PRJPEGImage1はPRPage1のPRLayoutPanel1の上にあるもとのします。)
var jpg1,jpg2:TJPEGImage;
begin
 jpg1:=TJPEGImage.Create;
 jpg2:=TJPEGImage.Create;
 try
  jpg1.LoadFromFile('c:\a.jpg');
  jpg2.LoadFromFile('c:\b.jpg');
  PRImage1.ShareImage:=False;
  PRReport1.BeginDoc;
  PRJPEGImage1.Picture.Assign(jpg1);//1ページ目の画像はjpg1
  PReport1.Print(PRPage1);
  PRJPEGImage1.Picture.Assign(jpg2);//2ページ目の画像はjpg2
  PReport1.Print(PRPage1);
  PReport1.EndDoc;
 finally
  jpg1.free;
  jpg2.free;
 end;
end;

TPRRect クラス

長方形を描きます

プロパティ
   Printable:Boolean;
PDFファイルに出力するかしないか。
 
FillColor:TColor;
長方形領域の塗りつぶしの色
 
LineColor:TColor;
長方形の枠線の色
 
LineStyle:TPenStyle;
長方形の枠線のスタイル
psClear(境界線なし)、psDash(破線)、psDashDot(一点鎖線)、psDashDotDot(二点鎖線)、pdDot(点線)、pdSolid(実線)の指定が可能。
 
LineWidth:single;
長方形の枠線の幅です。
 

TPREllipse クラス

楕円を描きます

プロパティ
   FillColor:TColor;
楕円領域の塗りつぶしの色
 
LineColor:TColor;
楕円の枠線の色
 
LineStyle:TPenStyle;
楕円の枠線のスタイル
psClear(境界線なし)、psDash(破線)、psDashDot(一点鎖線)、psDashDotDot(二点鎖線)、pdDot(点線)、pdSolid(実線)の指定が可能。
 
LineWidth:single;
楕円の枠線の幅。
 

TPRAnnotation クラス

Adobe社AdobeReaderでの[注釈]の「ノート」を作成します

プロパティ
   Caption:String;
ノートのタイトル
 
Lines:TStrings;
ノートの内容
 
Opened:boolean;
初期状態でノートが開いているかどうか
 

TPROutlineEntry クラス

しおりを作成することができます。TPReportのOutlineRootプロパティがこの型です。TPROutlineEntryは階層構造をとります。

プロパティ
   Parent:TPROutlineEntry;
親のTPROutlineEntryです。
 
Next:TPROutlineEntry;
次のTPROutlineEntryです。
 
Prev:TPROutelineEntry;
前のTPROutlineEntryです。
 
First:TPROutelineEntry;
最初のTPROutlineEntryです。
 
Last:TPROutelineEntry;
最後のTPROutlineEntryです。
 
Dest:TPRDestination;
「しおり」をクリックしたときの動作を設定します。
 
Title:String;
「しおり」の表示名
 
Opened:boolean;
Trueの場合は、子ノードの「しおり」を展開して表示します。
 
メソッド
   function AddChild:TPROutlineEntry;
子ノードの「しおり」(TPROutlineEntryクラスのインスタンス)を作成して返します。
 

TRDDestination クラス

「しおり」をクリックしたときの動作、PDFファイルを開く時の動作を設定します。

プロパティ
   DestinationType:TPRDestinationType;
動きの種類を定義します。
  TPRDestinationType=(dtXYZ,dtFit,dtFitH,dtFitV,dtFitR,dtFitB,dtFitBH,dtFitBV);
    dtXYZ
        Left、Top、Zoomプロパティにより表示します。 
    dtFit
        ウィンドウサイズに用紙(ページ)が合うように表示します。(全体表示)
        Left、Top、Right、Bottom、Zoomの値は無視します。
    dtFitH
        ページの幅がちょうどになる倍率で表示します。(幅に合わせる)
        ウィンドウの上部がTopの値になるように表示します。
    dtFitV
        ページの高さがちょうどになる倍率で表示します。(高さに合わせる)
        ウィンドウの左端がLeftプロパティになるようにします。
    dtFitR
        Zoomプロパティは無視されます。
        (Left,Top)-(Right,Bottom)の長方形に合うように表示します。
    dtFitB
        ??
    dtFitBH
        ??
    dtFitBV
        ??

Left:integer;   Top:integer;   Right:integer;   Bottom:integer;
左右上下の座標。
 
Zoom:Single;
表示倍率です。0.1(10%)から10.0(1000%)まで設定できます。
 

 

 

 

 

 
著作権表示
PowerPdf Version 0.91 (beta) for Delphi 日本語版
0.9からの改変部分のみ  Copyright (C) 2008-2019 Mam

 

 
PowerPDF0.9はtakeshi_kanno氏のLGPLライブラリです。
(http://www.est.hi-ho.ne.jp/takeshi_kanno/powerpdf/)
P o w e r P d f Version 0.9 (beta)
Copyright (C) 1999-2001 Takeshi Kanno
Mam's WebSite