2010-12-01 90 views
2

私は、スキャンで生成されたpdfファイルを持っており、印刷する前にフィールド(管理番号)を入力するプロンプトを表示し、そのフィールドをドキュメントのeveyページに印刷するメカニズムを設定します。これどうやってするの?PDFファイルの印刷

答えて

1

iTextSharpを使用してPDFにテキストを追加し、GhostScriptを使用してPDFをプリンタに送信することができます。

0

優れた選択肢はPDFSharpです - 私たちは、グラフィックス上のフォームのレンダリング、PDFドキュメントへのバーコードの埋め込みなど、さまざまなタスクにこれを使用しています。

1

IIRCの場合、javaScriptを使用してドキュメントレベルのプリプリントイベントを作成できます。

1)PDFの各ページに全く同じ名前のフィールドを配置します。

PdfReader reader = new PdfReader("somePath.pdf"); 
PdfStamper stamper = new PdfStamper(reader, outStream); 
PdfWriter writer = stamper.getWriter(); 

for (int curPage = 1; curPage <= reader.getNumberOfPages(); ++curPage) { 
    TextField fld = new TextField (writer, someRect, "thatFieldName"); 
    // might want to modify the field appearance here. 

    stamper.addAnnotation(fld.getTextField(), curPage); 
} 

2)プレプリントイベントでは、このフィールド値をユーザーに照会し、そのフィールドに値を設定します。

ドキュメントカタログに追加のアクション辞書を作成する必要があります。 Acrobatではかなりうまく埋まっています。 「詳細」 - >「ドキュメント処理」 - >「ドキュメントアクションの設定」を選択します。あなたは「Will Print」イベントを望みます:

var response = app.response(questionText/*, dialogTitle, defaultVal, bPassword, entryLabel*/); 
this.getField("thatFieldName").value = response; 

それほどではありません。これをiTextでプログラムで行うには(私の個人的な好みではない、全く偏っていない)

PdfReader reader = new PdfReader("myFile.pdf"); 
PdfStamper stamper = new PdfStamper(myReader, outStream); 
PdfWriter stamperWriter = stamper.getWriter(); 

stamperWriter.setAdditionalAction(PdfName.WP, PdfAction.javaScript(scriptString, stamperWriter)); 
stamper.close(); 
+0

私はIIRCとは何かを教えてください。 – Lamps

+0

「私が正しく思い出した場合」 –