Я работаю над приложением C #, которое создает отчеты, открывая шаблон и добавляя текст и таблицы.
Это отлично работает в iTextSharp v5.5.6
Поскольку мне нужно внести некоторые изменения в код, который я хочу обновить до последней версии: v5.5.13
PDF все еще создан. У меня нет проблем с просмотром в pdfJS, но после загрузки и открытия в Adobe Acrobat Reader я получаю сообщение о том, что что-то не так в документе. Документ по-прежнему отображается правильно.
Когда я проверяю PDF в https://www.pdf -online.com / osa / validate.aspx , я получаю такой результат:
Compliance pdf1.7
Result Document does not conform to PDF/A.
Details Validating file "foo.pdf" for conformance level pdf1.7
The name Xf1 of a xobject resource is unknown.
The document does not conform to the requested standard.
The document doesn't conform to the PDF reference (missing required entries, wrong value types, etc.).
The document's meta data is either missing or inconsistent or corrupt.
The document does not conform to the PDF 1.7 standard.
PDF, созданный в версии 5.5.6, возвращает:
Compliance pdf1.7
Result Document validated successfully.
Details Validating file "foo.pdf" for conformance level pdf1.7
The document does conform to the PDF 1.7 standard.
Я перепробовал все версии между v5.5.6 и v5.5.13 и начиная с v5.5.8 я получаю эту ошибку.
Скорее всего, мне нужно изменить свой код, но я не уверен, как. Я проверил журналы изменений, но не смог найти ничего, связанного с этой ошибкой.
Вот код:
var ms = new MemoryStream();
var document = new Document();
var writer = PdfWriter.GetInstance(document, ms);
writer.PageEvent = new MyPageEventHandler();
document.Open();
writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_7);
writer.PdfVersion = PdfWriter.VERSION_1_7;
writer.CompressionLevel = PdfStream.BEST_COMPRESSION;
writer.SetFullCompression();
document.SetMargins(33, 33, 35, 55);
document.AddTitle(title);
document.AddAuthor("foo");
document.AddSubject(subject);
document.AddAuthor("bar");
document.AddCreationDate();
document.AddProducer();
document.AddLanguage("NL");
document.AddCreator("fooMore");
// Add some text and table data
---
writer.CloseStream = false;
document.Close();
ms.Position = 0;
return ms;