Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 10 Nächste Version anzeigen »

(_____UNDER CONSTRUCTION____)

 

Der jadice Druckdialog 

jadice stellt einen eigenem Druckdialog zur Verfügung. Dieser Druckdialog bietet Anwendern viele Vorteile:

  • Druckvorschau
  • Druckerauswahl
  • Verschiedene Druckeinstellungen, wie z.B. Anzahl Kopien, Seitenformat uvm.
  • Eine Auswahl, welche Seitenelemente gedruckt werden sollen, z.B. Dokument, Annotations oder beides

Im folgenden ist eine Ansicht des jadice Druckdialogs.

Der jadice Druckdialog

Die technische Basis des jadice Druckdialogs beruht auf der Java Print Service API. Die Java Print Service API ist der Java Virtual Machine und bietet betriebssystemübergreifende High-Level API um PrintServices zu ermitteln, Druckjobs mit allgemeinen Einstellungen zu konfigurieren und anzustarten. Allgemeine Einstellungen sind Einstellungen, die weder spezifisch für das ausführende Betriebssystem noch für installierte Druckertreiber spezifisch sind. 

 

Spezifische Druckertreiber Einstellungsdialoge

 

Manche Einstellungen sind spezifisch für bestimmte Druckertreiber. Diese Einstellungen können nur in dem Druckertreiber eigenen Einstellungsdialog.

 

 

Der native Betriebssystem Druckdialog

 

 

 

Nativer Druckdialog Command
/**
 * Druck Demo Command mit Nutzung des nativen Betriebssystem Druckdialogs. <p>
 * Es öffnet den nativen Druckdialog und löst bei Bestätigung einen Druckprozess aus. 
 */
public class PrintWithNativePrintDialog extends DirectPrintDocumentCommand {
  private static final Logger log = LoggerFactory.getLogger(PrintDocumentCommand.class);
  @Override
  protected void execute() {
    final PrintJobConfiguration pjc = PrintJobConfiguration.create();
    final EventList<Page> docPageList = getPageView().getDocument().getPages();
    try {
      addPagesToPrint(pjc, docPageList);
      prepare(pjc);
      pjc.setShowPrintDialog(false);
      Printer printer = new Printer(pjc);
      PrinterJob printerJob = printer.getPrinterJob();
      printerJob.setJobName(pjc.getPrintTitle());
      printerJob.setPageable(new Pageable() {
        public PageFormat getPageFormat(int pageIndex) throws IndexOutOfBoundsException {
           return pjc.getPageFormat();
        }
        public int getNumberOfPages() {
          return pjc.getNumbersOfPages();
        }
        public Printable getPrintable(int pageIndex) throws IndexOutOfBoundsException {
          return null;
        }
      });
            
      PrintRequestAttributeSet requestAttributeSet = printer.getPrintRequestAttributeSet();
      if (requestAttributeSet == null) {
        requestAttributeSet = new HashPrintRequestAttributeSet();
        printer.setPrintRequestAttributeSet(requestAttributeSet);
      }
      // Nativen Druckdialog anfordern
      try {
        // JRE 1.7+
        requestAttributeSet.add(javax.print.attribute.standard.DialogTypeSelection.NATIVE);
      
        // JRE 1.6
//        requestAttributeSet.add(sun.print.DialogTypeSelection.NATIVE);
      } catch (final Exception e) {
        log.error("\"DialogTypeSelection.NATIVE\" konnte nicht ausgewählt werden.); ");
      }
      if (printerJob.printDialog(requestAttributeSet)) {
        log.info("Executing print job");
        PrintManager.executePrintJob(printer);
      }
    } catch (final JadiceException e) {
      log.fatal("Could not print", e);
    }
  }
}

  • Keine Stichwörter