【发布时间】:2017-12-17 01:07:51
【问题描述】:
我试图从 iText5 转换为 iText7。从 Nuget 获得 iText7 的软件包。
【问题讨论】:
-
请更具体地说明您要实现的功能。 iText7 被设计成更加模块化。因此,根据您的用例,可能会有不同的类可以满足您的需求。
我试图从 iText5 转换为 iText7。从 Nuget 获得 iText7 的软件包。
【问题讨论】:
这在iText 7 Jump-start tutorial 的chapter 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 用于其他用途?在这种情况下,您需要改进您的问题。
【讨论】:
Map 的 C# 等价物。我会更新我的答案。