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