什么是itext 7相当于itext 5中的pdfstamper类

时间:2017-07-12 14:27:05

标签: .net itext7

我尝试将iText5转换为iText7。从Nuget获得iText7的包裹。

1 个答案:

答案 0 :(得分:7)

chapter 5iText 7 Jump-start tutorial中解释了这一点。再也没有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进行其他操作?在这种情况下,您需要改进您的问题。