使用PDFLibNet保存pdf页面图像

时间:2012-05-24 15:36:40

标签: c# pdf

我正在使用PDFLibNet来保存PDF页面的拇指。 PictureBox工作正常并显示图像,但它保存为绝对白色(空白)图像!

PDFWrapper _pdfDoc = new PDFWrapper();
_pdfDoc.LoadPDF("d:\\bb.pdf");

PDFPage page = _pdfDoc.Pages[1];

Bitmap b = (Bitmap)page.LoadThumbnail(Convert.ToInt32(width), Convert.ToInt32(height));

pictureBox1.Image = b;

b.Save("D:\\a.jpg");

2 个答案:

答案 0 :(得分:3)

您可以查看 _pdfDoc.IsJpgBusy 属性。主线程处理缩略图

while (_pdfDoc.IsJpgBusy)
{
    Thread.Sleep(50);
}

答案 1 :(得分:0)

您需要在某个时候提供PDFLibNet才能完成位图的渲染。该库使用单独的线程渲染缩略图,并在完成时触发RenderThumbnailFinished事件。

RenderNotifyFinishedHandler handler = (s, e) => pictureBox1.Image.Save("D:\\a.jpg");
PDFWrapper _pdfDoc = new PDFWrapper(); 
_pdfDoc.LoadPDF("d:\\bb.pdf"); 

PDFPage page = _pdfDoc.Pages[1]; 
page.RenderThumbnailFinished += handler;

pictureBox1.Image = (Bitmap)page.LoadThumbnail(Convert.ToInt32(width), Convert.ToInt32(height));