You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2019/02/06 16:13:08 UTC
svn commit: r1853086 -
/pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java
Author: tilman
Date: Wed Feb 6 16:13:08 2019
New Revision: 1853086
URL: http://svn.apache.org/viewvc?rev=1853086&view=rev
Log:
PDFBOX-4456: select exact printer name; warn when not found; tell printer names in usage message
Modified:
pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java
Modified: pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java?rev=1853086&r1=1853085&r2=1853086&view=diff
==============================================================================
--- pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java (original)
+++ pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java Wed Feb 6 16:13:08 2019
@@ -158,16 +158,21 @@ public final class PrintPDF
if (printerName != null)
{
- PrintService[] printService = PrinterJob.lookupPrintServices();
+ PrintService[] printServices = PrinterJob.lookupPrintServices();
boolean printerFound = false;
- for (int i = 0; !printerFound && i < printService.length; i++)
+ for (int i = 0; !printerFound && i < printServices.length; i++)
{
- if (printService[i].getName().contains(printerName))
+ if (printServices[i].getName().equals(printerName))
{
- printJob.setPrintService(printService[i]);
+ printJob.setPrintService(printServices[i]);
printerFound = true;
}
}
+ if (!printerFound)
+ {
+ System.err.println("printer '" + printerName + "' not found, using default");
+ showAvailablePrinters();
+ }
}
PDFPageable pageable = new PDFPageable(document, orientation, showPageBorder, dpi);
pageable.setRenderingHints(renderingHints);
@@ -209,8 +214,18 @@ public final class PrintPDF
+ " -noColorOpt : Disable color optimizations\n"
+ " (useful when printing barcodes)\n"
+ " -silentPrint : Print without printer dialog box\n";
-
System.err.println(message);
+ showAvailablePrinters();
System.exit(1);
}
+
+ private static void showAvailablePrinters()
+ {
+ System.err.println("Available printer names:");
+ PrintService[] printServices = PrinterJob.lookupPrintServices();
+ for (PrintService printService : printServices)
+ {
+ System.err.println(" " + printService.getName());
+ }
+ }
}