天天看点

vb.net 打印html文件,VB.NET打开并打印一个excel文件

我正在开发一个简单的VB.NET桌面应用程序,用于一点印刷业务。它有一个主要的WinForm,用于打开JPG/PDF/Word/Excel文件的按钮,打开相关程序,打印文件,捕获卷轴作业,并最终根据打印机名称,打印页数,页面大小和每页成本。没什么大不了。主机有Win7操作系统。VB.NET打开并打印一个excel文件

当用户想要打印XLS文件时,我希望应用程序打开Excel 2010,打开之前通过文件对话框选择的文件。当Excel打开时,直接进入打印对话框,然后当作业完成加载后台时,我捕获该事件并杀死Excel进程。

我的问题是:

我不能直接打开Excel打印对话框。 Excel会响应“打印”动词。但它只是使用默认打印机进行打印。我希望它打开并转到打印对话框。我不想只是默认打印机打印的,确实需要让用户选择所需的打印机,页数,份数等

我想用下面的代码来做到这一点:

Dim openFileDialog1 As New OpenFileDialog()

Dim filePath As String = ""

Dim startInfo As ProcessStartInfo

'openFileDialog1.InitialDirectory = "c:\"

openFileDialog1.Filter = "XLS Files (*.xls)|*.xls|XLSX Files (*.xlsx)|*.xlsx|All files (*.*)|*.*"

openFileDialog1.FilterIndex = 1

openFileDialog1.RestoreDirectory = True

If (DialogResult.OK) = openFileDialog1.ShowDialog(Me) Then

filePath = openFileDialog1.FileName

Else

Exit Sub

End If

startInfo = New ProcessStartinfo(rutaArchivo)

With startInfo

.FileName = filePath

.WindowStyle = ProcessWindowStyle.Normal

.Verb = "print"

.CreateNoWindow = False

.UseShellExecute = True

End With

Try

System.Diagnostics.Process.Start(startInfo)

Catch ex As Exception

MsgBox(ex.ToString)

End Try

IDE是SharpDevelop 4.3。 框架是.NET 4.0客户端配置文件。 操作系统是Win7。

非常感谢:)