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 2016/07/08 20:25:27 UTC
svn commit: r1751965 -
/pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java
Author: tilman
Date: Fri Jul 8 20:25:27 2016
New Revision: 1751965
URL: http://svn.apache.org/viewvc?rev=1751965&view=rev
Log:
PDFBOX-3414: Add orientation parameter and improve usage dialog (secret option -printerName wasn't mentioned)
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=1751965&r1=1751964&r2=1751965&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 Fri Jul 8 20:25:27 2016
@@ -20,9 +20,12 @@ import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.io.File;
import java.io.IOException;
-
+import java.util.HashMap;
+import java.util.Map;
import javax.print.PrintService;
+
import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.printing.Orientation;
import org.apache.pdfbox.printing.PDFPageable;
/**
@@ -35,6 +38,7 @@ public final class PrintPDF
private static final String PASSWORD = "-password";
private static final String SILENT = "-silentPrint";
private static final String PRINTER_NAME = "-printerName";
+ private static final String ORIENTATION = "-orientation";
/**
* private constructor.
@@ -60,6 +64,11 @@ public final class PrintPDF
String pdfFile = null;
boolean silentPrint = false;
String printerName = null;
+ Orientation orientation = Orientation.AUTO;
+ Map <String,Orientation> orientationMap = new HashMap<String,Orientation>();
+ orientationMap.put("auto", Orientation.AUTO);
+ orientationMap.put("landscape", Orientation.LANDSCAPE);
+ orientationMap.put("portrait", Orientation.PORTRAIT);
for (int i = 0; i < args.length; i++)
{
if (args[i].equals(PASSWORD))
@@ -84,6 +93,19 @@ public final class PrintPDF
{
silentPrint = true;
}
+ else if (args[i].equals(ORIENTATION))
+ {
+ i++;
+ if (i >= args.length)
+ {
+ usage();
+ }
+ orientation = orientationMap.get(args[i]);
+ if (orientation == null)
+ {
+ usage();
+ }
+ }
else
{
pdfFile = args[i];
@@ -116,7 +138,7 @@ public final class PrintPDF
}
}
}
- printJob.setPageable(new PDFPageable(document));
+ printJob.setPageable(new PDFPageable(document, orientation));
if (silentPrint || printJob.printDialog())
{
@@ -139,8 +161,10 @@ public final class PrintPDF
{
String message = "Usage: java -jar pdfbox-app-x.y.z.jar PrintPDF [options] <inputfile>\n"
+ "\nOptions:\n"
- + " -password <password> : Password to decrypt document\n"
- + " -silentPrint : Print without prompting for printer info\n";
+ + " -password <password> : Password to decrypt document\n"
+ + " -printerName <name> : Print to specific printer\n"
+ + " -orientation auto|portrait|landscape : Print using orientation (default: auto)\n"
+ + " -silentPrint : Print without printer dialog box\n";
System.err.println(message);
System.exit(1);