我有一个xps文件。当我尝试直接打印此文件时,我可以使用以下代码完成此操作而不会出现任何错误:
Dim defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue
Dim xpsPrintJob As PrintSystemJobInfo = defaultPrintQueue.AddJob("test", "C:\Temp\test.xps", False)
但是,如果我从Web服务获取此文件作为字节数组并将其保存为xps文件,则无法打印它。
我的保存字节数组代码如下:
FS = New IO.FileStream("C:\Temp\test.xps", FileMode.Create)
FS.Write(arrayByte, 0, arrayByte.Length)
FS.Close()
或此代码:
File.WriteAllBytes("c:\Temp\test.xps", arrayByte)
当我尝试打印test.xps时,我收到错误:
“System.Printing.PrintJobException”类型的未处理异常 发生在System.Printing.dll
中其他信息:创建打印作业时发生异常 信息。检查内部异常以获取详细信息。
我可以处理这个问题吗?有人有任何想法吗?
顺便说一下,不需要Web服务。 请看下面的代码。 您可以尝试这个任何xps文件。 首先,我正在将文件作为字节数组 然后,我将字节数组保存为xps文件。
第一个XPS文件正在运行,但第二个不起作用
Dim FS As FileStream
FS = File.Open("C:\Temp\test2.xps", FileMode.Open, FileAccess.Read)
Dim bByte(FS.Length) As Byte
FS.Read(bByte, 0, FS.Length)
FS.Close()
File.WriteAllBytes("c:\Temp\test2byte.xps", bByte)
Dim defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue
'This is working
Dim xpsPrintJob1 As PrintSystemJobInfo = defaultPrintQueue.AddJob("Test", "C:\Temp\test2.xps", False)
'This is not working
Dim xpsPrintJob2 As PrintSystemJobInfo = defaultPrintQueue.AddJob("Test", "C:\Temp\test2byte.xps", False)
答案 0 :(得分:0)
我已经解决了这个问题。
我已更改以下代码:
Dim FS As FileStream
FS = File.Open("C:\Temp\test2.xps", FileMode.Open, FileAccess.Read)
Dim bByte(FS.Length) As Byte
FS.Read(bByte, 0, FS.Length)
FS.Close()
作为
Dim bByte() As Byte = File.ReadAllBytes("C:\Temp\test2.xps")
问题已经解决了。