iTextSharp: невозможно присоединить PageEvent к устройству записи PdfSmartCopy
Этот код с использованием ItextSharp 5.5.10:
var msOutput = new MemoryStream();
var document = new Document(PageSize.A4, 0, 0, 0, 20);
var writer = new PdfSmartCopy(document, msOutput);
writer.PageEvent = new MyHeaderFooterEvents();
Выдает "Операция недопустима из-за текущего состояния объекта". при назначении "writer.PageEvent" (также происходит сбой при выполнении нового Document (без параметров) ().
Когда этот код работает отлично:
var outputStream = new MemoryStream();
var document = new Document(PageSize.A4, leftMargin, rightMargin, topMargin, bottomMargin);
var writer = PdfWriter.GetInstance(document, outputStream);
writer.PageEvent = new MyHeaderFooterEvents();
Любая идея?
1 ответ
Решение
Pdf[Smart]Copy
классы предназначены только для чтения. Это задокументировано в необработанном исходном коде:
/// Setting page events isn't possible with Pdf(Smart)Copy.
/// Use the PageStamp class if you want to add content to copied pages.
Примечание для команды разработчиков iText - если XML-документация комментирует с использованием <summary>
теги используются вместо текущего стиля, комментарии будут отображаться в Visual Studio IntelliSense.