vi.*_*su. 22 .net pdf image bitmap pdfsharp
如何使用PDFsharp .NET库将PDF页面导出为图像,用于像素级操作?
例如,System.Drawing.BitMap.GetPixel()之类的东西
我试图在PDF文档中找出空白区域(全白或任何颜色),以编写一些图形/图像.
2010年6月9日:
我试过这个,但它没有用.
为什么以下代码没有按预期工作?
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();
Je *_*not 18
答案可以在PDFsharp FAQ列表中找到: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对象复制任何内容,除了Graphics对象的DPI设置.图形对象绘制东西,但它们不记得绘制的内容,也无法在调用中重新创建绘图new Bitmap(...).这不适用于Microsoft的Graphics类,这也不适用于PDFsharp的XGraphics类.
PDFsharp中的XGraphics类可用于在PDF页面上绘图,它可用于在位图,打印机或屏幕上绘图 - 它可以在PDF页面和任何可从Windows获得的DC上绘制.MigraDoc也是如此.
因此,如果您想创建具有相同内容的PDF文件和位图,PDFsharp和MigraDoc可以提供帮助.
但是PDFsharp没有提供将PDF页面呈现为位图的任何方法.