Trabalhando com impressão de PDF - Fachadas 
Imprimindo arquivo PDF na impressora padrão usando configurações de impressora e página 
Primeiro, o documento é convertido em imagem e, em seguida, impresso na impressora. Crie uma instância da classe PdfViewer , que permite imprimir um arquivo PDF na impressora padrão, use o método BindPdf  para abrir o documento nele e altere as configurações necessárias. Este exemplo usa o formato A4, orientação retrato. Nas PrinterSettings , antes de tudo, o nome da impressora para a qual a impressão vai deve ser definido. Caso contrário, será impresso na impressora padrão. Em seguida, coloque o número necessário de cópias.
  
       
      .NET Core 3.1 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  PrintingPDFFile () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Create PdfViewer object 
     using  ( var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer ()) 
     { 
         // Bind PDF document 
         viewer . BindPdf ( dataDir  +  "PrintDocument.pdf" ); 
 
         // Set attributes for printing 
         // Print the file with adjusted size 
         viewer . AutoResize  =  true ; 
         // Print the file with adjusted rotation 
         viewer . AutoRotate  =  true ; 
         // Do not produce the page number dialog when printing 
         viewer . PrintPageDialog  =  false ; 
 
         // Create objects for printer and page settings and PrintDocument 
         var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
         var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
         var  prtdoc  =  new  System . Drawing . Printing . PrintDocument (); 
 
         // Set printer name 
         ps . PrinterName  =  prtdoc . PrinterSettings . PrinterName ; 
 
         // Set PageSize (if required) 
         pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
 
         // Set PageMargins (if required) 
         pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
 
         // Print document using printer and page settings 
         viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
     } 
 } 
 
       
      .NET 8 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  PrintingPDFFile () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Create PdfViewer object 
     using  var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer (); 
 
     // Bind PDF document 
     viewer . BindPdf ( dataDir  +  "PrintDocument.pdf" ); 
 
     // Set attributes for printing 
     // Print the file with adjusted size 
     viewer . AutoResize  =  true ; 
     // Print the file with adjusted rotation 
     viewer . AutoRotate  =  true ; 
     // Do not produce the page number dialog when printing 
     viewer . PrintPageDialog  =  false ; 
 
     // Create objects for printer and page settings and PrintDocument 
     var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
     var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
     var  prtdoc  =  new  System . Drawing . Printing . PrintDocument (); 
 
     // Set printer name 
     ps . PrinterName  =  prtdoc . PrinterSettings . PrinterName ; 
 
     // Set PageSize (if required) 
     pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
 
     // Set PageMargins (if required) 
     pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
 
     // Print document using printer and page settings 
     viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
 } 
 
 
Para exibir um diálogo de impressão, use o seguinte trecho de código.
  
 
Imprimir PDF em impressora virtual 
Existem impressoras que imprimem em um arquivo. Para usá-las, defina o nome da impressora virtual e, de forma análoga ao exemplo anterior, faça as configurações.
  
       
      .NET Core 3.1 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  PrintingPDFToSoftPrinter () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Create PdfViewer object 
     using  ( var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer ()) 
     { 
         // Bind PDF document 
         viewer . BindPdf ( dataDir  +  "PrintDocument.pdf" ); 
 
         // Set attributes for printing 
         // Print the file with adjusted size 
         viewer . AutoResize  =  true ; 
         // Print the file with adjusted rotation 
         viewer . AutoRotate  =  true ; 
         // Do not produce the page number dialog when printing 
         viewer . PrintPageDialog  =  false ; 
         // Do not convert document pages to images 
         viewer . PrintAsImage  =  false ; 
 
         // Create objects for printer and page settings and PrintDocument 
         var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
         var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
 
         // Set printer name 
         ps . PrinterName  =  "HP Universal Printing PS (v7.0.0)" ; 
         // Or set the PDF printer 
         // ps.PrinterName = "Adobe PDF"; 
 
         // Set PageSize (if required) 
         pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
 
         // Set PageMargins (if required) 
         pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
 
         // Print document using printer and page settings 
         viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
     } 
 } 
 
       
      .NET 8 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  PrintingPDFToSoftPrinter () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Create PdfViewer object 
     using  var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer (); 
 
     // Bind PDF document 
     viewer . BindPdf ( dataDir  +  "PrintDocument.pdf" ); 
 
     // Set attributes for printing 
     // Print the file with adjusted size 
     viewer . AutoResize  =  true ; 
     // Print the file with adjusted rotation 
     viewer . AutoRotate  =  true ; 
     // Do not produce the page number dialog when printing 
     viewer . PrintPageDialog  =  false ; 
     // Do not convert document pages to images 
     viewer . PrintAsImage  =  false ; 
 
     // Create objects for printer and page settings and PrintDocument 
     var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
     var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
 
     // Set printer name 
     ps . PrinterName  =  "HP Universal Printing PS (v7.0.0)" ; 
     // Or set the PDF printer 
     // ps.PrinterName = "Adobe PDF"; 
 
     // Set PageSize (if required) 
     pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
 
     // Set PageMargins (if required) 
     pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
 
     // Print document using printer and page settings 
     viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
 } 
 
 
Ocultando o diálogo de impressão 
Aspose.PDF for .NET suporta a ocultação do diálogo de impressão. Para isso, use a propriedade PrintPageDialog .
O seguinte trecho de código mostra como ocultar o diálogo de impressão.
  
       
      .NET Core 3.1 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  PrintingPDFHidePrintDialog () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Create PdfViewer object 
     using  ( var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer ()) 
     { 
         // Bind PDF document 
         viewer . BindPdf ( dataDir  +  "PrintDocument.pdf" ); 
 
         // Set attributes for printing 
         // Print the file with adjusted size 
         viewer . AutoResize  =  true ; 
         // Print the file with adjusted rotation 
         viewer . AutoRotate  =  true ; 
         // Do not produce the page number dialog when printing 
         viewer . PrintPageDialog  =  false ; 
 
         // Create objects for printer and page settings 
         var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
         var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
 
         // Set XPS/PDF printer name 
         ps . PrinterName  =  "OneNote for Windows 10" ; 
 
         // Set PageSize (if required) 
         pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
 
         // Set PageMargins (if required) 
         pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
 
         // Print document using printer and page settings 
         viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
     } 
 } 
 
       
      .NET 8 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  PrintingPDFHidePrintDialog () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Create PdfViewer object 
     using  var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer (); 
 
     // Bind PDF document 
     viewer . BindPdf ( dataDir  +  "PrintDocument.pdf" ); 
 
     // Set attributes for printing 
     // Print the file with adjusted size 
     viewer . AutoResize  =  true ; 
     // Print the file with adjusted rotation 
     viewer . AutoRotate  =  true ; 
     // Do not produce the page number dialog when printin 
     viewer . PrintPageDialog  =  false ; 
 
     // Create objects for printer and page settings 
     var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
     var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
 
     // Set XPS/PDF printer name 
     ps . PrinterName  =  "OneNote for Windows 10" ; 
 
     // Set PageSize (if required) 
     pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
 
     // Set PageMargins (if required) 
     pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
 
     // Print document using printer and page settings 
     viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
 } 
 
 
Imprimindo PDF colorido em arquivo XPS como escala de cinza 
Um documento PDF colorido pode ser impresso em uma impressora XPS como escala de cinza, usando PdfViewer . Para alcançar isso, defina a propriedade PdfViewer.PrintAsGrayscale  como true . O seguinte trecho de código demonstra o uso da propriedade PdfViewer.PrintAsGrayscale.
  
       
      .NET Core 3.1 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  PrintingPDFAsGrayscale () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Create PdfViewer object 
     using  ( var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer ()) 
     { 
         // Bind PDF document 
         viewer . BindPdf ( dataDir  +  "PrintDocument.pdf" ); 
 
         // Set attributes for printing 
         // Print the file with adjusted size 
         viewer . AutoResize  =  true ; 
         // Print the file with adjusted rotation 
         viewer . AutoRotate  =  true ; 
         // Do not produce the page number dialog when printing 
         viewer . PrintPageDialog  =  false ; 
         // Print the file as grayscale 
         viewer . PrintAsGrayscale  =  false ; 
 
         // Create objects for printer and page settings 
         var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
         var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
 
         // Set XPS/PDF printer name 
         ps . PrinterName  =  "OneNote for Windows 10" ; 
 
         // Set PageSize (if required) 
         pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
 
         // Set PageMargins (if required) 
         pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
 
         // Print document using printer and page settings 
         viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
     } 
 } 
 
       
      .NET 8 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  PrintingPDFAsGrayscale () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Create PdfViewer object 
     using  var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer (); 
 
     // Bind PDF document 
     viewer . BindPdf ( dataDir  +  "PrintDocument.pdf" ); 
 
     // Set attributes for printing 
     // Print the file with adjusted size 
     viewer . AutoResize  =  true ; 
     // Print the file with adjusted rotation 
     viewer . AutoRotate  =  true ; 
     // Do not produce the page number dialog when printing 
     viewer . PrintPageDialog  =  false ; 
     // Print the file as grayscale 
     viewer . PrintAsGrayscale  =  false ; 
 
     // Create objects for printer and page settings 
     var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
     var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
 
     // Set XPS/PDF printer name 
     ps . PrinterName  =  "OneNote for Windows 10" ; 
 
     // Set PageSize (if required) 
     pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
 
     // Set PageMargins (if required) 
     pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
 
     // Print document using printer and page settings 
     viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
 } 
 
 
Conversão de PDF para PostScript 
A classe PdfViewer  fornece a capacidade de imprimir documentos PDF e, com a ajuda dessa classe, também é possível converter arquivos PDF para o formato PostScript. Para converter um arquivo PDF em PostScript, primeiro instale qualquer impressora PS e apenas imprima para o arquivo com a ajuda do PdfViewer.
O seguinte trecho de código mostra como imprimir e converter um PDF para o formato PostScript.
  
       
      .NET Core 3.1 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  PrintingPDFToPostScript () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Create PdfViewer object 
     using  ( var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer ()) 
     { 
         // Bind PDF document 
         viewer . BindPdf ( dataDir  +  "PrintDocument.pdf" ); 
 
         // Set attributes for printing 
         // Print the file with adjusted size 
         viewer . AutoResize  =  true ; 
         // Print the file with adjusted rotation 
         viewer . AutoRotate  =  true ; 
         // Do not produce the page number dialog when printing 
         viewer . PrintPageDialog  =  false ; 
         // Do not convert document pages to images 
         viewer . PrintAsImage  =  false ; 
 
         // Create objects for printer and page settings and PrintDocument 
         var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
         var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
 
         // Set printer name 
         ps . PrinterName  =  "HP Universal Printing PS (v7.0.0)" ; 
         
         // Set output file name and PrintToFile attribute 
         ps . PrintFileName  =  dataDir  +  "PdfToPostScript_out.ps" ; 
         ps . PrintToFile  =  true ; 
 
         // Set PageSize (if required) 
         pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
 
         // Set PageMargins (if required) 
         pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
 
         // Print document using printer and page settings 
         viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
     } 
 } 
 
       
      .NET 8 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  PrintingPDFToSoftPrinter () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Create PdfViewer object 
     using  var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer (); 
 
     // Bind PDF document 
     viewer . BindPdf ( dataDir  +  "PrintDocument.pdf" ); 
 
     // Set attributes for printing 
     // Print the file with adjusted size 
     viewer . AutoResize  =  true ; 
     // Print the file with adjusted rotation 
     viewer . AutoRotate  =  true ; 
     // Do not produce the page number dialog when printing 
     viewer . PrintPageDialog  =  false ; 
     // Do not convert document pages to images 
     viewer . PrintAsImage  =  false ; 
 
     // Create objects for printer and page settings and PrintDocument 
     var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
     var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
 
     // Set printer name 
     ps . PrinterName  =  "HP Universal Printing PS (v7.0.0)" ; 
     
     // Set output file name and PrintToFile attribute 
     ps . PrintFileName  =  dataDir  +  "PdfToPostScript_out.ps" ; 
     ps . PrintToFile  =  true ; 
 
     // Set PageSize (if required) 
     pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
 
     // Set PageMargins (if required) 
     pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
 
     // Print document using printer and page settings 
     viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
 } 
 
 
Verificando o status do trabalho de impressão 
Um arquivo PDF pode ser impresso em uma impressora física, bem como no Microsoft XPS Document Writer, sem mostrar um diálogo de impressão, usando a classe PdfViewer . Ao imprimir arquivos PDF grandes, o processo pode demorar um pouco, então o usuário pode não ter certeza se o processo de impressão foi concluído ou encontrou um problema. Para determinar o status de um trabalho de impressão, use a propriedade PrintStatus . O seguinte trecho de código mostra como imprimir o arquivo PDF em um arquivo XPS e obter o status da impressão.
  
       
      .NET Core 3.1 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  CheckingPrintJobStatus () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Instantiate PdfViewer object 
     using  ( var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer ()) 
     { 
         // Bind PDF document 
         viewer . BindPdf ( dataDir  +  "PrintDocument.pdf" ); 
 
         // Set attributes for printing 
         // Print the file with adjusted size 
         viewer . AutoResize  =  true ; 
         // Print the file with adjusted rotation 
         viewer . AutoRotate  =  true ; 
         // Do not produce the page number dialog when printing 
         viewer . PrintPageDialog  =  false ; 
         // Do not convert document pages to images 
         viewer . PrintAsImage  =  false ; 
 
         // Create Printer Settings object 
         var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
         var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
 
         // Specify the printer name 
         ps . PrinterName  =  "Microsoft XPS Document Writer" ; 
 
         // Set output file name and PrintToFile attribute 
         ps . PrintFileName  =  dataDir  +  "CheckingPrintJobStatus_out.xps" ; 
         ps . PrintToFile  =  true ; 
 
         // Set PageSize (if required) 
         pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
         
         // Set PageMargins (if required) 
         pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
         
         // Print document using printer and page settings 
         viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
 
         // Check the print status 
         if  ( viewer . PrintStatus  !=  null ) 
         { 
             // An exception was thrown 
             if  ( viewer . PrintStatus  is  Exception  ex ) 
             { 
                 // Get exception message 
                 Console . WriteLine ( ex . Message ); 
             } 
         } 
         else 
         { 
             // No errors were found. Printing job has completed successfully 
             Console . WriteLine ( "Printing completed without any issue." ); 
         } 
     } 
 } 
 
       
      .NET 8 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  CheckingPrintJobStatus () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Instantiate PdfViewer object 
     using  var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer (); 
 
     // Bind PDF document 
     viewer . BindPdf ( dataDir  +  "PrintDocument.pdf" ); 
 
     // Set attributes for printing 
     // Print the file with adjusted size 
     viewer . AutoResize  =  true ; 
     // Print the file with adjusted rotation 
     viewer . AutoRotate  =  true ; 
     // Do not produce the page number dialog when printing 
     viewer . PrintPageDialog  =  false ; 
     // Do not convert document pages to images 
     viewer . PrintAsImage  =  false ; 
 
     // Create Printer Settings object 
     var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
     var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
 
     // Specify the printer name 
     ps . PrinterName  =  "Microsoft XPS Document Writer" ; 
 
     // Set output file name and PrintToFile attribute 
     ps . PrintFileName  =  dataDir  +  "CheckingPrintJobStatus_out.xps" ; 
     ps . PrintToFile  =  true ; 
 
     // Set PageSize (if required) 
     pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
 
     // Set PageMargins (if required) 
     pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
 
     // Print document using printer and page settings 
     viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
 
     // Check the print status 
     if  ( viewer . PrintStatus  !=  null ) 
     { 
         // An exception was thrown 
         if  ( viewer . PrintStatus  is  Exception  ex ) 
         { 
             // Get exception message 
             Console . WriteLine ( ex . Message ); 
         } 
     } 
     else 
     { 
         // No errors were found. Printing job has completed successfully 
         Console . WriteLine ( "Printing completed without any issue." ); 
     } 
 } 
 
 
Imprimindo páginas em modo Simplex e Duplex 
Em um trabalho de impressão específico, as páginas do documento PDF podem ser impressas em modo Duplex ou em modo Simplex, mas você não pode imprimir algumas páginas como simplex e outras como duplex dentro de um único trabalho de impressão. No entanto, para cumprir a exigência, diferentes intervalos de páginas e o objeto PrintingJobSettings podem ser usados. O seguinte trecho de código mostra como imprimir algumas páginas de um arquivo PDF em Simplex e algumas páginas em modo Duplex.
  
       
      .NET Core 3.1 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
struct  PrintingJobSettings 
{ 
    public  int  ToPage  {  get ;  set ;  } 
     public  int  FromPage  {  get ;  set ;  } 
     public  string  OutputFile  {  get ;  set ;  } 
     public  Aspose . Pdf . Printing . Duplex  Mode  {  get ;  set ;  } 
 } 
 private  static  void  PrintingPagesInSimplexAndDuplexMode () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     int  printingJobIndex  =  0 ; 
     string  outputDir  =  dataDir ; 
     var  printingJobs  =  new  List < PrintingJobSettings >(); 
 
     // Create multiple printing jobs to print different page ranges with different duplex settings 
     var  printingJob1  =  new  PrintingJobSettings (); 
     printingJob1 . FromPage  =  1 ; 
     printingJob1 . ToPage  =  3 ; 
     printingJob1 . OutputFile  =  outputDir  +  "PrintPageRange_p1-3_out.xps" ; 
     printingJob1 . Mode  =  Aspose . Pdf . Printing . Duplex . Default ; 
 
     printingJobs . Add ( printingJob1 ); 
 
     PrintingJobSettings  printingJob2  =  new  PrintingJobSettings (); 
     printingJob2 . FromPage  =  4 ; 
     printingJob2 . ToPage  =  6 ; 
     printingJob2 . OutputFile  =  outputDir  +  "PrintPageRange_p4-6_out.xps" ; 
     printingJob2 . Mode  =  Aspose . Pdf . Printing . Duplex . Simplex ; 
 
     printingJobs . Add ( printingJob2 ); 
 
     PrintingJobSettings  printingJob3  =  new  PrintingJobSettings (); 
     printingJob3 . FromPage  =  7 ; 
     printingJob3 . ToPage  =  7 ; 
     printingJob3 . OutputFile  =  outputDir  +  "PrintPageRange_p7_out.xps" ; 
     printingJob3 . Mode  =  Aspose . Pdf . Printing . Duplex . Default ; 
 
     printingJobs . Add ( printingJob3 ); 
 
     // Create PdfViewer object 
     using  ( var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer ()) 
     { 
         // Bind PDF document 
         viewer . BindPdf ( dataDir  +  "Print-PageRange.pdf" ); 
 
         // Set attributes for printing 
         // Print the file with adjusted size 
         viewer . AutoResize  =  true ; 
         // Print the file with adjusted rotation 
         viewer . AutoRotate  =  true ; 
         // Do not produce the page number dialog when printing 
         viewer . PrintPageDialog  =  false ; 
 
         // Create objects for printer and page settings 
         var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
         var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
 
         // Set printer name 
         ps . PrinterName  =  "Microsoft XPS Document Writer" ; 
 
         // Set output file name and PrintToFile attribute 
         ps . PrintFileName  =  Path . GetFullPath ( printingJobs [ printingJobIndex ]. OutputFile ); 
         ps . PrintToFile  =  true ; 
 
         // Set parameters for the first print job 
         ps . FromPage  =  printingJobs [ printingJobIndex ]. FromPage ; 
         ps . ToPage  =  printingJobs [ printingJobIndex ]. ToPage ; 
         ps . Duplex  =  printingJobs [ printingJobIndex ]. Mode ; 
         ps . PrintRange  =  Aspose . Pdf . Printing . PrintRange . SomePages ; 
 
         // Set paper size and margins 
         pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
         ps . DefaultPageSettings . PaperSize  =  pgs . PaperSize ; 
         pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
 
         // Chain other print jobs at the end of the finished job 
         viewer . EndPrint  +=  ( sender ,  args )  => 
         { 
             if  (++ printingJobIndex  <  printingJobs . Count ) 
             { 
                 // Set the next print job parameters 
                 ps . PrintFileName  =  Path . GetFullPath ( printingJobs [ printingJobIndex ]. OutputFile ); 
                 ps . FromPage  =  printingJobs [ printingJobIndex ]. FromPage ; 
                 ps . ToPage  =  printingJobs [ printingJobIndex ]. ToPage ; 
                 ps . Duplex  =  printingJobs [ printingJobIndex ]. Mode ; 
 
                 // Run the next print job 
                 viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
             } 
         }; 
 
         // Run the first print job 
         viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
     } 
 } 
 
       
      .NET 8 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
struct  PrintingJobSettings 
{ 
    public  int  ToPage  {  get ;  set ;  } 
     public  int  FromPage  {  get ;  set ;  } 
     public  string  OutputFile  {  get ;  set ;  } 
     public  Aspose . Pdf . Printing . Duplex  Mode  {  get ;  set ;  } 
 } 
 private  static  void  PrintingPagesInSimplexAndDuplexMode () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     int  printingJobIndex  =  0 ; 
     string  outputDir  =  dataDir ; 
     var  printingJobs  =  new  List < PrintingJobSettings >(); 
 
     // Create multiple printing jobs to print different page ranges with different duplex settings 
     var  printingJob1  =  new  PrintingJobSettings (); 
     printingJob1 . FromPage  =  1 ; 
     printingJob1 . ToPage  =  3 ; 
     printingJob1 . OutputFile  =  outputDir  +  "PrintPageRange_p1-3_out.xps" ; 
     printingJob1 . Mode  =  Aspose . Pdf . Printing . Duplex . Default ; 
 
     printingJobs . Add ( printingJob1 ); 
 
     PrintingJobSettings  printingJob2  =  new  PrintingJobSettings (); 
     printingJob2 . FromPage  =  4 ; 
     printingJob2 . ToPage  =  6 ; 
     printingJob2 . OutputFile  =  outputDir  +  "PrintPageRange_p4-6_out.xps" ; 
     printingJob2 . Mode  =  Aspose . Pdf . Printing . Duplex . Simplex ; 
 
     printingJobs . Add ( printingJob2 ); 
 
     PrintingJobSettings  printingJob3  =  new  PrintingJobSettings (); 
     printingJob3 . FromPage  =  7 ; 
     printingJob3 . ToPage  =  7 ; 
     printingJob3 . OutputFile  =  outputDir  +  "PrintPageRange_p7_out.xps" ; 
     printingJob3 . Mode  =  Aspose . Pdf . Printing . Duplex . Default ; 
 
     printingJobs . Add ( printingJob3 ); 
 
     // Create PdfViewer object 
     using  var  viewer  =  new  Aspose . Pdf . Facades . PdfViewer (); 
 
     // Bind PDF document 
     viewer . BindPdf ( dataDir  +  "Print-PageRange.pdf" ); 
 
     // Set attributes for printing 
     // Print the file with adjusted size 
     viewer . AutoResize  =  true ; 
     // Print the file with adjusted rotation 
     viewer . AutoRotate  =  true ; 
     // Do not produce the page number dialog when printing 
     viewer . PrintPageDialog  =  false ; 
 
     // Create objects for printer and page settings 
     var  ps  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
     var  pgs  =  new  Aspose . Pdf . Printing . PageSettings (); 
 
     // Set printer name 
     ps . PrinterName  =  "Microsoft XPS Document Writer" ; 
 
     // Set output file name and PrintToFile attribute 
     ps . PrintFileName  =  Path . GetFullPath ( printingJobs [ printingJobIndex ]. OutputFile ); 
     ps . PrintToFile  =  true ; 
 
     // Set parameters for the first print job 
     ps . FromPage  =  printingJobs [ printingJobIndex ]. FromPage ; 
     ps . ToPage  =  printingJobs [ printingJobIndex ]. ToPage ; 
     ps . Duplex  =  printingJobs [ printingJobIndex ]. Mode ; 
     ps . PrintRange  =  Aspose . Pdf . Printing . PrintRange . SomePages ; 
 
     // Set paper size and margins 
     pgs . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
     ps . DefaultPageSettings . PaperSize  =  pgs . PaperSize ; 
     pgs . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
 
     // Chain other print jobs at the end of the finished job 
     viewer . EndPrint  +=  ( sender ,  args )  => 
     { 
         if  (++ printingJobIndex  <  printingJobs . Count ) 
         { 
             // Set the next print job parameters 
             ps . PrintFileName  =  Path . GetFullPath ( printingJobs [ printingJobIndex ]. OutputFile ); 
             ps . FromPage  =  printingJobs [ printingJobIndex ]. FromPage ; 
             ps . ToPage  =  printingJobs [ printingJobIndex ]. ToPage ; 
             ps . Duplex  =  printingJobs [ printingJobIndex ]. Mode ; 
 
             // Run the next print job 
             viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
         } 
     }; 
 
     // Run the first print job 
     viewer . PrintDocumentWithSettings ( pgs ,  ps ); 
 } 
 
 
Imprimindo múltiplos documentos PDF em um único trabalho de impressão 
Às vezes, é necessário imprimir vários documentos relacionados juntos como um único trabalho de impressão. Isso garante que esses documentos não sejam intercalados com a saída de outros usuários, especialmente com impressoras de rede remotas. Aspose.PDF suporta a impressão de qualquer número de documentos em um único trabalho de impressão com configurações de impressora compartilhadas através dos métodos estáticos PrintDocuments da classe PdfViewer . Os documentos a serem impressos podem ser fornecidos como caminhos de arquivo, fluxos de documentos ou objetos Document .
Ao imprimir vários documentos, a propriedade 
PrinterSettings.PrintRange  é ignorada, e todos os documentos são impressos na íntegra.
 
  
       
      .NET Core 3.1 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  PrintingMultipleDocumentsInSingleJob () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Paths to documents to be printed 
     var  path1  =  dataDir  +  "PrintDocument.pdf" ; 
     var  path2  =  dataDir  +  "Print-PageRange.pdf" ; 
     var  path3  =  dataDir  +  "35925_1_3.xps" ; 
     
     // Set up printer and page settings 
     var  printDocument  =  new  System . Drawing . Printing . PrintDocument (); 
     Aspose . Pdf . Printing . PrinterSettings  printerSettings  =  new  Aspose . Pdf . Printing . PrinterSettings (); 
     printerSettings . PrinterName  =  printDocument . PrinterSettings . PrinterName ; 
     
     Aspose . Pdf . Printing . PageSettings  pageSettings  =  new  Aspose . Pdf . Printing . PageSettings (); 
     pageSettings . PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 ; 
     pageSettings . Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ); 
     
     // Print multiple documents in a single print job 
     Aspose . Pdf . Facades . PdfViewer . PrintDocuments ( printerSettings ,  pageSettings ,  path1 ,  path2 ,  path3 ); 
 } 
 
       
      .NET 8 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  PrintingMultipleDocumentsInSingleJob () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdfFacades_Printing (); 
 
     // Paths to documents to be printed 
     var  path1  =  dataDir  +  "PrintDocument.pdf" ; 
     var  path2  =  dataDir  +  "Print-PageRange.pdf" ; 
     var  path3  =  dataDir  +  "35925_1_3.xps" ; 
     
     // Set up printer and page settings 
     var  printDocument  =  new  System . Drawing . Printing . PrintDocument (); 
     Aspose . Pdf . Printing . PrinterSettings  printerSettings  =  new  Aspose . Pdf . Printing . PrinterSettings 
     { 
         PrinterName  =  printDocument . PrinterSettings . PrinterName 
     }; 
     
     Aspose . Pdf . Printing . PageSettings  pageSettings  =  new  Aspose . Pdf . Printing . PageSettings 
     { 
         PaperSize  =  Aspose . Pdf . Printing . PaperSizes . A4 , 
         Margins  =  new  Aspose . Pdf . Devices . Margins ( 0 ,  0 ,  0 ,  0 ) 
     }; 
     
     // Print multiple documents in a single print job 
     Aspose . Pdf . Facades . PdfViewer . PrintDocuments ( printerSettings ,  pageSettings ,  path1 ,  path2 ,  path3 ); 
 }