2010-12-01 223 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中相當不錯。高級 - >文檔處理 - >設置文檔操作。你想要「打印」事件:

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 2011-09-12 12:14:25