使用 iText7 修改现有 PDF

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

我正在尝试使用 iText7 和 c# 更改现有 PDF 文件中所有文本字段的字体。在所有示例中,我看到创建的 PdfDocument 对象具有“源”和“目标文件”。下面是我更改字体的代码。


string pdfFileSrc = @"C:\UnsecurePDF\3161_Dec2023.pdf";
string pdfFileDest = @"C:\UnsecurePDF\3161_Dec2023-3.pdf";                      
float fontSize = 8.00f; 
PdfFont fontTimesRoman = PdfFontFactory.CreateFont(iText.IO.Font.Constants.StandardFonts.TIMES_ROMAN);

 PdfDocument pdfDocument = new PdfDocument(new PdfReader(pdfFileSrc), new PdfWriter(pdfFileDest));
 PdfAcroForm acroForm = PdfAcroForm.GetAcroForm(pdfDocument, false); 
 var fields = acroForm.GetAllFormFields();

 foreach (var field in fields)
 {
     try
     {
         field.Value.SetFont(fontTimesRoman);
         field.Value.SetFontSize(fontSize);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }

 }
 pdfDocument.Close();

我已通过代码成功更改了字体值,新值位于目标 PDF 文件中。我的问题是,有没有一种方法可以简单地修改现有的 PDF 文件(源 pdf 文件),而无需创建额外的“目标”PDF 文件?

itext7
1个回答
0
投票

目前没有您的来源,我们必须假设您指的是 2023 年 12 月的文档 3161,它看起来像这样,并且预先设置为除 Adobe 产品之外不会更改,但已经默认为 10 点 Times Roman?

不清楚为什么您会尝试更改这些字段,因为它们无论如何都不是 PDF 字段。

此类表单可以使用 Adobe FDF 轻松地从外部更改为批量文本,因此无需编辑器即可导入数据(只需使用 Acrobat Reader 等编辑器)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.