sys*_*ard 7 c# printing interop
我看过很多关于在c#中为word文档设置打印机托盘的帖子.我需要一个Excel解决方案.
如果可能,为任何文档提供更好的解决方案.某种方法我可以传递文件路径和托盘.
编辑 到目前为止,我已经尝试了以下内容,但在打印机设置中没有进行任何可见的更改.
PrinterSettings ps = new PrinterSettings();
ps.PrinterName = @"\\localhost\HP-4515n";
var dps = ps.DefaultPageSettings;
dps.PaperSource.RawKind = 260;
Run Code Online (Sandbox Code Playgroud)
要么
PrinterSettings ps = new PrinterSettings();
ps.PrinterName = @"\\localhost\HP-4515n";
PaperSource psrc = new PaperSource();
psrc.RawKind = 260;
psrc.SourceName = "unknown";
dps.PaperSource = psrc;
Run Code Online (Sandbox Code Playgroud)
编辑2
我正在硬编码RawKind,因为托盘在某些方面没有显示在papersources中.
目前,当我打印例如.Excel文档我显示PrinterDialog,获取所选打印机的名称并将其传递给interop Excel活动打印机属性.但现在我需要打印大量的文档,我需要以编程方式设置所选的打印机及其属性特别是托盘.
@sysboard,我从PrinterSettings 类的 MSDN 页面看到DefaultPageSettings 属性没有 set 方法,只有 get 方法。我不确定这是否可以从外部类访问...您可能会查看PageSettings 类,因为它看起来有一个重载的构造函数,允许您传递指定的打印机,并且它在 PaperSource 上有一个 set 方法。