Как экспортировать PDF-страницу как изображение, используя библиотеку PDFsharp .NET? - PullRequest
20 голосов
/ 08 июня 2010

Как экспортировать страницу 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();

1 Ответ

17 голосов
/ 10 июня 2010

Ответ можно найти в списке часто задаваемых вопросов 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 и на любом контроллере домена, который можно получить из Windows , То же самое касается MigraDoc.
Поэтому, если вы хотите создавать PDF-файлы и растровые изображения с одинаковым содержимым, PDFsharp и MigraDoc могут помочь.

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

...