You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ms...@apache.org on 2020/12/22 11:33:56 UTC
svn commit: r1884695 - in
/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools: PDFMerger.java
TextToPDF.java
Author: msahyoun
Date: Tue Dec 22 11:33:56 2020
New Revision: 1884695
URL: http://svn.apache.org/viewvc?rev=1884695&view=rev
Log:
PDFBOX-2602: provide list of possible fonts in help text
Modified:
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFMerger.java
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/TextToPDF.java
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFMerger.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFMerger.java?rev=1884695&r1=1884694&r2=1884695&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFMerger.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFMerger.java Tue Dec 22 11:33:56 2020
@@ -41,10 +41,10 @@ public final class PDFMerger implements
@SuppressWarnings("squid:S106")
private static final PrintStream SYSERR = System.err;
- @Parameters(paramLabel = "inputfile", arity = "2..*", description = "the PDF files to merge.")
+ @Parameters(paramLabel = "inputfile", index="0", arity = "2..*", description = "the PDF files to merge.")
private File[] infiles;
- @Parameters(paramLabel = "outputfile", index="1", description = "the merged PDF file.")
+ @Parameters(paramLabel = "outputfile", index="1", arity="1", description = "the merged PDF file.")
private File outfile;
/**
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/TextToPDF.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/TextToPDF.java?rev=1884695&r1=1884694&r2=1884695&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/TextToPDF.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/TextToPDF.java Tue Dec 22 11:33:56 2020
@@ -22,8 +22,6 @@ import java.io.FileReader;
import java.io.IOException;
import java.io.PrintStream;
import java.io.Reader;
-import java.util.HashMap;
-import java.util.Map;
import java.util.concurrent.Callable;
import org.apache.pdfbox.pdmodel.PDDocument;
@@ -52,11 +50,6 @@ public class TextToPDF implements Callab
* The scaling factor for font units to PDF units
*/
private static final int FONTSCALE = 1000;
-
- /**
- * The default font
- */
- private static final PDType1Font DEFAULT_FONT = PDType1Font.HELVETICA;
/**
* The default font size
@@ -69,7 +62,7 @@ public class TextToPDF implements Callab
private static final float LINE_HEIGHT_FACTOR = 1.05f;
private PDRectangle mediaBox = PDRectangle.LETTER;
- private PDFont font = DEFAULT_FONT;
+ private PDFont font = Standard14Fonts.HELVETICA.getFont();
// Expected for CLI app to write to System.out/Sytem.err
@SuppressWarnings("squid:S106")
@@ -84,8 +77,9 @@ public class TextToPDF implements Callab
@Option(names = "-pageSize", description = "the page size to use: Letter, Legal, A0, A1, A2, A3, A4, A5, A6 (default: ${DEFAULT-VALUE})")
private String pageSize = "Letter";
- @Option(names = "-standardFont", description = "the font to use for the text. Either this or -ttf should be specified but not both.")
- private String standardFont;
+ @Option(names = "-standardFont",
+ description = "the font to use for the text. Either this or -ttf should be specified but not both.\nCandidates: ${COMPLETION-CANDIDATES} (default: ${DEFAULT-VALUE})")
+ private Standard14Fonts standardFont = Standard14Fonts.HELVETICA;
@Option(names = "-ttf", paramLabel="<ttf file>", description = "the TTF font to use for the text. Either this or -standardFont should be specified but not both.")
private File ttf;
@@ -99,26 +93,44 @@ public class TextToPDF implements Callab
@Option(names = {"-h", "--help"}, usageHelp = true, description = "display this help message")
boolean usageHelpRequested;
- private static final Map<String, PDType1Font> STANDARD_14 = new HashMap<>();
- static
+ private enum Standard14Fonts
{
- STANDARD_14.put(PDType1Font.TIMES_ROMAN.getBaseFont(), PDType1Font.TIMES_ROMAN);
- STANDARD_14.put(PDType1Font.TIMES_BOLD.getBaseFont(), PDType1Font.TIMES_BOLD);
- STANDARD_14.put(PDType1Font.TIMES_ITALIC.getBaseFont(), PDType1Font.TIMES_ITALIC);
- STANDARD_14.put(PDType1Font.TIMES_BOLD_ITALIC.getBaseFont(), PDType1Font.TIMES_BOLD_ITALIC);
- STANDARD_14.put(PDType1Font.HELVETICA.getBaseFont(), PDType1Font.HELVETICA);
- STANDARD_14.put(PDType1Font.HELVETICA_BOLD.getBaseFont(), PDType1Font.HELVETICA_BOLD);
- STANDARD_14.put(PDType1Font.HELVETICA_OBLIQUE.getBaseFont(), PDType1Font.HELVETICA_OBLIQUE);
- STANDARD_14.put(PDType1Font.HELVETICA_BOLD_OBLIQUE.getBaseFont(), PDType1Font.HELVETICA_BOLD_OBLIQUE);
- STANDARD_14.put(PDType1Font.COURIER.getBaseFont(), PDType1Font.COURIER);
- STANDARD_14.put(PDType1Font.COURIER_BOLD.getBaseFont(), PDType1Font.COURIER_BOLD);
- STANDARD_14.put(PDType1Font.COURIER_OBLIQUE.getBaseFont(), PDType1Font.COURIER_OBLIQUE);
- STANDARD_14.put(PDType1Font.COURIER_BOLD_OBLIQUE.getBaseFont(), PDType1Font.COURIER_BOLD_OBLIQUE);
- STANDARD_14.put(PDType1Font.SYMBOL.getBaseFont(), PDType1Font.SYMBOL);
- STANDARD_14.put(PDType1Font.ZAPF_DINGBATS.getBaseFont(), PDType1Font.ZAPF_DINGBATS);
+ TIMES_ROMAN(PDType1Font.TIMES_ROMAN.getBaseFont(), PDType1Font.TIMES_ROMAN),
+ TIMES_BOLD(PDType1Font.TIMES_BOLD.getBaseFont(), PDType1Font.TIMES_BOLD),
+ TIMES_ITALIC(PDType1Font.TIMES_ITALIC.getBaseFont(), PDType1Font.TIMES_ITALIC),
+ TIMES_BOLD_ITALIC(PDType1Font.TIMES_BOLD_ITALIC.getBaseFont(), PDType1Font.TIMES_BOLD_ITALIC),
+ HELVETICA(PDType1Font.HELVETICA.getBaseFont(), PDType1Font.HELVETICA),
+ HELVETICA_BOLD(PDType1Font.HELVETICA_BOLD.getBaseFont(), PDType1Font.HELVETICA_BOLD),
+ HELVETICA_OBLIQUE(PDType1Font.HELVETICA_OBLIQUE.getBaseFont(), PDType1Font.HELVETICA_OBLIQUE),
+ HELVETICA_BOLD_OBLIQUE(PDType1Font.HELVETICA_BOLD_OBLIQUE.getBaseFont(), PDType1Font.HELVETICA_BOLD_OBLIQUE),
+ COURIER(PDType1Font.COURIER.getBaseFont(), PDType1Font.COURIER),
+ COURIER_BOLD(PDType1Font.COURIER_BOLD.getBaseFont(), PDType1Font.COURIER_BOLD),
+ COURIER_OBLIQUE(PDType1Font.COURIER_OBLIQUE.getBaseFont(), PDType1Font.COURIER_OBLIQUE),
+ COURIER_BOLD_OBLIQUE(PDType1Font.COURIER_BOLD_OBLIQUE.getBaseFont(), PDType1Font.COURIER_BOLD_OBLIQUE),
+ SYMBOL(PDType1Font.SYMBOL.getBaseFont(), PDType1Font.SYMBOL),
+ ZAPF_DINGBATS(PDType1Font.ZAPF_DINGBATS.getBaseFont(), PDType1Font.ZAPF_DINGBATS);
+
+ final String displayName;
+ final PDFont font;
+
+ private Standard14Fonts(String displayName, PDFont font)
+ {
+ this.displayName = displayName;
+ this.font = font;
+ }
+
+ public PDFont getFont()
+ {
+ return font;
+ }
+
+
+ @Override
+ public String toString() {
+ return this.displayName;
+ }
}
-
/**
* This will create a PDF document with some text in it.
* <br>
@@ -143,9 +155,9 @@ public class TextToPDF implements Callab
{
font = PDType0Font.load(doc, ttf);
}
- else if (standardFont != null && getStandardFont(standardFont) != null)
+ else
{
- font = getStandardFont(standardFont);
+ font = standardFont.getFont();
}
setFont(font);
@@ -394,18 +406,6 @@ public class TextToPDF implements Callab
}
/**
- * A convenience method to get one of the standard 14 font from name.
- *
- * @param name The name of the font to get.
- *
- * @return The font that matches the name or null if it does not exist.
- */
- private static PDType1Font getStandardFont(String name)
- {
- return STANDARD_14.get(name);
- }
-
- /**
* @return Returns the font.
*/
public PDFont getFont()