使用 PDFLibNet 保存 pdf 页面图像

本文关键字:图像 pdf PDFLibNet 保存 使用 | 更新日期: 2023-09-27 18:35:25

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

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");

使用 PDFLibNet 保存 pdf 页面图像

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

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

您需要给 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));