[求助]C#下控制打印机打印照片到照片纸上

288 天前
 CFCL

我这边有需要使用 c#控制打印机打印,打印 A4 纸没什么问题,但是把照片打印到照片纸上很有问题,总是打不满 6 寸的照片纸。就像下面的样子,至于颜色不对,那是因为调试了很久,打印机墨水都没有。

我用电脑直接右键图片->打印能打满图片。

一番检查下来,可能与“页面布局”属性有关,但是不知道如何设置,其它属性能设置,但就是找不到这个属性如何设置。

查资料和问 AI 都没有解决,只能麻烦 V2EX 各位,如何才能打印满 6 寸的图片纸。

c#下我使用 PrintTicket类 进行打印的设置。 这个问题,我调试一段时间,都没法解决,希望大家能够提供一些思路,万分感谢。

1040 次点击
所在节点    程序员
12 条回复
lmmortal
288 天前
a4 打出来什么样?看样子感觉是打印机不支持无边框打印
pvnk1u
288 天前
我比较好奇 C# 控制硬件是怎么控制的,是 C#下有直接控制硬件的这些官方类库吗
RTSmile
288 天前
@pvnk1u PrintTicket 类就是官方包装的一个打印类。
只能说 C#是微软亲儿子不是说着玩玩的。
beginor
288 天前
beginor
288 天前
或者调用相关的 Windows Com 组件
CFCL
288 天前
@lmmortal 可以无边打印的,不用我软件打印,直接用 win10 系统电脑调用打印是可以打满图片的
CFCL
288 天前
@pvnk1u 装好驱动后,c#提供有对应的库进行控制打印
CFCL
288 天前
@beginor 我试试看
tangmanger
288 天前
打印中 有一个概念 叫 出血 可以通过设置打印设置来设置边框大小 出血范围
tangmanger
288 天前
@tangmanger
PrintDocument pd = new PrintDocument();

pd.PrinterSettings.PrinterName = PrinterName;
pd.DefaultPageSettings.Margins.Left = 0;
pd.DefaultPageSettings.Margins.Top = 0;
pd.DefaultPageSettings.Margins.Right = 0;
pd.DefaultPageSettings.Margins.Bottom = 0;
CFCL
288 天前
@tangmanger 这个我也试过,没有效果。SetPaperMargins 也设置了,也没有效果
ICU
288 天前
试试 PrintDialog 的 PrintVisual 方法呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1023709

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX