Die Verwendung von iTextSharp zum Schreiben von Daten in PDF funktioniert hervorragend, aber Acrobat Reader fragt beim Schließen der Datei, ob Änderungen gespeichert werden sollen

Ich verwende iTextSharp 5.3.2.0, um einer vorhandenen PDF-Datei, die ein W-2-Formular enthält, Informationen hinzuzufügen. Alles funktioniert einwandfrei und die PDF-Datei sieht gut aus, wenn sie in den Antwortstrom des Browsers geschrieben wird. Wenn der Benutzer mit dem Anzeigen der PDF-Datei fertig ist, wird er gefragt, ob die Änderungen an "W2.pdf" vor dem Schließen gespeichert werden sollen. Jedes Mal, wenn er das Dokument von der Webseite aus anzeigt.

Bei dem Versuch, das Problem einzugrenzen, habe ich tatsächlich alle meine Änderungen entfernt, aber das Problem bleibt bestehen. Hier ist die einfache Version meines Codes, bei der mein Aufruf zum Schreiben von Daten auskommentiert ist:

PdfReader pdfReader = new PdfReader(dataSource.ReportTemplate);

using(MemoryStream outputStream = new MemoryStream())
using (PdfStamper pdfStamper = new PdfStamper(pdfReader, outputStream))
{
   //dataSource.DrawDataFields(pdfStamper);
   pdfStamper.FormFlattening = true;
   return outputStream;
}

In diesem Fall wird die "leere" PDF-Datei in den Browser geschrieben und sieht gut aus. Beim Schließen des Acrobat-Fensters werde ich jedoch weiterhin gefragt, ob Sie sie speichern möchten.

Zu diesem Zeitpunkt dachte ich, dass mit der PDF-Quelldatei etwas nicht stimmt. Wenn ich jedoch die unformatierten Bytes der PDF-Datei an den Browser zurücksende, wird bei Verwendung des folgenden Codes NICHT die Frage "Möchten Sie speichern?" Gestellt.

byte[] bytes = File.ReadAllBytes(dataSource.ReportTemplate);

using (MemoryStream outputStream = new MemoryStream())
{
    outputStream.Write(bytes, 0, bytes.Length);
    return outputStream;
}

Mein Fazit ist, dass iTextSharp beim Öffnen und Schreiben der Bytes in den Stream etwas "Schlechtes" an der PDF tut, aber ich bin neu in iTextSharp und kann leicht etwas verpassen.

FWIW, das ist Acobat Reader 10.1.4, von dem wir sprechen.

BEARBEITEN: Das als Vorlage verwendete Original-PDF hat eine Größe von ca. 80 KB. Wenn ich mir die temporäre Datei ansehe, die über meinen Browser übertragen wurde, ist die von iTextSharp geschriebene PDF-Datei ungefähr 150 KB groß. Wenn ich jedoch die vom Acrobat Reader gestellte Frage "Änderungen speichern" mit "Ja" beantworte, ist die resultierende Datei wieder ungefähr 80 KB groß. iTextSharp macht definitiv etwas Unerwartetes mit dieser Datei.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage