System.out.println("Processing " + file);\r
}\r
SlideShow<?,?> ss = SlideShowFactory.create(file, null, true);\r
- List<? extends Slide<?,?>> slides = ss.getSlides();\r
+ try {\r
+ List<? extends Slide<?, ?>> slides = ss.getSlides();\r
\r
- Set<Integer> slidenum = slideIndexes(slides.size(), slidenumStr);\r
- \r
- if (slidenum.isEmpty()) {\r
- usage("slidenum must be either -1 (for all) or within range: [1.."+slides.size()+"] for "+file);\r
- ss.close();\r
- return;\r
- }\r
- \r
- Dimension pgsize = ss.getPageSize();\r
- int width = (int) (pgsize.width * scale);\r
- int height = (int) (pgsize.height * scale);\r
-\r
- for(Integer slideNo : slidenum) {\r
- Slide<?,?> slide = slides.get(slideNo);\r
- String title = slide.getTitle();\r
- if (!quiet) {\r
- System.out.println("Rendering slide " + slideNo + (title == null ? "" : ": " + title));\r
+ Set<Integer> slidenum = slideIndexes(slides.size(), slidenumStr);\r
+\r
+ if (slidenum.isEmpty()) {\r
+ usage("slidenum must be either -1 (for all) or within range: [1.." + slides.size() + "] for " + file);\r
+ return;\r
}\r
\r
- BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);\r
- Graphics2D graphics = img.createGraphics();\r
- DrawFactory.getInstance(graphics).fixFonts(graphics);\r
- \r
- // default rendering options\r
- graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);\r
- graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);\r
- graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);\r
- graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);\r
-\r
- graphics.scale(scale, scale);\r
-\r
- // draw stuff\r
- slide.draw(graphics);\r
-\r
- // save the result\r
- if (!"null".equals(format)) {\r
- String outname = file.getName().replaceFirst(".pptx?", "");\r
- outname = String.format(Locale.ROOT, "%1$s-%2$04d.%3$s", outname, slideNo, format);\r
- File outfile = new File(outdir, outname);\r
- ImageIO.write(img, format, outfile);\r
+ Dimension pgsize = ss.getPageSize();\r
+ int width = (int) (pgsize.width * scale);\r
+ int height = (int) (pgsize.height * scale);\r
+\r
+ for (Integer slideNo : slidenum) {\r
+ Slide<?, ?> slide = slides.get(slideNo);\r
+ String title = slide.getTitle();\r
+ if (!quiet) {\r
+ System.out.println("Rendering slide " + slideNo + (title == null ? "" : ": " + title));\r
+ }\r
+\r
+ BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);\r
+ Graphics2D graphics = img.createGraphics();\r
+ DrawFactory.getInstance(graphics).fixFonts(graphics);\r
+\r
+ // default rendering options\r
+ graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);\r
+ graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);\r
+ graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);\r
+ graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);\r
+\r
+ graphics.scale(scale, scale);\r
+\r
+ // draw stuff\r
+ slide.draw(graphics);\r
+\r
+ // save the result\r
+ if (!"null".equals(format)) {\r
+ String outname = file.getName().replaceFirst(".pptx?", "");\r
+ outname = String.format(Locale.ROOT, "%1$s-%2$04d.%3$s", outname, slideNo, format);\r
+ File outfile = new File(outdir, outname);\r
+ ImageIO.write(img, format, outfile);\r
+ }\r
}\r
- } \r
- \r
+ } finally {\r
+ ss.close();\r
+ }\r
+\r
if (!quiet) {\r
System.out.println("Done");\r
}\r
- \r
- ss.close();\r
}\r
\r
private static Set<Integer> slideIndexes(final int slideCount, String range) {\r