我是否有办法使用VB 2010更改默认打印机的打印机方向,就像您通常从打印机和设备更改打印机首选项并输入打印机首选项一样?
Try
Dim MyProcess As New Process
MyProcess.StartInfo.CreateNoWindow = False
MyProcess.StartInfo.Verb = "print"
MyProcess.StartInfo.FileName = "outputvb.pdf"
MyProcess.Start()
MyProcess.WaitForExit(2000)
Try
MyProcess.CloseMainWindow()
MyProcess.Close()
Catch ex As Exception
End Try
Catch ex As Exception
MessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
更新 查看旧帖子,您是否可以向我建议更好的解决方案,然后将reportviewer导出为PDF然后从Visual Basic打印PDF?
基本上我真正要做的就是在报表查看器中加载数据并在加载后自动打印,而无需按任何按钮进入默认打印机。
由于
答案 0 :(得分:0)
有几种方法可以做到这一点。页面设置或打印机。
使用Msdn
中的示例 Dim Printer As New Printer
Printer.Orientation = vbPRORLandscape
或者您可以使用页面设置。同样,来自MSDN
Dim pd As New PrintDocument()
pd.PrinterSettings.PrinterName = printer
' Set the page orientation to landscape.
pd.DefaultPageSettings.Landscape = True
pd.Print()
<强>更新强>
所以我看到你正在使用一个进程来打印而不是打印机或打印文档(有些人特别不喜欢adobe reader,here's论坛为什么)。如果我是你,我不会这样做(为什么不使用已经很好的支持printerdoc api?),但那是你的问题,我会尽力回答。
答案是取决于。你有很多不同的流程可以用来打印PDF,最喜欢使用adobe reader,就像我说有些人不喜欢它。您必须找出法律/格局的特定流程的字符串/命令。
虽然如果你想要adobe,这里有一些你的答案信息:link
答案 1 :(得分:0)
我建议你使用 gsView
附后记。我尝试使用adobe reader,但它在服务器上不合法,而且在大量打印时不可靠。您可以在命令参数中更改方向。
答案 2 :(得分:0)
我最终得到的是将我的报告转换为TIF文件并从Windows API打印TIF文件(在普通PC上快20倍)。
感谢大家的建议,即使没有使用也没有。