如何使用 vb.net 设置打印机属性

How to set printer properties using vb.net

我正在使用 EDRAW 浏览 Microsoft Word 并且可以 Print , Preview , ETC..。我正计划为其添加一些功能。我正在为 Print Short (8.5 by 11 inches)Print Long (8.5 by 13 inches) 添加 2 个按钮,并且我有 2 台长打印机和短打印机。如何在每个按钮中设置打印机的属性?。如果我单击短按钮,它将使用与长按钮相同的打印机 1 打印短按钮,但它在打印机 2 中。

我遵循上面提供的 Link 中的代码。

有人对此有想法吗?任何建议都会有所帮助,并且会被接受。谢谢..干杯..两天后我会给它50赏金..

编码为@Hadi 请求

这是我的打印按钮代码。

Private Sub btnPrint_Click(sender As System.Object, e As System.EventArgs) Handles btnPrint.Click
    AxEDOffice1.SetActivePrinter("Printer Name")
    AxEDOffice1.ActiveDocument.PageSetup.PaperSize = Microsoft.Office.Interop.Word.WdPaperSize.wdPaperA4
    AxEDOffice1.PrintDialog()
End Sub

并在 AxEDOffice1.ActiveDocument.PageSetup.PaperSize = Microsoft.Office.Interop.Word.WdPaperSize.wdPaperA4

的行代码中出现错误 Object variable or With block variable not set

看起来 Change printername in PrintDialog through code 处理确保打印对话框根据 vb.net 中的打印机名称预先选择打印机。

检查库后,您所要做的就是使用 SetActivePrinter 方法更改您的默认打印机,如下所示:

 AxEDOffice1.SetActivePrinter("Adobe PDF")

要更改 PaperSize,您必须使用以下内容

AxEDOffice1.ActiveDocument.PageSetup.PaperSize = Microsoft.Office.Interop.Word.WdPaperSize.wdPaperA4

AxEDOffice1.ActiveDocumentMicrosoft.Office.Interop.Word.WordDocumentClass

的实例

代码对其进行了测试,它工作正常。

编辑 1:

Object variable or With block variable not set

阅读更多关于它的内容 MSDN article 有很多建议。

编辑 2:

要直接打印您的文档而不显示 PrintDialog 您必须使用 PrintOut 功能。

AxEDOffice1.PrintOut(EDOfficeLib.WdPrintOutRange.wdPrintAllDocument)