1

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();

github の XpsPrinterUtils.ModifyPrintTicket

コードが機能せず、これで立ち往生しています。

system.printing名前空間を使用してページソースを動的に変更して印刷する(pdftronによって取得されたXpsファイルストリーム)ための良いアイデアや解決策は誰にでもあります。

4

1 に答える 1