3

これは少し紛らわしいです...

Adobe の PDF ビューアー コントロールを使用して PDF を表示していますが、ユーザーが画像を PDF にドラッグし、[保存] をクリックすると、その場所の PDF に画像が追加されるようにしたいと考えています。

PDF ビューアーの実装は非常に難しいことがわかりましたが、最終的には Adob​​e のコントロールを使用して写真を撮り、ユーザーが 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;
4

1 に答える 1

4

このプリントスクリーンを見てください

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);

} 
于 2012-05-04T12:08:35.517 に答える