打印机设置为:
纸张-A6(4.13*5.83英寸)
dpi-600(600*600,每英寸600像素)
理论上是不是最大可打印:2478*3498像素图片啊?(4.13X600 * 5.83X600)
图片像素为:1600*1200
用e.Graphics.DrawImage(PicBox.Image, 0, 0)打印,实际上只打印了图片很小一部份!大部份内容超出页面了
以调试方式运行检查 e As System.Drawing.Printing.PrintPageEventArgs 的参数如下
+ MarginBounds {X = 100 Y = 100 Width = 383 Height = 213} System.Drawing.Rectangle
+ PageBounds {X = 0 Y = 0 Width = 583 Height = 413} System.Drawing.Rectangle
+ PageSettings {[PageSettings: Color=True, Landscape=True, Margins=[Margins Left=100 Right=100 Top=100 Bottom=100], PaperSize=[PaperSize A6 Kind=A6 Height=583 Width=413], PaperSource=[PaperSource 自动选择 Kind=FormSource], PrinterResolution=[PrinterResolution X=600 Y=600]]} System.Drawing.Printing.PageSettings
请问打印的区域是怎样计算出来的呢?重要是不损失打印质量的情况下,如何打印出这张图片呢?
24 个解决方案
#1
#2
图片打印应该不少人做过吧,广谈无妨
#3
参数调整为:
MarginBounds {X = 10 Y = 10 ...}
Margins=[Margins Left=10 Right=10 Top=10 Bottom=10]
试一试看看。
MarginBounds {X = 10 Y = 10 ...}
Margins=[Margins Left=10 Right=10 Top=10 Bottom=10]
试一试看看。
#4
不是边距问题,图片只打印了一小部份,目测大概只打了图片的1/9左右
#5
离全图差好远
#6
A6纸打满了,也只是打了图片的1/9,打印的清晰度也不够
#7
帮顶,我是用缩图的方法打印的,效果也不理想,dpi只是96,显示还可以,打印出来丑啊。
Dim aBmp As New Bitmap(PicBox.Image)
Dim bBmp As New Bitmap(200,100)
Dim g As Graphics = Graphics.FromImage(bBmp)
g.DrawImage(aBmp,0,0,bBmp.Width+1,bBmp.Height+1)
g.Dispose()
e.Graphics.DrawImage(bBmp, 0, 0)
#8
多谢,我也试过了,可以解决超出纸张问题,但压缩后打印的图片太……,质量损失太大,600dpi不行的话300dpi也可以,只要质量别太差就行。
#9
96dpi实在太差了,不行啊,有没有质量好点的,原图像素这么高,要压很多才行,质量不行啊。
等待高手……
等待高手……
#10
改了一下打印机的dpi,300dpi和600dpi打出来的范围好象没什么变化啊?
打印范围到底怎么算的?
求解
打印范围到底怎么算的?
求解
#11
问题是不是在:PicBox.Image 这个图片呢。
#12
#13
改为直接取文件数据也一样。
e.Graphics.DrawImage(Image.FromFile("图片\示例图片.bmp"), 0, 0)
#14
长江支流 大侠的博客被关了,请问有没有高dpi打印大图的实例代码呢?
#15
用專用控件,他們很專業
#16
在哪里有,给个网址也行
#17
#18
这些控件要钱的,听说你做了破解,能无私贡献一次吗?
#19
问题仍然没解决,继续努力求答案,请各位高手多点提示,打印质量好点的程序不是这么难写吧?
#20
幫你頂,慢慢等,會有 的
#21
楼主苦等这么多天,还没解决问题吗?
估计你打印前没设置图片的dpi,所以图片按96dpi打印,大图就只打了部份出来
估计你打印前没设置图片的dpi,所以图片按96dpi打印,大图就只打了部份出来
Dim bitmap As New Bitmap(PicBox.Image.Width,PicBox.Image.Height)
'设置为300dpi
bitmap.SetResolution(300.0F,300.0F)
Dim g As Graphics = Graphics.FromImage(bitmap)
g.DrawImage(PicBox.Image,0,0,PicBox.Image.Width,PicBox.Image.Height)e.Graphics.DrawImage(bitmap, 0, 0)
#23
Yes!终于解决了,就是这个问题,指定打印图片的dpi!果然是藏龙卧虎的地方啊!
马上结帖,非常感谢各位的热情帮助!谢谢!
#24
学习了。以后有时间可以用到。
#1
#2
图片打印应该不少人做过吧,广谈无妨
#3
参数调整为:
MarginBounds {X = 10 Y = 10 ...}
Margins=[Margins Left=10 Right=10 Top=10 Bottom=10]
试一试看看。
MarginBounds {X = 10 Y = 10 ...}
Margins=[Margins Left=10 Right=10 Top=10 Bottom=10]
试一试看看。
#4
不是边距问题,图片只打印了一小部份,目测大概只打了图片的1/9左右
#5
离全图差好远
#6
A6纸打满了,也只是打了图片的1/9,打印的清晰度也不够
#7
帮顶,我是用缩图的方法打印的,效果也不理想,dpi只是96,显示还可以,打印出来丑啊。
Dim aBmp As New Bitmap(PicBox.Image)
Dim bBmp As New Bitmap(200,100)
Dim g As Graphics = Graphics.FromImage(bBmp)
g.DrawImage(aBmp,0,0,bBmp.Width+1,bBmp.Height+1)
g.Dispose()
e.Graphics.DrawImage(bBmp, 0, 0)
#8
多谢,我也试过了,可以解决超出纸张问题,但压缩后打印的图片太……,质量损失太大,600dpi不行的话300dpi也可以,只要质量别太差就行。
#9
96dpi实在太差了,不行啊,有没有质量好点的,原图像素这么高,要压很多才行,质量不行啊。
等待高手……
等待高手……
#10
改了一下打印机的dpi,300dpi和600dpi打出来的范围好象没什么变化啊?
打印范围到底怎么算的?
求解
打印范围到底怎么算的?
求解
#11
问题是不是在:PicBox.Image 这个图片呢。
#12
#13
改为直接取文件数据也一样。
e.Graphics.DrawImage(Image.FromFile("图片\示例图片.bmp"), 0, 0)
#14
长江支流 大侠的博客被关了,请问有没有高dpi打印大图的实例代码呢?
#15
用專用控件,他們很專業
#16
在哪里有,给个网址也行
#17
參考:
http://ufo-crackerx.blog.163.com/blog/static/113078778201111158561961/
http://ufo-crackerx.blog.163.com/blog/static/1130787782012219104916610/
http://ufo-crackerx.blog.163.com/blog/static/1130787782011117102355634/
http://ufo-crackerx.blog.163.com/blog/static/113078778201111158561961/
http://ufo-crackerx.blog.163.com/blog/static/1130787782012219104916610/
http://ufo-crackerx.blog.163.com/blog/static/1130787782011117102355634/
#18
这些控件要钱的,听说你做了破解,能无私贡献一次吗?
#19
问题仍然没解决,继续努力求答案,请各位高手多点提示,打印质量好点的程序不是这么难写吧?
#20
幫你頂,慢慢等,會有 的
#21
楼主苦等这么多天,还没解决问题吗?
估计你打印前没设置图片的dpi,所以图片按96dpi打印,大图就只打了部份出来
估计你打印前没设置图片的dpi,所以图片按96dpi打印,大图就只打了部份出来
Dim bitmap As New Bitmap(PicBox.Image.Width,PicBox.Image.Height)
'设置为300dpi
bitmap.SetResolution(300.0F,300.0F)
Dim g As Graphics = Graphics.FromImage(bitmap)
g.DrawImage(PicBox.Image,0,0,PicBox.Image.Width,PicBox.Image.Height)e.Graphics.DrawImage(bitmap, 0, 0)
#22
#23
Yes!终于解决了,就是这个问题,指定打印图片的dpi!果然是藏龙卧虎的地方啊!
马上结帖,非常感谢各位的热情帮助!谢谢!
#24
学习了。以后有时间可以用到。