Хотя у меня есть обходной путь для этой проблемы, я бы предпочел сделать это так, как я столкнулся с этой проблемой.Позвольте мне объяснить контекст, прежде чем приступить к проблеме:
Я использую сканер для получения виртуальных изображений, которые я хочу использовать для создания PDF-файла, где каждая страница представляет собой одно изображение.Я отлично работал, используя PDFsharp для создания PDF.
Однако;если я попытаюсь повторно сохранить документ PDFsharp, он завершает очистку всех предыдущих страниц, а затем добавляет новое изображение.
Для большего контекста я использую ASP.NET Windows Forms, NTwain для программного обеспечения для сканирования, PDFsharp для создания PDF и PdfiumViewer для просмотра PDF в форме Windows.
У меня есть переменная уровня класса для документа PdfDocument document = new PdfDocument();
При сохранении изображения я просто сохраняю изображение на новой странице
var img = pictureBox1.Image;
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);
XImage image = XImage.FromGdiPlusImage(img);
gfx.DrawImage(image, 0, 0);
Для рендерингадокумент, я копирую документ (хотя это может решить проблему) в новый документ, сохраняю содержимое в новый поток памяти и просто просматриваю PDF
var viewDocument = (PdfDocument)document.Clone();
MemoryStream ms = new MemoryStream();
viewDocument.Save(ms, false);
ms.Position = 0;
var pdf = PdfiumViewer.PdfDocument.Load(ms);
pdfRenderer1.Load(pdf);
Я получил его, сохранивизображение в список, а не как новую страницу, и переделывать документ каждый раз, когда я хотел его отобразить.Проблема действительно странная, однако.
Любая помощь, понимающая, почему это делает, ценится.