我试图从iText5转换为iText7。从Nuget获得了iText7的软件包。
最佳答案
在chapter 5的iText 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
用于其他用途?在这种情况下,您需要改进您的问题。