フォームのスクリーンショットを作成してプリンタに送信しています。画像が大きすぎると、ページの両側に表示されます。私は過去数時間、無駄に探しています。誰かを助けることができる?印刷前のイメージの再スケーリング
ファイルを開くと、印刷プレビューでよく見えます。私はプレビューからその罰金を印刷する場合。しかし、私はユーザーの介入なしでこれをやりたかったのです。
public void SetupPrintHandler()
{
PrintDocument printDoc = new PrintDocument();
printDoc.PrintPage += new PrintPageEventHandler(OnPrintPage);
printDoc.DefaultPageSettings.Landscape = true;
printDoc.Print();
}
private void OnPrintPage(object sender, PrintPageEventArgs args)
{
using (Image image = Image.FromFile(@"C:/temp2.bmp"))
{
Graphics g = args.Graphics;
g.DrawImage(image, 0, 0);
}
}
private void printscreen()
{
ScreenCapture sc = new ScreenCapture();
Image img = sc.CaptureScreen();
sc.CaptureWindowToFile(this.Handle, "C:/temp2.bmp", ImageFormat.Bmp);
SetupPrintHandler();
}
だから私は今のように代わりのスクリーンショットだけで何をしたか、テストのために、私は2 pictureboxesあるパネル3にあったものを保存します。だから私はpanel3のサイズを取っています。
Bitmap bmp = new Bitmap(panel3.ClientSize.Width, panel3.ClientSize.Height);
panel3.DrawToBitmap(bmp, panel3.ClientRectangle);
bmp.Save(subPath + file + ".bmp");
印刷プレビューではすばらしく、印刷プレビューから印刷をクリックすると印刷がうまくいきます。しかし、プリンタにまっすぐに送ると、それは合わない。サイズの問題ではなく、印刷プレビューを使用しないときにプリンタに送信する設定が必要なのでしょうか?
更新 この問題を発見した可能性があります。写真を印刷するときに「枠に合わせる」のチェックを外すと、それは完璧にフィットします。ただし、「フレームに合わせる」機能を無効にできる方法は、プリンタに直接送信するときには選択肢がないようです。
次の操作を行い、画像の縦横のサイズを変更しておきたい場合。 – TaW