Używanie iTextSharp do zapisywania danych w formacie PDF działa świetnie, ale Acrobat Reader pyta „Czy chcesz zapisać zmiany” podczas zamykania pliku

Używam iTextSharp 5.3.2.0, aby dodać informacje do istniejącego pliku PDF, który zawiera formularz W-2. Wszystko działa idealnie, a plik PDF wygląda świetnie, gdy jest zapisany w strumieniu odpowiedzi przeglądarki; jednak gdy użytkownik skończy przeglądać plik PDF, zostanie wyświetlone pytanie „Czy chcesz zapisać zmiany w pliku„ W2.pdf ”przed zamknięciem?” za każdym razem, gdy ogląda dokument ze strony internetowej.

Próbując zawęzić problem, usunąłem wszystkie moje modyfikacje, ale problem nadal występuje. Oto prosta wersja mojego kodu z moim komentarzem do zapisu danych:

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;
}

W tym przypadku „pusty” plik PDF jest zapisywany w przeglądarce i wygląda dobrze, ale wciąż pojawia się pytanie „Czy chcesz zapisać” po zamknięciu okna programu Acrobat.

W tym momencie myślałem, że coś jest nie tak z źródłowym plikiem PDF. Jednakże, kiedy odsyłam surowe bajty pliku PDF do przeglądarki, NIE jestem pytany o pytanie „Czy chcesz zapisać” podczas używania poniższego kodu.

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

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

Moja konkluzja jest taka, że ​​iTextSharp robi coś „złego” w pliku PDF podczas otwierania go i zapisywania bajtów do strumienia, ale jestem nowym użytkownikiem iTextSharp i łatwo mi czegoś brakuje.

FWIW, to jest Acobat Reader 10.1.4, o którym mówimy.

EDYCJA: Oryginalny plik PDF używany jako szablon ma rozmiar około 80K. Jeśli spojrzę na plik tymczasowy przesyłany strumieniowo przez moją przeglądarkę, plik PDF napisany przez iTextSharp wynosi około 150 KB. Jednak gdy odpowiem „Tak” na pytanie „Zapisz zmiany” zadane przez program Acrobat Reader, wynikowy plik ponownie wynosi około 80 KB. iTextSharp zdecydowanie robi coś nieoczekiwanego w tym pliku.

questionAnswers(2)

yourAnswerToTheQuestion