我正在尝试通过System.Printing命名空间打印XPS流
Stream stm = pdftron.PDF.Convert.ToXps(pdfdoc);
LocalPrintServer localPrintServer = new LocalPrintServer();
PrintQueueCollection pqc = localPrintServer.GetPrintQueues();
PrintQueue defaultPrintQueue = localPrintServer.GetPrintQueue(_PrinterName);
MemoryStream ms = defaultPrintQueue.GetPrintCapabilitiesAsXml();
// Call AddJob
System.Printing.PrintTicket printTicket = defaultPrintQueue.DefaultPrintTicket;
PrintSystemJobInfo myPrintJob = defaultPrintQueue.AddJob();
Stream myStream = myPrintJob.JobStream;//may be this line is wrong, can you suggest alternative?
myStream = stm;//may be this line is wrong, can you suggest alternative?
myStream.Close();//may be this line is wrong, can you suggest alternative?
var inp= defaultPrintQueue.GetPrintCapabilities().InputBinCapability;
System.Printing.PrintTicket newprintTicket = XpsPrinterUtils.ModifyPrintTicket(printTicket, "psk:JobInputBin", "NS0000:" + _PaperSource);
System.Printing.ValidationResult vr = defaultPrintQueue.MergeAndValidatePrintTicket(printTicket, newprintTicket);// this line giving exception while changing page source merge and validate
myPrintJob.Commit();XpsPrinterUtils.ModifyPrintTicket from github
代码不工作,我被困在这一点上。
任何人对此都有很好的想法或解决方案:使用system.printing名称空间打印(由pdftron获得的Xps文件流)并动态更改页面源代码。
发布于 2016-05-05 03:05:32
我没有测试,但这似乎更接近正确的解决方案。
Stream stream_source = pdftron.PDF.Convert.ToXps(pdfdoc);
Stream stream_sink = myPrintJob.JobStream;
stream_source.CopyTo(stream_sink);您可能希望通过将stream_sink创建为指向磁盘上文件的流,并验证stream_source.CopyTo(stream_sink)是否按预期工作来测试以上内容。如果是这样,那么任何剩余的问题都将与使用System.Printing应用程序接口有关,而不是与PDFNet有关。
https://stackoverflow.com/questions/36997362
复制相似问题