2012-05-04 31 views
2

這一個是稍微有一些混亂......CopyFromScreen不工作

我使用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; 

回答

3

看這本Print-Screen

,並嘗試這適用於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); 

} 
+0

非常感謝你 - 這已經完成了我想要的! 我已經稍微修改它,以我想要的方式工作,但完美! – Compunutter