Ho cercato Internet per 2 settimane e ho trovato alcune soluzioni interessanti per il mio problema, ma niente sembra darmi la risposta.iTextSharp Sostituisci testo nel PDF esistente senza perdere la formazione
Il mio obiettivo è quello di fare il folowing:
Voglio trovare un testo in un PDF statici e sostituire il testo con un nuovo testo. Mi piacerebbe mantenere il design del contenuto. E 'davvero così difficile?
ho trovato un modo, ma ho perso tutta l'informazione:
using (PdfReader reader = new PdfReader(path))
{
StringBuilder text = new StringBuilder();
for (int i = 1; i <= reader.NumberOfPages; i++)
{
text.Append(PdfTextExtractor.GetTextFromPage(reader, i));
text.Replace(txt_SuchenNach.Text, txt_ErsetzenMit.Text);
}
return text.ToString();
}
Il secondo tentativo ho avuto è stato il modo migliore, ma ha bisogno di campi dove posso cambiare il testo all'interno:
string fileNameExisting =path;
string fileNameNew = @"C:\TEST.pdf";
using (FileStream existingFileStream = new FileStream(fileNameExisting, FileMode.Open))
using (FileStream newFileStream = new FileStream(fileNameNew, FileMode.Create))
{
// PDF öffnen
PdfReader pdfReader = new PdfReader(existingFileStream);
PdfStamper stamper = new PdfStamper(pdfReader, newFileStream);
var form = stamper.AcroFields;
var fieldKeys = form.Fields.Keys;
foreach (string fieldKey in fieldKeys)
{
var value = pdfReader.AcroFields.GetField(fieldKey);
form.SetField(fieldKey, value.Replace(txt_SuchenNach.Text, txt_ErsetzenMit.Text));
}
// Textfeld unbearbeitbar machen (sieht aus wie normaler text)
stamper.FormFlattening = true;
stamper.Close();
pdfReader.Close();
}
Questo mantiene la formattazione del resto del testo e cambia solo il testo cercato. Ho bisogno di una soluzione per il testo che NON è in un campo di testo.
grazie per tutte le vostre risposte e il vostro aiuto.
"È davvero così difficile?" Sì, generalmente lo è. Sei a conoscenza di * subsettings di caratteri *? Cosa succede se inserisci un personaggio che non si trova nel sottoinsieme esistente? Dovresti scoprire quale font è stato utilizzato in origine (non sempre banale) e quindi * avere * quel font sul tuo sistema. (Ci sono altri problemi oltre a questo - vedo che questa è una domanda doppia.) – usr2564301
Hi Jongware, So che c'è già un post come il mio, ma senza alcun "Maybe" -Code e la risposta "NO" con non è davvero una buona risposta. =) Ma grazie, per il tuo commento. Io odio PDF –
"No non può essere fatto" * è * una buona risposta. Non importa per quanto tempo cerchi su internet, non puoi trovare un metodo per andare dalla Gran Bretagna all'America. – usr2564301