C#如果调用系统图片打印向导打印图片

时间:2022-09-11 07:59:49
如题。C#如果调用系统图片打印向导打印图片?
在网上找到一段代码,可以实现调用windows图片查看器打开指定图片

System.Diagnostics.Process.Start("rundll32.exe", string.Format("{0} {1}", "shimgvw.dll,ImageView_Fullscreen", @"f:\demo.bmp"));

查了些资料好像shimgvw.dll,ImageView_Fullscreen改成shimgvw.dll,ImageView_PrintTo /pt 就是打印。但具体不知道怎么写参数,求教大神帮忙。或者其他办法也行,达到目的即可

4 个解决方案

#1


第1步, 你可以将文件读取到   PictureBox 

第2步:

拖一个printDocument控件到界面。
打印按钮的代码:
C# CODE:

 private void button1_Click(object sender, EventArgs e)//执行打印
        {
            PrintDialog MyPrintDg = new PrintDialog();
            MyPrintDg.Document = printDocument1;
            if (MyPrintDg.ShowDialog() == DialogResult.OK) { try
                {
                    printDocument1.Print();
                }
                catch
                {   //停止打印
                    printDocument1.PrintController.OnEndPrint(printDocument1, new System.Drawing.Printing.PrintEventArgs());
                }
            }
        }

第3步:
设置printDocument控件的PrintPage事件:
 private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            e.Graphics.DrawImage(pictureBox1.Image, 20, 20);
        }

#2


注意问题是如何调用系统照片打印向导,不是用printDocument打印

#4


这个问题可能比较难实现,上面说的对我都没什么帮助。那么换个问题来问,如何获取PrintDialog用户设置的自定义尺寸大小?
PaperSize ps =new PaperSize("Your Paper Name", 100, 70); 可以设置自定义尺寸大小,但我是想知道PrintDialog窗口点击确定后,用户填写的自定义的尺寸。

PaperSize gg = new PaperSize();
gg = this.printDocument1.PrinterSettings.DefaultPageSettings.PaperSize;
int x = gg.Width;//获取页面设置的纸张尺寸
int y = gg.Height;

这个方法仅可以获取A4,A3等可选择尺寸的高度和宽度,获取自定义的尺寸结果还返回的是A4的宽度和高度。求教

#1


第1步, 你可以将文件读取到   PictureBox 

第2步:

拖一个printDocument控件到界面。
打印按钮的代码:
C# CODE:

 private void button1_Click(object sender, EventArgs e)//执行打印
        {
            PrintDialog MyPrintDg = new PrintDialog();
            MyPrintDg.Document = printDocument1;
            if (MyPrintDg.ShowDialog() == DialogResult.OK) { try
                {
                    printDocument1.Print();
                }
                catch
                {   //停止打印
                    printDocument1.PrintController.OnEndPrint(printDocument1, new System.Drawing.Printing.PrintEventArgs());
                }
            }
        }

第3步:
设置printDocument控件的PrintPage事件:
 private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            e.Graphics.DrawImage(pictureBox1.Image, 20, 20);
        }

#2


注意问题是如何调用系统照片打印向导,不是用printDocument打印

#3


#4


这个问题可能比较难实现,上面说的对我都没什么帮助。那么换个问题来问,如何获取PrintDialog用户设置的自定义尺寸大小?
PaperSize ps =new PaperSize("Your Paper Name", 100, 70); 可以设置自定义尺寸大小,但我是想知道PrintDialog窗口点击确定后,用户填写的自定义的尺寸。

PaperSize gg = new PaperSize();
gg = this.printDocument1.PrinterSettings.DefaultPageSettings.PaperSize;
int x = gg.Width;//获取页面设置的纸张尺寸
int y = gg.Height;

这个方法仅可以获取A4,A3等可选择尺寸的高度和宽度,获取自定义的尺寸结果还返回的是A4的宽度和高度。求教