StartInfo.Verb = "PrintTo" 在 vb.net 2010 不适用于 jpg 文件,但适用于 pdf?



我正在尝试在特定打印机的后台(理论上)任何类型的文件中打印jpg/图像文件。

所以,我正在使用startinfo.verb = "PrintTo"

以下是使用的代码:

    Dim objStartInfo As New ProcessStartInfo
    Dim objProcess As New System.Diagnostics.Process
    Dim sreport As String = "d:WallpaperPersonal PicturexVaiDSC_0000500.jpg" but not here :(
    'Dim sreport As String = "c:Documents and SettingsyDesktopxNewrequirements.pdf" rem works for pdf file
    'Dim sreport As String = "g:My DocumentsWordBudget.doc" rem even works for document file
    Dim sPrinter As String = "Microsoft Office Document Image Writer"
    Dim iloop As Integer
    Try
        objProcess.StartInfo.CreateNoWindow = True
        objProcess.StartInfo.UseShellExecute = True
        objProcess.StartInfo.FileName = sreport
        objProcess.StartInfo.Arguments = """" & sPrinter & """"
        objProcess.StartInfo.Verb = "PrintTo"
        objProcess.StartInfo.CreateNoWindow = True
        objProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
        objProcess.Start()
        If objProcess.HasExited = False Then
            iloop = 0
            While Not objProcess.HasExited
                System.Threading.Thread.Sleep(100)
                iloop = CShort(iloop + 1)
                cmdProcess.Text = iloop.ToString
                Me.Refresh()
                If iloop >= 300 Then
                    Exit While
                End If
            End While
        End If
        objProcess.CloseMainWindow()
        objProcess.Close()
        objProcess.Dispose()
        objProcess = Nothing
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

它适用于文档、PDF 文件,但当我尝试 JPG 文件时,它不适用于。

它显示错误"没有应用程序与此操作的指定文件关联":(

我这么困惑?

问题不在于您的代码,而在于您的操作系统配置。您的 Windows 安装无法识别*.jpg文件名PrintTo谓词。等效于代码中的操作,您可以使用通用Windows资源管理器的JPEG打印操作进行测试:如果让它工作,那么它也应该在你的代码中工作。尝试在操作系统级别为 PrintTo 谓词注册 JPEG

详细信息:谓词和文件关联 @ MSDN

最新更新