itext 7 相当于 itext 5 中的 pdfstamper 类吗

问题描述 投票:0回答:2

我尝试从 iText5 转换为 iText7。从 Nuget 获取 iText7 的软件包。

.net itext7
2个回答
28
投票

这在 iText 7 快速入门教程的第 5 章中进行了解释。不再有PdfStamper

课程了。只有一个
PdfDocument
类用于创建文件
以及用于操作文件。

你的问题很不完整。

您的代码用于填写表格吗?在这种情况下,你需要这样的东西:

PdfDocument pdf = new PdfDocument( new PdfReader(src), new PdfWriter(dest)); PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true); Map<String, PdfFormField> fields = form.getFormFields(); fields.get("name").setValue("Abhishek Kumar"); pdf.close();

或者在 C# 中:

PdfDocument pdf = new PdfDocument(new PdfReader(src), new PdfWriter(dest)); PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true); IDictionary<String, PdfFormField> fields = form.GetFormFields(); PdfFormField toSet; fields.TryGetValue("name", out toSet); toSet.SetValue("Abhishek Kumar"); form.FlattenFields(); pdf.Close();

您的代码是否用于向文档添加额外内容?在这种情况下,你需要这样的东西:

PdfDocument pdfDoc = new PdfDocument(new PdfReader(src), new PdfWriter(dest)); Document document = new Document(pdfDoc); Rectangle pageSize; PdfCanvas canvas; int n = pdfDoc.getNumberOfPages(); for (int i = 1; i <= n; i++) { PdfPage page = pdfDoc.getPage(i); pageSize = page.getPageSize(); canvas = new PdfCanvas(page); // add new content } pdfDoc.close();

在显示

// add new content

 的地方,您可以将内容添加到 
canvas

您是否将

PdfStamper

 用于其他用途?在这种情况下,你需要改进你的问题。


0
投票
在 itext8 中添加图像最简单的方法是:

    使用给定图像创建一个
  • ImageData
    对象
  • 将此图像添加到文档的
  • PdfCanvas
有一个例子:

// bis is ByteArratInputStream // bos ByteArrayOutputStream, also available constructor with string path val pdfDoc = new PdfDocument(new PdfReader(bis), new PdfWriter(bos)); val page = pdfDoc.getPage(1); val canvas = new PdfCanvas(page); // Create image from a source (string) val imageData = ImageDataFactory.create("./src/main/resources/images/my_image.jpg"); // Add image into canvas at x:450, y:30 with 'inline' as false canvas.addImageAt(imageData , 450, 30, false);
    
© www.soinside.com 2019 - 2024. All rights reserved.