1

我正在使用 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");
4

2 回答 2

3

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

while (_pdfDoc.IsJpgBusy)
{
    Thread.Sleep(50);
}
于 2013-06-10T12:23:15.417 回答
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)); 
于 2012-06-05T20:52:27.490 回答