打印PDF文件

时间:2010-12-01 18:51:33

标签: pdf printing

我有一个pdf文件(通过扫描生成)并且想要设置一个机制,在打印之前,我提示输入一个字段(控制号),并在该文档的evey页面中打印该字段。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

您可以使用iTextSharp将文本添加到PDF,您可以使用GhostScript将PDF发送到打印机。

答案 1 :(得分: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中埋藏得相当好。高级 - &gt;文档处理 - &gt;设置文档操作。你想要“Will Print”活动:

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

不多。要以编程方式在iText中执行此操作(我个人最喜欢的,nope完全没有偏见;)

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();

答案 2 :(得分:0)

一个很好的选择是PDFSharp - 我们将它用于各种任务,从在图形上渲染表格,在PDF文档上嵌入条形码等等 - 作为一种享受,我强烈推荐它。