复制从屏幕不起作用

本文关键字:不起作用 屏幕 复制 | 更新日期: 2023-09-27 18:33:06

这个有点令人困惑...

我正在使用 Adobe 的 PDF 查看器控件来查看 PDF,但我希望用户能够将图像拖到 PDF 上,然后在他们单击"保存"时,它将图像添加到该位置的 PDF 中。

实现PDF查看器被证明是相当困难的,但我最终决定使用Adobe的控件,拍照,然后允许用户在PDF图片的顶部绘制图像。当他们单击保存时,一旦我弄清楚了图像的去向,我将使用 PDFSharp 将图像放到 PDF 上,但目前我遇到的问题是我无法获得 PDF 的图片。

以下代码用于获取图片,但它附加到的面板仅显示白色背景,带有红色"X"和边框...

using (Bitmap bitmap = new Bitmap(adobePDFViewer1.Width, adobePDFViewer1.Height))
                {
                    using (Graphics g = Graphics.FromImage(bitmap))
                    {
                        g.CopyFromScreen(new Point(adobePDFViewer1.Left, adobePDFViewer1.Top), Point.Empty, adobePDFViewer1.Size);
                    }
                    panelOverPdfViewer.BackgroundImage = bitmap;
                }

我不认为这是最好的方法,但我无法解决任何其他方法。任何帮助将不胜感激!

编辑:

下面有一个非常有用的答案,这是工作代码:

这是我使用的代码:

Bitmap printscreen = new Bitmap(adobePDFViewer1.Width, adobePDFViewer1.Height);
                Graphics graphics = Graphics.FromImage(printscreen as Image);
                int left = this.Left + 396;
                int top = this.Top + 30;
                graphics.CopyFromScreen(left, top, 0, 0, printscreen.Size);
                pictureBoxOverPDFView.Image = printscreen;

复制从屏幕不起作用

看看这个打印屏幕

并尝试这样做来测试CopyFromScreen的工作

private void PrintScreen()
{  
Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(printscreen as Image);
graphics.CopyFromScreen(0, 0, 0, 0, printscreen.Size);
printscreen.Save(@"C:'Temp'printscreen.jpg", ImageFormat.Jpeg);
}