使用 c# 在 Windows 应用程序中截取 pdf 中选定区域的屏幕截图

本文关键字:区域 屏幕截图 pdf 截取 Windows 应用程序 使用 | 更新日期: 2023-09-27 18:35:01

我正在.Net中开发一个Windows应用程序,我想从计算机中选择一个pdf并将其显示在表单中。用户可以在应用程序中选择此pdf的某些部分,并将生成所选区域的图像。

我不知道该怎么做。

如何阅读和显示 pdf 并截取其内容的屏幕截图?

我尝试使用com组件Acrobat Reader来阅读pdf,但它不允许我使用鼠标捕获所选区域。

使用 c# 在 Windows 应用程序中截取 pdf 中选定区域的屏幕截图

最简单的方法是将 pdf 转换为位图(如果 pdf 是多页的,则为位图系列(,然后显示它。当用户选择某个区域时 - 只需剪切位图并保存到文件中。

您可以找到许多如何将pdf转换为位图的示例:

  • 使用 C# 或命令行将 PDF 转换为 JPG 或 PNG

  • 使用itextsharp将PDF文件页面转换为图像

等等

编辑:

这篇文章似乎非常接近你的问题:http://www.codeproject.com/Articles/37637/View-PDF-files-in-C-using-the-Xpdf-and-muPDF-libra

OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Portable Document Format (*.pdf)|*.pdf";
if (dlg.ShowDialog() == DialogResult.OK)
{
    _pdfDoc = new PDFLibNet.PDFWrapper();
    _pdfDoc.LoadPDF(dlg.FileName);
    _pdfDoc.CurrentPage = 1;
   PictureBox pic =new PictureBox();
   pic.Width=800;
   pic.Height=1024;
   _pdfDoc.FitToWidth(pic.Handle);
   pic.Height = _pdfDoc.PageHeight;
   _pdfDoc.RenderPage(pic.Handle);
   Bitmap _backbuffer = new Bitmap(_pdfDoc.PageWidth, _pdfDoc.PageHeight);
   using (Graphics g = Graphics.FromImage(_backbuffer))
   {
       _pdfDoc.RenderHDC(g.GetHdc);
       g.ReleaseHdc();
   }
   pic.Image = _backbuffer;
}  
绘制

位图后,您可以在其上绘制(即选择范围(,根据需要剪切并保存到文件。