0

有没有办法使用矩形从 pdf 创建图像?

我正在使用 syncfusion pdfviewer(使用无限固定费用许可证)。这就是我使用 c# 从 pdf 创建图像的方式

private void ScreenCapture(string fileName, int x, int y, int width, int height)
        {
            try
            {

                if (x != 0 && y != 0 && width != 0 && height != 0)
                {
                    Rectangle rect = new Rectangle(x, y, width, height);
                    Bitmap bmp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb);
                    Graphics g = Graphics.FromImage(bmp);
                    g.CopyFromScreen(rect.Left, rect.Top, 0, 0, bmp.Size, CopyPixelOperation.SourceCopy);
                    bmp.Save(fileName, ImageFormat.Jpeg);
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
                MessageBox.Show(ex.StackTrace);
            }
            finally
            {

            }
        }

这是我的附加代码

关于申报

Point startPoint;

鼠标按下

Control control = (Control)sender;

            startPoint = control.PointToScreen(new Point(e.X, e.Y));

在我的鼠标上

Point endPoint = ((Control)sender).PointToScreen(new Point(e.X, e.Y));
            int width = endPoint.X - startPoint.X;
            int height = endPoint.Y - startPoint.Y;
            theRectangle = new Rectangle(startPoint.X ,
                startPoint.Y, width, height );

我的代码的问题是我正在捕获我的屏幕。所以当我调整我的程序大小时。它将捕获屏幕并导致错误的图像

那么有没有办法使用 c# 获取或将具有矩形的 pdf 页面转换为图像?谢谢你

在此处输入图像描述

更新:

如果我的问题不清楚,我很抱歉。

例子。我使用syncfusion的pdfviewer在pdf上画一个矩形

在此处输入图像描述

输出将是这样的

https://drive.google.com/open?id=0B45rDxvaXzsmcTZIVVVSUU9Zc0E
https://drive.google.com/open?id=0B45rDxvaXzsmc1cxNTV4UUdOMUE
https://drive.google.com/open?id=0B45rDxvaXzsmSWtDRWhXYkpDT2c
https://drive.google.com/open?id=0B45rDxvaXzsmS214WmJnN3BvcUk

如果我的问题不清楚,我很抱歉

4

1 回答 1

1

分析所附截图后,我们发现您使用PdfViewerControl的是 WPF 平台。根据您的要求,我们创建了一个示例,以使用 PDF 查看器将具有矩形的 pdf 页面转换为图像。  

使用示例的步骤: 

  1. 使用您在屏幕截图中使用的形状注释在一个区域中绘制矩形。 

  2. 使用 的“保存”按钮将更改保存在 PDF 文档中PdfViewerControl。 

  3. 单击“打开 PDF 和 ExportAsImage”按钮将具有矩形的页面导出为图像。

请找到用于将具有矩形的 PDF 页面转换为图像的代码片段:

PdfLoadedDocument ldoc = new PdfLoadedDocument(fileName); 

ldoc.Pages[0].Annotations.Flatten = true;
 

ldoc.Save(); 

Bitmap bmp = ldoc.ExportAsImage(0);
 

bmp.Save("outputImage.jpeg");

您可以从以下链接下载示例。 

示例链接:http ://www.syncfusion.com/downloads/support/directtrac/166006/ze/SampleWPF734738560   

我们还为使用该示例创建了一个视频演示,它将在下面的链接中提供。 

视频链接:http ://www.syncfusion.com/downloads/support/directtrac/166006/ze/ExportAsImage1083458687 

请试试这个样品,让我们知道它是否符合您的要求。

否则,请向我们提供具体详细信息,例如您所需输出的屏幕截图、您使用的样本和其他详细信息(如果有)。这将有助于我们进行更多分析并为您提供更好的解决方案。

于 2016-10-27T12:40:55.577 回答