Я пытаюсь напечатать XPS поток через System.Printing
именSystem.Printing имен исходный код страницы установите принтер
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
код не работает, и я застрял с этим.
У любого есть хорошая идея или решение для печати (поток файлов Xps, полученный pdftron) с использованием пространства имен system.printing и динамического изменения источника страницы.
'myPrintJob.JobStream = stm;' вместо ваших 3 строк из 'Stream myStream' до' myStream.Close(); 'это atleast 1 ошибка, которую я могу быстро определить – SynerCoder
@SynerCoder да может ошибаться в этой строке, но я много пробовал и менял код слишком много времени ... так что ... вы можете понять ... код может быть неправильным/изменить, что я получил из источника. –