我需要将活动文档一词打印到特定纸盘中。 例如,如果用户单击按钮字母,则应从纸盘2打印文档。 目前我正在使用这段基本代码
Dim word As Word.Application = Globals.ThisAddIn.Application
Dim pd As New PrintDialog()
pd.PrinterSettings = New PrinterSettings()
If pd.ShowDialog() = DialogResult.OK Then
word.PrintOut()
End If
如果我使用属性prindocument(),我已经设法做了一些与此相关的工作。像这样的东西
Dim pkSource As Printing.PaperSource Dim printDoc作为新的PrintDocument 'AddHandler printDoc.PrintPage
printDoc.PrinterSettings.PrinterName = strPrinter
For Each pkSource In printDoc.PrinterSettings.PaperSources
If pkSource.RawKind = "261" Then
printDoc.PrinterSettings.DefaultPageSettings.PaperSource.RawKind = pkSource.RawKind
Dim psize As Printing.PaperSize = printDoc.PrinterSettings.PaperSizes.Item(5)
printDoc.DefaultPageSettings.PaperSize = psize
printDoc.PrinterSettings.PrintRange = PrintRange.AllPages
'AddHandler printDoc.PrintPage, AddressOf Me.PrintDoc_PrintPage
printDoc.PrinterSettings.Copies = num_copies
printDoc.PrinterSettings.Duplex = Duplex.Default
AddHandler printDoc.PrintPage, AddressOf Me.PrintPageHandler
'PrintDocument1 = oWord.ActiveDocument
Try
'PrintDocument1.Print()
printDoc = app
Catch ex As System.Exception
MsgBox(ex.Message)
End Try
'printDoc.Print()
' MsgBox("printed")
RemoveHandler printDoc.PrintPage, AddressOf Me.PrintPageHandler
End If
Next
但我不想使用打印文档,因为我需要打印激活的word文档。
答案 0 :(得分:0)
我非常肯定您无法向PrintDocument对象添加内容 - 但它确实会公开您可以在页面级别操作的事件。
话虽如此,看来你在这里使用Word。为什么不使用单词object的ActiveDocument来设置托盘(firstPageTray和otherPagesTray)呢?