我正在尝试使用 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 文件?