【发布时间】:2015-02-20 10:49:56
【问题描述】:
我正在.Net 中开发一个windows 应用程序,我想从我的计算机中选择一个pdf 并以表格形式显示它。用户可以在应用程序中选择此pdf的某些部分,然后将生成所选区域的图像。
我不知道该怎么做。
如何阅读和显示 pdf 并截取其内容?
我曾尝试使用 com 组件 Acrobat Reader 阅读 pdf,但它不允许我使用鼠标捕获选定区域。
【问题讨论】:
我正在.Net 中开发一个windows 应用程序,我想从我的计算机中选择一个pdf 并以表格形式显示它。用户可以在应用程序中选择此pdf的某些部分,然后将生成所选区域的图像。
我不知道该怎么做。
如何阅读和显示 pdf 并截取其内容?
我曾尝试使用 com 组件 Acrobat Reader 阅读 pdf,但它不允许我使用鼠标捕获选定区域。
【问题讨论】:
最简单的方法是将 pdf 转换为位图(如果 pdf 是多页的,则为一系列位图)然后显示它。当用户选择某个区域时 - 只需剪切位图并保存到文件中。
您可以找到许多如何将 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;
}
绘制位图后,您可以在其上进行绘制(即,用于选择范围),根据需要剪切并保存到文件中。
【讨论】: