Подтвердить что ты не робот

Как экспортировать PDF-страницу в качестве изображения с помощью библиотеки PDFsharp.NET?

Как экспортировать PDF-страницу в качестве изображения с помощью библиотеки PDFsharp.NET для манипуляции на уровне пикселей?

Например, что-то вроде System.Drawing.BitMap.GetPixel()

Я пытаюсь найти пустую область (весь белый или любой цвет) внутри документа PDF, чтобы написать некоторую графику/изображение.

09, июнь 2010:

Я пробовал это, но он не работает.

Почему следующий код работает не так, как ожидалось?

Bitmap.GetPixel всегда возвращает 0.

//
// PdfSharp.Pdf.PdfDocument
// PdfSharp.Pdf.PdfPage
// PdfSharp.Drawing.XGraphics
// System.Drawing.Bitmap
//
string srcPDF = @"C:\hcr\test\tmp\file1.pdf";
PdfDocument pdfd = PdfReader.Open(srcPDF);
XGraphics xgfx = XGraphics.FromPdfPage(pdfd.Pages[0]);
Bitmap b = new Bitmap((int) pdfp.Width.Point, (int) pdfp.Height.Point, xgfx.Graphics);

int rgb = b.GetPixel(0, 0).ToArgb();
4b9b3361

Ответ 1

Ответ можно найти в списке часто задаваемых вопросов в формате PDFsharp: http://www.pdfsharp.net/wiki/PDFsharpFAQ.ashx#Can_PDFsharp_show_PDF_files_Print_PDF_files_Create_images_from_PDF_files_3

PDFsharp создает PDF файлы, но не может их отобразить.

Вызов

Bitmap b = new Bitmap((int) pdfp.Width.Point, (int) pdfp.Height.Point, xgfx.Graphics);

не инициализирует никакие биты растрового изображения и ничего не копирует из объекта Graphics, кроме параметра DPI объекта Graphics. Графические объекты рисуют вещи, но они не помнят, что они нарисовали, и они не могут воссоздать чертежи при вызове new Bitmap(...). Это не работает с классом Graphics от Microsoft, это также не работает с классом XGraphics из PDFsharp.

Класс XGraphics из PDFsharp может использоваться для рисования на страницах PDF и его можно использовать для рисования на растровых изображениях, на принтере или на экране - он может рисовать на страницах PDF и на любом DC, который вы можете получить из Windows, То же самое касается MigraDoc.
Поэтому, если вы хотите создавать PDF файлы и растровые изображения с одним и тем же содержимым, могут помочь PDFsharp и MigraDoc.

Но PDFsharp не предоставляет никакого способа отображения страницы PDF в растровое изображение.

Ответ 2

По состоянию на 2019 год, по-видимому, до сих пор нет библиотеки с открытым исходным кодом .NET, которая позволяла бы растеризовать/отобразить/распечатать существующие файлы PDF.