【发布时间】:2016-05-03 06:40:29
【问题描述】:
我正在尝试通过 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 文件流)并动态更改页面源。
【问题讨论】:
-
myPrintJob.JobStream = stm;而不是从Stream myStream到myStream.Close();的 3 行,这是我可以快速发现的至少 1 个错误 -
@SynerCoder 是的,这些行可能是错误的,但我尝试了很多并且更改代码的时间太多了......所以......你可以理解......我从源代码获得的代码可能是错误的/更改.
标签: c# asp.net printing system.printing pdftron