vb.net から word.activedocument を印刷する必要があります。私はdocument.printout() でそれを行うことができます。しかし、そのドキュメントをプリンターの特定のトレイに印刷する必要があります。だから今、私はprintdocument.print()を使用しています。これは、このコマンド行を使用して、印刷する特定のページソースを定義できるためですが、Word ドキュメントをこの printdocument.print にキャストまたは割り当てる方法がわかりません。私の質問が紛らわしい場合は、ここに私のコードがあります
Dim oWord As Word.Application = Globals.ThisAddIn.Application Dim app As Word.Document = oWord.ActiveDocument Dim objDataTypeMetafile As New Object objDataTypeMetafile = Word.WdPasteDataType.wdPasteMetafilePicture ' oWord.Visible = True Dim num_copies As String = tb_num_copies.Text 'oWord .PrintOut(Copies:=num_copies, PrintToFile:=False)
Dim prtdoc As New PrintDocument
Dim strDefaultPrinter As String = prtdoc.PrinterSettings.PrinterName
Dim strPrinter As String
For Each strPrinter In PrinterSettings.InstalledPrinters
com_printer.Items.Add(strPrinter)
If strPrinter = strDefaultPrinter Then
com_printer.SelectedIndex = com_printer.Items.IndexOf(strPrinter)
End If
Dim pkSource As Printing.PaperSource
Dim printDoc As New 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
printDoc.Print()
RemoveHandler printDoc.PrintPage, AddressOf Me.PrintPageHandler
End If
Next
Next strPrinter
oWord = Nothing
End Sub
Private Sub PrintPageHandler (オブジェクトとしての ByVal 送信者、Printing.PrintPageEventArgs としての ByVal args) ?????????????????? サブ終了