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 2017/05/02 02:07:30 UTC

svn commit: r1793430 - in /pdfbox/trunk/tools/src: main/java/org/apache/pdfbox/tools/ main/java/org/apache/pdfbox/tools/imageio/ test/java/org/apache/pdfbox/tools/ test/java/org/apache/pdfbox/tools/imageio/

Author: tilman
Date: Tue May  2 02:07:29 2017
New Revision: 1793430

URL: http://svn.apache.org/viewvc?rev=1793430&view=rev
Log:
PDFBOX-2852: use JDK7 syntax

Modified:
    pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/Encrypt.java
    pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/ExtractImages.java
    pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/OverlayPDF.java
    pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFSplit.java
    pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFToImage.java
    pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java
    pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/TextToPDF.java
    pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/WriteDecodedDoc.java
    pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/imageio/ImageIOUtil.java
    pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/TestPDFText2HTML.java
    pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/TestTextToPdf.java
    pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/imageio/TestImageIOUtils.java

Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/Encrypt.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/Encrypt.java?rev=1793430&r1=1793429&r2=1793430&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/Encrypt.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/Encrypt.java Tue May  2 02:07:29 2017
@@ -174,20 +174,11 @@ public final class Encrypt
 
                         CertificateFactory cf = CertificateFactory.getInstance("X.509");
                         
-                        InputStream inStream = null;
-                        try
+                        try (InputStream inStream = new FileInputStream(certFile))
                         {
-                            inStream = new FileInputStream(certFile);
-                            X509Certificate certificate = (X509Certificate)cf.generateCertificate(inStream);
+                            X509Certificate certificate = (X509Certificate) cf.generateCertificate(inStream);
                             recip.setX509(certificate);
-                        }
-                        finally
-                        {
-                            if (inStream != null)
-                            {
-                                inStream.close();
-                            }
-                        }                        
+                        }                 
 
                         ppp.addRecipient(recip);
 

Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/ExtractImages.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/ExtractImages.java?rev=1793430&r1=1793429&r2=1793430&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/ExtractImages.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/ExtractImages.java Tue May  2 02:07:29 2017
@@ -95,34 +95,33 @@ public final class ExtractImages
             String password = "";
             for(int i = 0; i < args.length; i++)
             {
-                if (args[i].equals(PASSWORD))
+                switch (args[i])
                 {
-                    i++;
-                    if (i >= args.length)
-                    {
-                        usage();
-                    }
-                    password = args[i];
-                }
-                else if (args[i].equals(PREFIX))
-                {
-                    i++;
-                    if (i >= args.length)
-                    {
-                        usage();
-                    }
-                    prefix = args[i];
-                }
-                else if (args[i].equals(DIRECTJPEG))
-                {
-                    directJPEG = true;
-                }
-                else
-                {
-                    if (pdfFile == null)
-                    {
-                        pdfFile = args[i];
-                    }
+                    case PASSWORD:
+                        i++;
+                        if (i >= args.length)
+                        {
+                            usage();
+                        }
+                        password = args[i];
+                        break;
+                    case PREFIX:
+                        i++;
+                        if (i >= args.length)
+                        {
+                            usage();
+                        }
+                        prefix = args[i];
+                        break;
+                    case DIRECTJPEG:
+                        directJPEG = true;
+                        break;
+                    default:
+                        if (pdfFile == null)
+                        {
+                            pdfFile = args[i];
+                        }
+                        break;
                 }
             }
             if (pdfFile == null)
@@ -160,12 +159,10 @@ public final class ExtractImages
 
     private void extract(String pdfFile, String password) throws IOException
     {
-        PDDocument document = null;
-        try
+        try (PDDocument document = PDDocument.load(new File(pdfFile), password))
         {
-            document = PDDocument.load(new File(pdfFile), password);
             AccessPermission ap = document.getCurrentAccessPermission();
-            if (! ap.canExtractContent())
+            if (!ap.canExtractContent())
             {
                 throw new IOException("You do not have permission to extract images");
             }
@@ -177,13 +174,6 @@ public final class ExtractImages
                 extractor.run();
             }
         }
-        finally
-        {
-            if (document != null)
-            {
-                document.close();
-            }
-        }
     }
 
     private class ImageGraphicsEngine extends PDFGraphicsStreamEngine
@@ -335,10 +325,8 @@ public final class ExtractImages
             suffix = "png";
         }
 
-        FileOutputStream out = null;
-        try
+        try (FileOutputStream out = new FileOutputStream(filename + "." + suffix))
         {
-            out = new FileOutputStream(filename + "." + suffix);
             BufferedImage image = pdImage.getImage();
             if (image != null)
             {
@@ -368,12 +356,5 @@ public final class ExtractImages
             }
             out.flush();
         }
-        finally
-        {
-            if (out != null)
-            {
-                out.close();
-            }
-        }
     }
 }

Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/OverlayPDF.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/OverlayPDF.java?rev=1793430&r1=1793429&r2=1793430&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/OverlayPDF.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/OverlayPDF.java Tue May  2 02:07:29 2017
@@ -139,9 +139,10 @@ public final class OverlayPDF
         
         try 
         {
-            PDDocument result = overlayer.overlay(specificPageOverlayFile);
-            result.save(outputFilename);
-            result.close();
+            try (PDDocument result = overlayer.overlay(specificPageOverlayFile))
+            {
+                result.save(outputFilename);
+            }
             // close the input files AFTER saving the resulting file as some 
             // streams are shared among the input and the output files
             overlayer.close();

Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFSplit.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFSplit.java?rev=1793430&r1=1793429&r2=1793430&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFSplit.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFSplit.java Tue May  2 02:07:29 2017
@@ -70,53 +70,50 @@ public final class PDFSplit
         String outputPrefix = null;
         for( int i=0; i<args.length; i++ )
         {
-            if( args[i].equals( PASSWORD ) )
+            switch (args[i])
             {
-                i++;
-                if( i >= args.length )
-                {
-                    usage();
-                }
-                password = args[i];
-            }
-            else if( args[i].equals( SPLIT ) )
-            {
-                i++;
-                if( i >= args.length )
-                {
-                    usage();
-                }
-                split = args[i];
-            }
-            else if( args[i].equals( START_PAGE ) )
-            {
-                i++;
-                if( i >= args.length )
-                {
-                    usage();
-                }
-                startPage = args[i];
-            }
-            else if( args[i].equals( END_PAGE ) )
-            {
-                i++;
-                if( i >= args.length )
-                {
-                    usage();
-                }
-                endPage = args[i];
-            }
-            else if( args[i].equals( OUTPUT_PREFIX ) )
-            {
-                i++;
-                outputPrefix = args[i];
-            }
-            else
-            {
-                if( pdfFile == null )
-                {
-                    pdfFile = args[i];
-                }
+                case PASSWORD:
+                    i++;
+                    if (i >= args.length)
+                    {
+                        usage();
+                    }
+                    password = args[i];
+                    break;
+                case SPLIT:
+                    i++;
+                    if (i >= args.length)
+                    {
+                        usage();
+                    }
+                    split = args[i];
+                    break;
+                case START_PAGE:
+                    i++;
+                    if (i >= args.length)
+                    {
+                        usage();
+                    }
+                    startPage = args[i];
+                    break;
+                case END_PAGE:
+                    i++;
+                    if (i >= args.length)
+                    {
+                        usage();
+                    }
+                    endPage = args[i];
+                    break;
+                case OUTPUT_PREFIX:
+                    i++;
+                    outputPrefix = args[i];
+                    break;
+                default:
+                    if (pdfFile == null)
+                    {
+                        pdfFile = args[i];
+                    }
+                    break;
             }
         }
 
@@ -171,10 +168,11 @@ public final class PDFSplit
                 documents = splitter.split( document );
                 for( int i=0; i<documents.size(); i++ )
                 {
-                    PDDocument doc = documents.get( i );
-                    String fileName = outputPrefix + "-" + (i + 1) + ".pdf";
-                    writeDocument( doc, fileName );
-                    doc.close();
+                    try (PDDocument doc = documents.get(i))
+                    {
+                        String fileName = outputPrefix + "-" + (i + 1) + ".pdf";
+                        writeDocument(doc, fileName);
+                    }
                 }
 
             }

Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFToImage.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFToImage.java?rev=1793430&r1=1793429&r2=1793430&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFToImage.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFToImage.java Tue May  2 02:07:29 2017
@@ -95,84 +95,79 @@ public final class PDFToImage
         }
         for( int i = 0; i < args.length; i++ )
         {
-            if( args[i].equals( PASSWORD ) )
+            switch (args[i])
             {
-                i++;
-                if( i >= args.length )
-                {
-                    usage();
-                }
-                password = args[i];
-            }
-            else if( args[i].equals( START_PAGE ) )
-            {
-                i++;
-                if( i >= args.length )
-                {
-                    usage();
-                }
-                startPage = Integer.parseInt( args[i] );
-            }
-            else if( args[i].equals( END_PAGE ) )
-            {
-                i++;
-                if( i >= args.length )
-                {
-                    usage();
-                }
-                endPage = Integer.parseInt( args[i] );
-            }
-            else if( args[i].equals( PAGE ) )
-            {
-                i++;
-                if( i >= args.length )
-                {
-                    usage();
-                }
-                startPage = Integer.parseInt( args[i] );
-                endPage = Integer.parseInt( args[i] );
-            }
-            else if( args[i].equals(IMAGE_TYPE) || args[i].equals(FORMAT) )
-            {
-                i++;
-                imageFormat = args[i];
-            }
-            else if( args[i].equals( OUTPUT_PREFIX ) || args[i].equals( PREFIX ) )
-            {
-                i++;
-                outputPrefix = args[i];
-            }
-            else if( args[i].equals( COLOR ) )
-            {
-                i++;
-                color = args[i];
-            }
-            else if( args[i].equals( RESOLUTION ) || args[i].equals( DPI ) )
-            {
-                i++;
-                dpi = Integer.parseInt(args[i]);
-            }
-            else if( args[i].equals( CROPBOX ) )
-            {
-                i++;
-                cropBoxLowerLeftX = Float.valueOf(args[i]);
-                i++;
-                cropBoxLowerLeftY = Float.valueOf(args[i]);
-                i++;
-                cropBoxUpperRightX = Float.valueOf(args[i]);
-                i++;
-                cropBoxUpperRightY = Float.valueOf(args[i]);
-            }
-            else if( args[i].equals( TIME ) )
-            {
-                showTime = true;
-            }
-            else
-            {
-                if( pdfFile == null )
-                {
-                    pdfFile = args[i];
-                }
+                case PASSWORD:
+                    i++;
+                    if (i >= args.length)
+                    {
+                        usage();
+                    }
+                    password = args[i];
+                    break;
+                case START_PAGE:
+                    i++;
+                    if (i >= args.length)
+                    {
+                        usage();
+                    }
+                    startPage = Integer.parseInt(args[i]);
+                    break;
+                case END_PAGE:
+                    i++;
+                    if (i >= args.length)
+                    {
+                        usage();
+                    }
+                    endPage = Integer.parseInt(args[i]);
+                    break;
+                case PAGE:
+                    i++;
+                    if (i >= args.length)
+                    {
+                        usage();
+                    }
+                    startPage = Integer.parseInt(args[i]);
+                    endPage = Integer.parseInt(args[i]);
+                    break;
+                case IMAGE_TYPE:
+                case FORMAT:
+                    i++;
+                    imageFormat = args[i];
+                    break;
+                case OUTPUT_PREFIX:
+                case PREFIX:
+                    i++;
+                    outputPrefix = args[i];
+                    break;
+                case COLOR:
+                    i++;
+                    color = args[i];
+                    break;
+                case RESOLUTION:
+                case DPI:
+                    i++;
+                    dpi = Integer.parseInt(args[i]);
+                    break;
+                case CROPBOX:
+                    i++;
+                    cropBoxLowerLeftX = Float.valueOf(args[i]);
+                    i++;
+                    cropBoxLowerLeftY = Float.valueOf(args[i]);
+                    i++;
+                    cropBoxUpperRightX = Float.valueOf(args[i]);
+                    i++;
+                    cropBoxUpperRightY = Float.valueOf(args[i]);
+                    break;
+                case TIME:
+                    showTime = true;
+                    break;
+                default:
+                    if (pdfFile == null)
+                    {
+                        pdfFile = args[i];
+                    }
+                    break;
             }
         }
         if( pdfFile == null )
@@ -186,11 +181,8 @@ public final class PDFToImage
                 outputPrefix = pdfFile.substring( 0, pdfFile.lastIndexOf( '.' ));
             }
 
-            PDDocument document = null;
-            try
+            try (PDDocument document = PDDocument.load(new File(pdfFile), password))
             {
-                document = PDDocument.load(new File(pdfFile), password);
-
                 ImageType imageType = null;
                 if ("bilevel".equalsIgnoreCase(color))
                 {
@@ -255,13 +247,6 @@ public final class PDFToImage
                     System.exit(1);
                 }
             }
-            finally
-            {
-                if( document != null )
-                {
-                    document.close();
-                }
-            }
         }
     }
 

Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java?rev=1793430&r1=1793429&r2=1793430&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java Tue May  2 02:07:29 2017
@@ -71,44 +71,42 @@ public final class PrintPDF
         orientationMap.put("portrait", Orientation.PORTRAIT);
         for (int i = 0; i < args.length; i++)
         {
-            if (args[i].equals(PASSWORD))
+            switch (args[i])
             {
-                i++;
-                if (i >= args.length)
-                {
-                    usage();
-                }
-                password = args[i];
-            }
-            else if (args[i].equals(PRINTER_NAME))
-            {
-                i++;
-                if (i >= args.length)
-                {
-                    usage();
-                }
-                printerName = args[i];
-            }
-            else if (args[i].equals(SILENT))
-            {
-                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];
+                case PASSWORD:
+                    i++;
+                    if (i >= args.length)
+                    {
+                        usage();
+                    }
+                    password = args[i];
+                    break;
+                case PRINTER_NAME:
+                    i++;
+                    if (i >= args.length)
+                    {
+                        usage();
+                    }
+                    printerName = args[i];
+                    break;
+                case SILENT:
+                    silentPrint = true;
+                    break;
+                case ORIENTATION:
+                    i++;
+                    if (i >= args.length)
+                    {
+                        usage();
+                    }
+                    orientation = orientationMap.get(args[i]);
+                    if (orientation == null)
+                    {
+                        usage();
+                    }
+                    break;
+                default:
+                    pdfFile = args[i];
+                    break;
             }
         }
 
@@ -117,11 +115,8 @@ public final class PrintPDF
             usage();
         }
 
-        PDDocument document = null;
-        try
+        try (PDDocument document = PDDocument.load(new File(pdfFile), password))
         {
-            document = PDDocument.load(new File(pdfFile), password);
-
             PrinterJob printJob = PrinterJob.getPrinterJob();
             printJob.setJobName(new File(pdfFile).getName());
 
@@ -145,13 +140,6 @@ public final class PrintPDF
                 printJob.print();
             }
         }
-        finally
-        {
-            if (document != null)
-            {
-                document.close();
-            }
-        }
     }
 
     /**

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=1793430&r1=1793429&r2=1793430&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 May  2 02:07:29 2017
@@ -102,6 +102,7 @@ public class TextToPDF
     /**
      * Create a PDF document with some text.
      *
+     * @param doc The document.
      * @param text The stream of text data.
      *
      * @throws IOException If there is an error writing the data.
@@ -122,7 +123,7 @@ public class TextToPDF
             //calculate font height and increase by a factor.
             height = height*fontSize*LINE_HEIGHT_FACTOR;
             BufferedReader data = new BufferedReader( text );
-            String nextLine = null;
+            String nextLine;
             PDPage page = new PDPage(mediaBox);
             PDPageContentStream contentStream = null;
             float y = -1;
@@ -284,10 +285,9 @@ public class TextToPDF
 
         TextToPDF app = new TextToPDF();
                 
-        PDDocument doc = new PDDocument();
-        try
+        try (PDDocument doc = new PDDocument())
         {
-            if( args.length < 2 )
+            if (args.length < 2)
             {
                 app.usage();
             }
@@ -295,29 +295,26 @@ public class TextToPDF
             {
                 for( int i=0; i<args.length-2; i++ )
                 {
-                    if( args[i].equals( "-standardFont" ))
-                    {
-                        i++;
-                        app.setFont( getStandardFont( args[i] ));
-                    }
-                    else if( args[i].equals( "-ttf" ))
-                    {
-                        i++;
-                        PDFont font = PDType0Font.load( doc, new File( args[i]) );
-                        app.setFont( font );
-                    }
-                    else if( args[i].equals( "-fontSize" ))
-                    {
-                        i++;
-                        app.setFontSize( Integer.parseInt( args[i] ) );
-                    }
-                    else if( args[i].equals( "-landscape" ))
+                    switch (args[i])
                     {
-                        app.setLandscape(true);
-                    }                    
-                    else
-                    {
-                        throw new IOException( "Unknown argument:" + args[i] );
+                        case "-standardFont":
+                            i++;
+                            app.setFont(getStandardFont(args[i]));
+                            break;
+                        case "-ttf":
+                            i++;
+                            PDFont font = PDType0Font.load(doc, new File(args[i]));
+                            app.setFont(font);
+                            break;
+                        case "-fontSize":
+                            i++;
+                            app.setFontSize(Integer.parseInt(args[i]));
+                            break;
+                        case "-landscape":
+                            app.setLandscape(true);
+                            break;
+                        default:
+                            throw new IOException("Unknown argument:" + args[i]);
                     }
                 }
                 
@@ -325,10 +322,6 @@ public class TextToPDF
                 doc.save( args[args.length-2] );
             }
         }
-        finally
-        {
-            doc.close();
-        }
     }
 
     /**
@@ -348,7 +341,7 @@ public class TextToPDF
             message.append("                         ").append(std14String).append("\n");
         }
         message.append("  -ttf <ttf file>      : The TTF font to use.\n");
-        message.append("  -fontSize <fontSize> : default: " + DEFAULT_FONT_SIZE );
+        message.append("  -fontSize <fontSize> : default: ").append(DEFAULT_FONT_SIZE);
         message.append("  -landscape           : sets orientation to landscape" );
         
         System.err.println(message.toString());

Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/WriteDecodedDoc.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/WriteDecodedDoc.java?rev=1793430&r1=1793429&r2=1793430&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/WriteDecodedDoc.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/WriteDecodedDoc.java Tue May  2 02:07:29 2017
@@ -58,10 +58,8 @@ public class WriteDecodedDoc
     public void doIt(String in, String out, String password, boolean skipImages)
             throws IOException
     {
-        PDDocument doc = null;
-        try
+        try (PDDocument doc = PDDocument.load(new File(in), password))
         {
-            doc = PDDocument.load(new File(in), password);
             doc.setAllSecurityToBeRemoved(true);
             for (COSObject cosObject : doc.getDocument().getObjects())
             {
@@ -89,21 +87,15 @@ public class WriteDecodedDoc
                         continue;
                     }
                     stream.removeItem(COSName.FILTER);
-                    OutputStream streamOut = stream.createOutputStream();
-                    streamOut.write(bytes);
-                    streamOut.close();
+                    try (OutputStream streamOut = stream.createOutputStream())
+                    {
+                        streamOut.write(bytes);
+                    }
                 }
             }
             doc.getDocumentCatalog();
             doc.save( out );
         }
-        finally
-        {
-            if( doc != null )
-            {
-                doc.close();
-            }
-        }
     }
 
     /**
@@ -126,29 +118,29 @@ public class WriteDecodedDoc
         boolean skipImages = false;
         for( int i=0; i<args.length; i++ )
         {
-            if( args[i].equals( PASSWORD ) )
-            {
-                i++;
-                if( i >= args.length )
-                {
-                    usage();
-                }
-                password = args[i];
-            }
-            else if (args[i].equals( SKIPIMAGES ))
-            {
-                skipImages = true;
-            }
-            else
+            switch (args[i])
             {
-                if( pdfFile == null )
-                {
-                    pdfFile = args[i];
-                }
-                else
-                {
-                    outputFile = args[i];
-                }
+                case PASSWORD:
+                    i++;
+                    if (i >= args.length)
+                    {
+                        usage();
+                    }
+                    password = args[i];
+                    break;
+                case SKIPIMAGES:
+                    skipImages = true;
+                    break;
+                default:
+                    if (pdfFile == null)
+                    {
+                        pdfFile = args[i];
+                    }
+                    else
+                    {
+                        outputFile = args[i];
+                    }
+                    break;
             }
         }
         if( pdfFile == null )

Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/imageio/ImageIOUtil.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/imageio/ImageIOUtil.java?rev=1793430&r1=1793429&r2=1793430&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/imageio/ImageIOUtil.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/imageio/ImageIOUtil.java Tue May  2 02:07:29 2017
@@ -66,16 +66,11 @@ public final class ImageIOUtil
             int dpi) throws IOException
     {
         File file = new File(filename);
-        FileOutputStream output = new FileOutputStream(file);
         try
-        {
+        (FileOutputStream output = new FileOutputStream(file)) {
             String formatName = filename.substring(filename.lastIndexOf('.') + 1);
             return writeImage(image, formatName, output, dpi);
         }
-        finally
-        {
-            output.close();
-        }
     }
 
     /**
@@ -100,15 +95,10 @@ public final class ImageIOUtil
             int dpi) throws IOException
     {
         File file = new File(filename + "." + formatName);
-        FileOutputStream output = new FileOutputStream(file);
         try
-        {
+        (FileOutputStream output = new FileOutputStream(file)) {
             return writeImage(image, formatName, output, dpi);
         }
-        finally
-        {
-            output.close();
-        }
     }
 
     /**

Modified: pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/TestPDFText2HTML.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/TestPDFText2HTML.java?rev=1793430&r1=1793429&r2=1793430&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/TestPDFText2HTML.java (original)
+++ pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/TestPDFText2HTML.java Tue May  2 02:07:29 2017
@@ -38,13 +38,14 @@ public class TestPDFText2HTML extends Te
         doc.getDocumentInformation().setTitle(title);
         PDPage page = new PDPage();
         doc.addPage(page);
-        PDPageContentStream contentStream = new PDPageContentStream(doc, page);
-        contentStream.beginText();
-        contentStream.setFont(font, 12);
-        contentStream.newLineAtOffset(100, 700);
-        contentStream.showText(text);
-        contentStream.endText();
-        contentStream.close();
+        try (PDPageContentStream contentStream = new PDPageContentStream(doc, page))
+        {
+            contentStream.beginText();
+            contentStream.setFont(font, 12);
+            contentStream.newLineAtOffset(100, 700);
+            contentStream.showText(text);
+            contentStream.endText();
+        }
         return doc;
     }
 

Modified: pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/TestTextToPdf.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/TestTextToPdf.java?rev=1793430&r1=1793429&r2=1793430&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/TestTextToPdf.java (original)
+++ pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/TestTextToPdf.java Tue May  2 02:07:29 2017
@@ -48,9 +48,11 @@ public class TestTextToPdf extends TestC
     public void testCreateEmptyPdf() throws Exception
     {
         TextToPDF pdfCreator = new TextToPDF();
-        StringReader reader = new StringReader("");
-        PDDocument pdfDoc = pdfCreator.createPDFFromText(reader);
-        reader.close();
+        PDDocument pdfDoc;
+        try (StringReader reader = new StringReader(""))
+        {
+            pdfDoc = pdfCreator.createPDFFromText(reader);
+        }
 
         // In order for the PDF document to be openable by Adobe Reader, it needs
         // to have some pages in it. So we'll check that.

Modified: pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/imageio/TestImageIOUtils.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/imageio/TestImageIOUtils.java?rev=1793430&r1=1793429&r2=1793430&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/imageio/TestImageIOUtils.java (original)
+++ pdfbox/trunk/tools/src/test/java/org/apache/pdfbox/tools/imageio/TestImageIOUtils.java Tue May  2 02:07:29 2017
@@ -312,30 +312,30 @@ public class TestImageIOUtils extends Te
         Iterator readers = ImageIO.getImageReadersBySuffix(suffix);
         assertTrue("No image reader found for suffix " + suffix, readers.hasNext());
         ImageReader reader = (ImageReader) readers.next();
-        ImageInputStream iis = ImageIO.createImageInputStream(new File(filename));
-        assertNotNull("No ImageInputStream created for file " + filename, iis);
-        reader.setInput(iis);
-        IIOMetadata imageMetadata = reader.getImageMetadata(0);
-        Element root = (Element) imageMetadata.getAsTree(STANDARD_METADATA_FORMAT);
-        NodeList dimensionNodes = root.getElementsByTagName("Dimension");
-        assertTrue("No resolution found in image file " + filename, dimensionNodes.getLength() > 0);
-        Element dimensionElement = (Element) dimensionNodes.item(0);
-
-        NodeList pixelSizeNodes = dimensionElement.getElementsByTagName("HorizontalPixelSize");
-        assertTrue("No X resolution found in image file " + filename, pixelSizeNodes.getLength() > 0);
-        Node pixelSizeNode = pixelSizeNodes.item(0);
-        String val = pixelSizeNode.getAttributes().getNamedItem("value").getNodeValue();
-        int actualResolution = (int) Math.round(25.4 / Double.parseDouble(val));
-        assertEquals("X resolution doesn't match in image file " + filename, expectedResolution, actualResolution);
-
-        pixelSizeNodes = dimensionElement.getElementsByTagName("VerticalPixelSize");
-        assertTrue("No Y resolution found in image file " + filename, pixelSizeNodes.getLength() > 0);
-        pixelSizeNode = pixelSizeNodes.item(0);
-        val = pixelSizeNode.getAttributes().getNamedItem("value").getNodeValue();
-        actualResolution = (int) Math.round(25.4 / Double.parseDouble(val));
-        assertEquals("Y resolution doesn't match", expectedResolution, actualResolution);
-
-        iis.close();
+        try (ImageInputStream iis = ImageIO.createImageInputStream(new File(filename)))
+        {
+            assertNotNull("No ImageInputStream created for file " + filename, iis);
+            reader.setInput(iis);
+            IIOMetadata imageMetadata = reader.getImageMetadata(0);
+            Element root = (Element) imageMetadata.getAsTree(STANDARD_METADATA_FORMAT);
+            NodeList dimensionNodes = root.getElementsByTagName("Dimension");
+            assertTrue("No resolution found in image file " + filename, dimensionNodes.getLength() > 0);
+            Element dimensionElement = (Element) dimensionNodes.item(0);
+
+            NodeList pixelSizeNodes = dimensionElement.getElementsByTagName("HorizontalPixelSize");
+            assertTrue("No X resolution found in image file " + filename, pixelSizeNodes.getLength() > 0);
+            Node pixelSizeNode = pixelSizeNodes.item(0);
+            String val = pixelSizeNode.getAttributes().getNamedItem("value").getNodeValue();
+            int actualResolution = (int) Math.round(25.4 / Double.parseDouble(val));
+            assertEquals("X resolution doesn't match in image file " + filename, expectedResolution, actualResolution);
+
+            pixelSizeNodes = dimensionElement.getElementsByTagName("VerticalPixelSize");
+            assertTrue("No Y resolution found in image file " + filename, pixelSizeNodes.getLength() > 0);
+            pixelSizeNode = pixelSizeNodes.item(0);
+            val = pixelSizeNode.getAttributes().getNamedItem("value").getNodeValue();
+            actualResolution = (int) Math.round(25.4 / Double.parseDouble(val));
+            assertEquals("Y resolution doesn't match", expectedResolution, actualResolution);
+        }
         reader.dispose();
     }
 
@@ -353,18 +353,19 @@ public class TestImageIOUtils extends Te
         // BMP format explained here:
         // http://www.javaworld.com/article/2077561/learn-java/java-tip-60--saving-bitmap-files-in-java.html
         // we skip 38 bytes and then read two 4 byte-integers and reverse the bytes
-        DataInputStream dis = new DataInputStream(new FileInputStream(new File(filename)));
-        int skipped = dis.skipBytes(38);
-        assertEquals("Can't skip 38 bytes in image file " + filename, 38, skipped);
-        int pixelsPerMeter = Integer.reverseBytes(dis.readInt());
-        int actualResolution = (int) Math.round(pixelsPerMeter / 100.0 * 2.54);
-        assertEquals("X resolution doesn't match in image file " + filename,
-                expectedResolution, actualResolution);
-        pixelsPerMeter = Integer.reverseBytes(dis.readInt());
-        actualResolution = (int) Math.round(pixelsPerMeter / 100.0 * 2.54);
-        assertEquals("Y resolution doesn't match in image file " + filename,
-                expectedResolution, actualResolution);
-        dis.close();
+        try (DataInputStream dis = new DataInputStream(new FileInputStream(new File(filename))))
+        {
+            int skipped = dis.skipBytes(38);
+            assertEquals("Can't skip 38 bytes in image file " + filename, 38, skipped);
+            int pixelsPerMeter = Integer.reverseBytes(dis.readInt());
+            int actualResolution = (int) Math.round(pixelsPerMeter / 100.0 * 2.54);
+            assertEquals("X resolution doesn't match in image file " + filename,
+                    expectedResolution, actualResolution);
+            pixelsPerMeter = Integer.reverseBytes(dis.readInt());
+            actualResolution = (int) Math.round(pixelsPerMeter / 100.0 * 2.54);
+            assertEquals("Y resolution doesn't match in image file " + filename,
+                    expectedResolution, actualResolution);
+        }
     }
 
     /**
@@ -379,15 +380,16 @@ public class TestImageIOUtils extends Te
     {
         Iterator readers = ImageIO.getImageReadersBySuffix("tiff");
         ImageReader reader = (ImageReader) readers.next();
-        ImageInputStream iis = ImageIO.createImageInputStream(new File(filename));
-        reader.setInput(iis);
-        IIOMetadata imageMetadata = reader.getImageMetadata(0);
-        Element root = (Element) imageMetadata.getAsTree(STANDARD_METADATA_FORMAT);
-        Element comprElement = (Element) root.getElementsByTagName("Compression").item(0);
-        Node comprTypeNode = comprElement.getElementsByTagName("CompressionTypeName").item(0);
-        String actualCompression = comprTypeNode.getAttributes().getNamedItem("value").getNodeValue();
-        assertEquals("Incorrect TIFF compression in file " + filename, expectedCompression, actualCompression);
-        iis.close();
+        try (ImageInputStream iis = ImageIO.createImageInputStream(new File(filename)))
+        {
+            reader.setInput(iis);
+            IIOMetadata imageMetadata = reader.getImageMetadata(0);
+            Element root = (Element) imageMetadata.getAsTree(STANDARD_METADATA_FORMAT);
+            Element comprElement = (Element) root.getElementsByTagName("Compression").item(0);
+            Node comprTypeNode = comprElement.getElementsByTagName("CompressionTypeName").item(0);
+            String actualCompression = comprTypeNode.getAttributes().getNamedItem("value").getNodeValue();
+            assertEquals("Incorrect TIFF compression in file " + filename, expectedCompression, actualCompression);
+        }
         reader.dispose();
     }