Ich habe im Internet seit 2 Wochen gesucht und einige interessante Lösungen für mein Problem gefunden, aber nichts scheint mir die Antwort zu geben.iTextSharp Ersetzen Sie Text in bestehenden PDF ohne Formation zu verlieren
Mein Ziel ist die Folowing zu tun:
Wen möchte ich finden einen Text in einer statischen PDF-Datei und ersetzen Sie diesen Text durch einen anderen Text. Ich möchte das Design des Contents beibehalten. Ist es wirklich so schwer?
fand ich einen Weg, aber ich verlor die ganzen Informationen:
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();
}
Der zweite Versuch ich besser war viel hatte, muss aber Felder, wo ich den Text nach innen ändern kann:
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();
}
Diese behält die Formatierung des restlichen Textes und ändert nur meinen gesuchten Text. Ich brauche eine Lösung für Text, der NICHT in einem Textfeld ist.
danke für alle Ihre Antworten und Ihre Hilfe.
"Ist es wirklich so schwer?" Ja, im Allgemeinen ist es so. Kennen Sie * Font-Subsetting *? Was passiert, wenn Sie ein Zeichen einfügen, das nicht in der vorhandenen Teilmenge enthalten ist? Sie müssten herausfinden, welche Schriftart ursprünglich verwendet wurde (nicht immer trivial) und dann * diese Schriftart auf Ihrem System haben. (Es gibt andere Probleme als dies - ich sehe, dass dies eine doppelte Frage ist.) – usr2564301
Hallo Jongware, Ich weiß da gibt es schon einen Beitrag wie meins, aber ohne "Maybe" -Code und die Antwort "NEIN" mit ist nicht wirklich eine gute Antwort. =) Aber danke, für Ihren Kommentar. Ich hasse PDF –
"Nein, es kann nicht getan werden" * ist * eine gute Antwort. Egal, wie lange Sie im Internet suchen, Sie können keine Methode finden, von Großbritannien nach Amerika zu gehen. – usr2564301