Estou tentando alterar a fonte de todos os campos de texto em um arquivo PDF existente usando iText7 e c#. Em todos os exemplos que vi, um objeto PdfDocument é criado com um "arquivo de origem" e "arquivo de destino". Abaixo está meu código para alterar as fontes.
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();
Alterei com sucesso os valores da fonte via código, e os novos valores estão no arquivo PDF de destino. Minha pergunta é: há uma maneira de simplesmente modificar o arquivo PDF existente (o arquivo PDF de origem) sem ter que criar um arquivo PDF de "destino" adicional?