【问题标题】:iTextSharp create PDF with stamperiTextSharp 使用压模创建 PDF
【发布时间】:2018-12-27 06:17:09
【问题描述】:

我需要一种可以使用 Stamper 创建新 PDF 的方法(我承认我是 itextsharp 的新手,但我并不完全了解 Stamper 是什么)。 到目前为止,我通过使用压模编辑以前的 pdf 文档来创建 TextFields:

using (PdfStamper stamper = new PdfStamper(new PdfReader(Server.MapPath("~/PDFs/"+TemplateId+".pdf")), File.Create(Server.MapPath("~/PDFs/addacro.pdf"))))
{              
    iTextSharp.text.pdf.TextField tf = new iTextSharp.text.pdf.TextField(stamper.Writer, new iTextSharp.text.Rectangle(0, 0, 595, 842), "Vertical");
    stamper.AddAnnotation(tf.GetTextField(), 1);
    stamper.Close();
}

我将如何为新文档(不存在)做同样的事情

谢谢

编辑

我知道那些是来自http://itextsupport.com/apidocs/itext5/5.5.9/com/itextpdf/text/pdf/PdfStamper.html的构造函数

PdfStamper()
PdfStamper(PdfReader reader, OutputStream os)
PdfStamper(PdfReader reader, OutputStream os, char pdfVersion) 
PdfStamper(PdfReader reader, OutputStream os, char pdfVersion, boolean append) 

所有阅读文档的人似乎都有一个输出流......

【问题讨论】:

  • 要使用 itext 5 从头开始​​创建 pdf,请使用 itext Document 和 itext PdfWriterPdfStamper 是一个用于在现有 pdf 上添加 stamping 的类。但是你说你是itextsharp 的新手。在这种情况下,您应该切换到并学习新的 itext 7 而不是旧的 itext 5。
  • 谢谢!我是实习生,他们在这里使用 itextsharp:/ 你为什么不把这个作为答案发布?
  • 答案应该更详细,但我目前正在使用智能手机,在这里详细介绍是一个皮塔饼。稍后我可以将其作为实际答案。

标签: asp.net itext


【解决方案1】:

要使用 itext 5 从头开始​​创建 pdf,请使用 itext Document 和 itext PdfWriterPdfStamper 是一个用于在现有 pdf 上添加内容的类。

对于类似于基于压模的示例的文本字段:

Document document = new Document();
Stream stream = new FileStream(@"emptyTextField.pdf", FileMode.Create);
PdfWriter pdfWriter = PdfWriter.GetInstance(document, stream);
document.Open();

TextField tf = new iTextSharp.text.pdf.TextField(pdfWriter, new iTextSharp.text.Rectangle(0, 0, 595, 842), "Vertical");
pdfWriter.AddAnnotation(tf.GetTextField());

document.Close();

主要区别在于PdfWriter.AddAnnotation 不采用页码参数,而是假定当前正在处理的页面,即文档的当前最后一页。


你说你是 itextsharp 的新手。如果你的工作没有绑定到那个 iText v5,你最好转而学习新的 iText 7。

【讨论】:

  • 感谢您的回答!
猜你喜欢
  • 2016-10-02
  • 2017-05-26
  • 2012-07-03
  • 2023-04-02
  • 2015-01-01
  • 2023-03-07
  • 2010-11-19
  • 1970-01-01
相关资源
最近更新 更多