2011-01-31 6 views
3

手動またはサードパーティのコンポーネントのいずれかでPDFファイルにデータを送信する方法はありますか(フィールド/空白を記入します)、PDFファイルには変更可能なフィールドがありますチェックボックスなどDelphiでデータをPDFに送信

この目標を達成するにはどうすればよいですか?最高のサードパーティ製コンポーネントが必要な場合、そして価格は何ですか?

当社開発のIDEは、Delphi 2010/Delphiの2011 XE

感謝:)

+3

「データをPDFに送る」とは何ですか? PDFを生成するか、既存のPDFドキュメントのフォームに記入しますか?あなたの質問を編集し、詳細を指定してください。 –

+0

私はEugeneに同意します - 質問は非常に曖昧であり、明確化が必要です。 –

+0

ああ、申し訳ありませんが、私はPDFファイルのフォームに記入することを意味します。 – Plastkort

答えて

2

私はあなたがあなたのアプリケーションは、ユーザーインターフェイスのフィールドからいくつかのPDFコンテンツを作成したいと思います。

コードからのレポートジェネレータを使用してコードから簡単にこれを実行できます。PDF engine

デルファイ6からXEまでOpen Source solution just for doing thisを提案します。ここで

は、ソース(例えばedt1.Textまたはmmo1.Text)など、いくつかのユーザーインターフェイスのフィールドを使用して、レポートを作成code extract from one demo、次のとおりです。

procedure TForm1.btn1Click(Sender: TObject); 
    (...) 
    with TGDIPages.Create(self) do 
    try 
     // the name of the report is taken from main Window's caption 
     Caption := self.Caption; 
     // now we add some content to the report 
     BeginDoc; 
     (...) 
     // main content (automaticaly split on next pages) 
     NewHalfLine; 
     TextAlign := taJustified; 
     s := 'This is some big text which must be justified on multiple lines. '; 
     DrawText(s+s+s+s); 
     NewLine; 
     TextAlign := taLeft; 
     DrawTitle(edt1.Text,true); 
     for i := 1 to 10 do 
     DrawText('This is some text '+IntToStr(i)); 
     NewLine; 
     DrawBMP(Bmp,maxInt,50,'Some bitmap in the report'); 
     AddBookMark('bookmarkname'); 
     WordWrapLeftCols := true; 
     AddColumns([10,20,50]); 
     AddColumnHeaders(['#','Two','Three'],true,true); 
     for i := 1 to 100 do 
     DrawTextAcrossCols([IntToStr(i),'Column '+IntToStr(i),'Some text here. '+s]); 
     NewLine; 
     DrawBMP(Bmp,maxInt,50,'Some bitmap in the report (twice)'); 
     DrawTitle('This is your text',false,0,'','bookmarkname'); 
     DrawText(mmo1.Text); 
     EndDoc; 
     // set optional PDF export options 
     // ExportPDFForceJPEGCompression := 80; 
     // ExportPDFEmbeddedTTF := true; 
     // ExportPDFUseUniscribe := true; 
     // ExportPDFA1 := true; 
     // show a preview form, and allow basic actions via the right click menu 
     // ShowPreviewForm; 
     // export as PDF 
     ExportPDF('test.pdf',false); 
    finally 
     Free; 
    end; 

あり、他のソリューションが周りにありますが、この1つはオープンですDrawTitle()やDrawText()などの専用レポート生成メソッドだけでなく、PaintToメソッドを使用して任意のグラフィカルコンポーネントを直接作成することもできます。

EDIT:

あなたの質問は、フォームでPDFファイルを作成についてだった場合は、このライブラリは動作しません。

VeryPdfQuickPdfなどのクローズドソースライブラリを使用する必要があります。 Google is your friend

+0

これは私が無料のPDFジェネレータが必要な私の他のプロジェクトで役に立ちますが、私は既存のPDFファイルを変更する方法を探しています。ロックされた単語文書のような空白(フィールド)を記入すると、修正可能な特定のフィールドを持つことができ、残りのファイルは読み取り専用のままです...あなたの文字列をこれらの空白に送ります。 – Plastkort

+0

@Plastkort PDFビューアActiveXとしてAcrobat Readerを埋め込むこともできます。 http://www.wpcubed.com/products/pdfviewer/index.htmのような純粋なDelphiソリューションを使用するか、私が知る限り、オープンソースソリューションはありません。 :( –