WPF 的打印问题

taojialin27 2018-01-18 10:40:42
用的是PrintDialog来打印
但打印机是老式的,首选项没有设定纸张大小和左边距之类的
打印出来的只有A4纸大小,而且需要左边留一厘米的边距

现在是在界面上位移了一厘米的空白,缩小了要打印内容的宽度
打印机能进A2的纸张,所以会出现内容向左边歪斜。。
            PrintDialog diaprint = new PrintDialog();

if (diaprint.ShowDialog() == true)
{
PaperSize pageSize = new PaperSize("First custom size", 744, 600);
System.Windows.Size printed = new System.Windows.Size(caprint.Width, caprint.Height);
canprint.Measure(printed);
diaprint.PrintVisual(canprint, "Order Print");
}

要怎么在后台设定它的范围和左边留下一厘米的边距

另外,需要前进后出纸,现在是前进前出纸,能改吗
...全文
745 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
m01385 2018-02-09
  • 打赏
  • 举报
回复
我自己最近项目的做法是:因为wpf打印出来的成像跟所设计的UI可视化控件大小相同,所以我根据屏幕dpi和系统dpi以及公式来反算成wpfUI里的设备无关单位大小,你想调位置的话就在ui调
taojialin27 2018-01-18
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
要怎么在后台设定它的范围和左边留下一厘米的边距 -》需要自定义打印方式,也就是手动设定打印位置以及内容,通过可视化打印来实现,搜索drawingvisual以及drawingcontext。
现在查到怎么写死了,但是打印机只能打A4大小,设定大小了还是只能A4范围,应该是打印机问题 可是还是从左边孔那开始打的,也就是想要 纸张大小用数字描述:0123456789长度 a4大小站6个数字,打印从2开始 即纸张上01为孔,234567为A4纸大小,也是打印内容,89为孔
taojialin27 2018-01-18
  • 打赏
  • 举报
回复
引用 2 楼 taojialin27 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 要怎么在后台设定它的范围和左边留下一厘米的边距 -》需要自定义打印方式,也就是手动设定打印位置以及内容,通过可视化打印来实现,搜索drawingvisual以及drawingcontext。
比方说要打印的纸张大小为400mm*500mm 而打印出来的只有a4大小,210mm×297mm 打印出来的canvas会有一半内容不被打印出来 (这台打印机首选项里没有相关可改动设置,可能打印机比较老的关系) 打印的是单据,所以打印要留出左边孔的距离 但打印的起始位置是从最左边开始 emmmm这些设置想在后台打印的时候去设置,因为首选项里不能改[/quote] 就是在代码里把这些设定死。。
taojialin27 2018-01-18
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
要怎么在后台设定它的范围和左边留下一厘米的边距 -》需要自定义打印方式,也就是手动设定打印位置以及内容,通过可视化打印来实现,搜索drawingvisual以及drawingcontext。
比方说要打印的纸张大小为400mm*500mm 而打印出来的只有a4大小,210mm×297mm 打印出来的canvas会有一半内容不被打印出来 (这台打印机首选项里没有相关可改动设置,可能打印机比较老的关系) 打印的是单据,所以打印要留出左边孔的距离 但打印的起始位置是从最左边开始 emmmm这些设置想在后台打印的时候去设置,因为首选项里不能改
exception92 2018-01-18
  • 打赏
  • 举报
回复
要怎么在后台设定它的范围和左边留下一厘米的边距 -》需要自定义打印方式,也就是手动设定打印位置以及内容,通过可视化打印来实现,搜索drawingvisual以及drawingcontext。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧