【问题标题】:Print a XPS file from a byte stream从字节流打印 XPS 文件
【发布时间】:2013-04-12 04:00:28
【问题描述】:

我想用 C# 打印一个 XPS 文件。我将 XPS 文件作为字节流获取。我尝试使用PrintQueue 类中提供的不同AddJob 方法来实现这一点,但遇到了以下问题

  • AddJob(String)

这接受一个字节流并进行打印。但是这种方法会长时间保持文件假脱机,所以不能使用它。

  • AddJob(String, PrintTicket)

这需要 XPS 文件的物理文件位置。因为我的文件是字节流不能用这个

  • AddJob(String, String, Boolean)

此方法还需要物理文件位置

  • AddJob(String, String, Boolean, PrintTicket)

需要物理文件位置

因此如何从字节流中打印 XPS 文件。我不想为此使用任何 3rd 方库

【问题讨论】:

    标签: c# .net xps printqueue


    【解决方案1】:

    您是否尝试过以下重载:

    AddJob() - 将内容为字节数组的新(通用名称)打印作业插入队列。

    从 MSDN 获得的一些示例代码如下

    // Create the printer server and print queue objects
    LocalPrintServer localPrintServer = new LocalPrintServer();
    PrintQueue defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue();
    
    // Call AddJob
    PrintSystemJobInfo myPrintJob = defaultPrintQueue.AddJob();
    
    // Write a Byte buffer to the JobStream and close the stream
    Stream myStream = myPrintJob.JobStream;
    Byte[] myByteBuffer = UnicodeEncoding.Unicode.GetBytes("This is a test string for the print job stream.");
    myStream.Write(myByteBuffer, 0, myByteBuffer.Length);
    myStream.Close();
    

    【讨论】:

      猜你喜欢
      • 2012-11-01
      • 2010-09-18
      • 2010-10-04
      • 1970-01-01
      • 2019-05-09
      • 2015-08-11
      • 1970-01-01
      • 2011-05-09
      相关资源
      最近更新 更多