diff -ur src-orig/jpdftweak/cli/BurstImagesOption.java src/jpdftweak/cli/BurstImagesOption.java --- src-orig/jpdftweak/cli/BurstImagesOption.java 2011-12-19 20:15:18.000000000 +0100 +++ src/jpdftweak/cli/BurstImagesOption.java 2013-10-19 16:05:46.238950800 +0200 @@ -14,11 +14,9 @@ private PdfToImage.ImageType fileType; private PdfToImage.TiffCompression compressionType = PdfToImage.TiffCompression.NONE; private int quality = 100; - private boolean transparent = false; public boolean supportsOption(String option) { return option.equals("-colormode") || option.equals("-tiffcompression") - || option.equals("-transparency") || option.equals("-imagequality") || option.equals("-burstfiletype"); } @@ -38,15 +36,6 @@ throw new DocumentException( "Please refer to \"-help -tiffcompression\""); } - } else if (option.equals("-transparency")) { - if (value.equals("YES")) { - transparent = true; - } else if (value.equals("NO")) { - transparent = false; - } else { - throw new DocumentException( - "Please refer to \"-help -transparency\""); - } } else if (option.equals("-imagequality")) { if (!checkQuality(value)) { throw new DocumentException( @@ -96,20 +85,15 @@ public void run(PdfTweak tweak, PdfInputFile masterFile) throws IOException, DocumentException { if (fileType != null && fileType != PdfToImage.ImageType.PDF) { - if ((fileType == PdfToImage.ImageType.TIFF) - && colorMode != PdfToImage.ColorMode.RGB) { - transparent = false; - } - tweak.setPdfImages(new PdfToImage(true, colorMode, fileType, compressionType, quality, transparent)); + tweak.setPdfImages(new PdfToImage(true, colorMode, fileType, compressionType, quality)); } else { - tweak.setPdfImages(new PdfToImage(false, colorMode, fileType, compressionType, quality, transparent)); + tweak.setPdfImages(new PdfToImage(false, colorMode, fileType, compressionType, quality)); } } public String getSummary() { return " -colormode Set the color mode of the exported images\n" + " -tiffcompression Set compression type for TIFF image files\n" - + " -transparency Set if your image has transparent layers\n" + " -imagequality Set the quality for the exported images\n" + " -burstfiletype Set the file type of the burst pages\n"; } @@ -125,12 +109,6 @@ + " Set compression type for TIFF image files\n" + " accepted values:{NONE, LWZ, JPEG, ZLIB, PACKBITS, DEFLATE}\n" + " *option applicable only on burst pages function \n"; - } else if (option.equals("-transparency")) { - return " -transparency {YES/NO}\n" - + " Set if your image has transparent layers\n" - + " accepted values:{YES, NO}\n" - + " *option applicable only on burst pages function \n" - + " and PNG,TIFF,PAM,GIF images\n"; } else if (option.equals("-imagequality")) { return " -imagequality {0-100}\n" + " Set the quality for the exported images\n" diff -ur src-orig/jpdftweak/core/PdfToImage.java src/jpdftweak/core/PdfToImage.java --- src-orig/jpdftweak/core/PdfToImage.java 2011-12-19 20:15:18.000000000 +0100 +++ src/jpdftweak/core/PdfToImage.java 2013-10-19 16:36:28.120950800 +0200 @@ -8,9 +8,12 @@ import javax.imageio.ImageIO; import com.jmupdf.pdf.PdfDocument; -import com.jmupdf.Document; -import com.jmupdf.Page; -import com.jmupdf.PageRenderer; +import com.jmupdf.document.Document; +import com.jmupdf.page.Page; +import com.jmupdf.page.PageRenderer; +import com.jmupdf.enums.TifCompression; +import com.jmupdf.enums.TifMode; +import com.jmupdf.enums.ImageType; /** * PdfToImage Class uses JmuPdf and ImageIO libraries to @@ -30,26 +33,29 @@ */ public class PdfToImage { - private int colorMode, compressionType, quality, transparent; + private com.jmupdf.enums.ImageType colorMode; + private TifCompression compressionType; + private int quality; private ImageType imageType; boolean burstImages; public static enum ColorMode{ - RGB(PageRenderer.IMAGE_TYPE_RGB, "RGB"), - GRAY(PageRenderer.IMAGE_TYPE_GRAY, "Grayscale"), - BNW(PageRenderer.IMAGE_TYPE_BINARY, "Black and White"), - BNWI(PageRenderer.IMAGE_TYPE_BINARY_DITHER, "Black and White Indexed"); + RGB(com.jmupdf.enums.ImageType.IMAGE_TYPE_RGB, "RGB"), + ARGB(com.jmupdf.enums.ImageType.IMAGE_TYPE_ARGB, "RGB with transparency"), + GRAY(com.jmupdf.enums.ImageType.IMAGE_TYPE_GRAY, "Grayscale"), + BNW(com.jmupdf.enums.ImageType.IMAGE_TYPE_BINARY, "Black and White"), + BNWI(com.jmupdf.enums.ImageType.IMAGE_TYPE_BINARY_DITHER, "Black and White Indexed"); - private int code; + private com.jmupdf.enums.ImageType code; private String name; - private ColorMode(int code, String name) { + private ColorMode(com.jmupdf.enums.ImageType code, String name) { this.code = code; this.name = name; } - public int getCode() { + public com.jmupdf.enums.ImageType getCode() { return code; } @@ -60,20 +66,20 @@ } public static enum TiffCompression { - NONE(PdfDocument.TIF_COMPRESSION_NONE), - LZW(PdfDocument.TIF_COMPRESSION_LZW), - JPEG(PdfDocument.TIF_COMPRESSION_JPEG), - ZLIB(PdfDocument.TIF_COMPRESSION_ZLIB), - PACKBITS(PdfDocument.TIF_COMPRESSION_PACKBITS), - DEFLATE(PdfDocument.TIF_COMPRESSION_DEFLATE); + NONE(TifCompression.TIF_COMPRESSION_NONE), + LZW(TifCompression.TIF_COMPRESSION_LZW), + JPEG(TifCompression.TIF_COMPRESSION_JPEG), + ZLIB(TifCompression.TIF_COMPRESSION_ZLIB), + PACKBITS(TifCompression.TIF_COMPRESSION_PACKBITS), + DEFLATE(TifCompression.TIF_COMPRESSION_DEFLATE); - private int code; + private TifCompression code; - private TiffCompression(int code) { + private TiffCompression(TifCompression code) { this.code = code; } - public int getCode() { + public TifCompression getCode() { return code; } } @@ -82,23 +88,14 @@ PDF,JPG,PNG,GIF,PAM,PNM,BMP,TIFF; } - public PdfToImage(boolean burstImages, ColorMode colorMode, ImageType imageType, TiffCompression compressionType, int quality, boolean transparent) throws IOException { + public PdfToImage(boolean burstImages, ColorMode colorMode, ImageType imageType, TiffCompression compressionType, int quality) throws IOException { this.colorMode = colorMode.getCode(); this.compressionType = compressionType.getCode(); this.burstImages = burstImages; this.imageType = imageType; - this.transparent = matchTransparency(transparent); this.quality = quality; } - private int matchTransparency(boolean transparent) { - if (transparent) { - return PdfDocument.IMAGE_SAVE_ALPHA; - } else { - return PdfDocument.IMAGE_SAVE_NO_ALPHA; - } - } - public boolean shouldExecute() { return this.burstImages; } @@ -153,10 +150,9 @@ document.saveAsTif((i + 1), outputFilePath, 1.0f, - transparent, colorMode, compressionType, - Document.TIF_DATA_APPEND, + TifMode.TIF_DATA_APPEND, quality); } document.dispose(); @@ -173,7 +169,7 @@ document.saveAsJPeg(1, outputFilePath, 1.0f, - colorMode, + colorMode, quality); break; } @@ -181,7 +177,6 @@ document.saveAsPng(1, outputFilePath, 1.0f, - transparent, colorMode); break; } @@ -189,7 +184,6 @@ document.saveAsPam(1, outputFilePath, 1.0f, - transparent, colorMode); break; } @@ -201,10 +195,9 @@ document.saveAsTif(1, outputFilePath, 1.0f, - transparent, - colorMode, + colorMode, compressionType, - Document.TIF_DATA_APPEND, + TifMode.TIF_DATA_APPEND, quality); break; } diff -ur src-orig/jpdftweak/core/PdfTweak.java src/jpdftweak/core/PdfTweak.java --- src-orig/jpdftweak/core/PdfTweak.java 2011-12-19 20:15:18.000000000 +0100 +++ src/jpdftweak/core/PdfTweak.java 2013-10-19 16:46:52.234950800 +0200 @@ -905,7 +905,7 @@ overContent.setGState(gs1); overContent.beginText(); if (wmColor != null) - overContent.setColorFill(new BaseColor(wmColor)); + overContent.setColorFill(new BaseColor(wmColor.getRed(), wmColor.getGreen(), wmColor.getBlue(), wmColor.getAlpha())); overContent.setFontAndSize(bf, wmSize); overContent.setTextMatrix(m1, m2, m3, m4, xoff + size.getWidth() / 2, yoff + size.getHeight() / 2); Nur in src/jpdftweak/core: .PdfTweak.java.swp. diff -ur src-orig/jpdftweak/gui/tabs/OutputTab.java src/jpdftweak/gui/tabs/OutputTab.java --- src-orig/jpdftweak/gui/tabs/OutputTab.java 2011-12-19 20:15:18.000000000 +0100 +++ src/jpdftweak/gui/tabs/OutputTab.java 2013-10-19 16:38:19.885950800 +0200 @@ -33,7 +33,7 @@ private JTextField outputFile; private JSlider qualitySlider; - private JCheckBox burst, multipageTiff, transparent, uncompressed, pageMarks, tempfiles, optimizeSize, fullyCompressed; + private JCheckBox burst, multipageTiff, uncompressed, pageMarks, tempfiles, optimizeSize, fullyCompressed; private JLabel colorLabel, compressionLabel, qualityLabel, warning; private JComboBox fileType, colorMode, compressionType; private JPanel imagePanel; @@ -108,7 +108,7 @@ whichToEnable(fileType.getSelectedIndex()); if(fileType.getSelectedIndex() == 0){ - setOptionsEnabled(false, false, false, false, true); + setOptionsEnabled(false, false, false, true); if(warning.getToolTipText().equals("Images will be exported in 72 dpi")){ warning.setIcon(null); warning.setToolTipText(""); @@ -127,28 +127,11 @@ this.add(imagePanel = new JPanel(new FormLayout("f:p, f:p:g, f:p", "f:p, f:p, f:p, 30px")), cc.xyw(1, 5, 3)); imagePanel.add(colorLabel = new JLabel("Color Mode:"), cc.xy(1, 1)); - imagePanel.add(colorMode = new JComboBox(new javax.swing.DefaultComboBoxModel(new PdfToImage.ColorMode[] { PdfToImage.ColorMode.RGB, PdfToImage.ColorMode.GRAY, PdfToImage.ColorMode.BNW, PdfToImage.ColorMode.BNWI})), cc.xyw(2, 1, 2)); + imagePanel.add(colorMode = new JComboBox(new javax.swing.DefaultComboBoxModel(new PdfToImage.ColorMode[] { PdfToImage.ColorMode.RGB, PdfToImage.ColorMode.ARGB, PdfToImage.ColorMode.GRAY, PdfToImage.ColorMode.BNW, PdfToImage.ColorMode.BNWI})), cc.xyw(2, 1, 2)); colorMode.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent arg0) { if(fileType.getSelectedIndex() == 7 || multipageTiff.isSelected()){ PdfToImage.ColorMode selectedColorMode = (PdfToImage.ColorMode) colorMode.getSelectedItem(); - switch (selectedColorMode) { - case GRAY:{ - transparent.setEnabled(false); - break; - } - case BNW:{ - transparent.setEnabled(false); - break; - } - case BNWI:{ - transparent.setEnabled(false); - break; - } - default: - transparent.setEnabled(true); - break; - } } } }); @@ -159,15 +142,15 @@ PdfToImage.TiffCompression selectedTiffCompression = (PdfToImage.TiffCompression) compressionType.getSelectedItem(); switch (selectedTiffCompression) { case JPEG:{ - setOptionsEnabled(true, true, true, colorMode.getSelectedIndex() == 0, false); + setOptionsEnabled(true, true, true, false); break; } case ZLIB:{ - setOptionsEnabled(true, true, true, colorMode.getSelectedIndex() == 0, false); + setOptionsEnabled(true, true, true, false); break; } default: - setOptionsEnabled(true, true, false, colorMode.getSelectedIndex() == 0, false); + setOptionsEnabled(true, true, false, false); break; } } @@ -175,7 +158,6 @@ imagePanel.add(qualityLabel = new JLabel("Quality:"), cc.xy(1, 3)); imagePanel.add(qualitySlider = new JSlider(), cc.xyw(2, 3, 2)); qualitySlider.setValue(100); - imagePanel.add(transparent = new JCheckBox("Save transparency of image background"), cc.xyw(1, 4, 2)); imagePanel.add(warning = new JLabel(""), cc.xy(3, 4)); imagePanel.setBorder(new TitledBorder("Burst as Image Options")); this.add(new JSeparator(), cc.xyw(1, 6, 3)); @@ -196,7 +178,7 @@ "<P>: Input file path without filename
" + "<#>: Next free number (where file does not exist)
" + "* Page number (for bursting pages)"), cc.xyw(1,12,3)); - setOptionsEnabled(false, false, false, false, true); + setOptionsEnabled(false, false, false, true); } private void findSharedLibrary() { @@ -278,71 +260,61 @@ } switch (option) { case 0:{ - setOptionsEnabled(false, false, false, false, true); + setOptionsEnabled(false, false, false, true); break; } case 1:{ - setOptionsEnabled(true, false, true, false, false); + setOptionsEnabled(true, false, true, false); break; } case 2:{ - setOptionsEnabled(true,false,false,true,false); + setOptionsEnabled(true,false,false,false); break; } case 3:{ - setOptionsEnabled(true,false,false,true,false); + setOptionsEnabled(true,false,false,false); break; } case 4:{ - setOptionsEnabled(true,false,false,true,false); + setOptionsEnabled(true,false,false,false); break; } case 5:{ - setOptionsEnabled(true,false,false,false,false); + setOptionsEnabled(true,false,false,false); break; } case 6:{ - setOptionsEnabled(true,false,false,false,false); + setOptionsEnabled(true,false,false,false); break; } case 7:{ - setOptionsEnabled(true,true,false,true,false); + setOptionsEnabled(true,true,false,false); break; } case 100:{ //multipageTiff enabled - setOptionsEnabled(true,true,false,true,false); + setOptionsEnabled(true,true,false,false); break; } default: - setOptionsEnabled(false, false, false, false, true); + setOptionsEnabled(false, false, false, true); break; } } - private void setOptionsEnabled(boolean color, boolean compression, boolean quality, boolean transparency, boolean pdfOptions){ + private void setOptionsEnabled(boolean color, boolean compression, boolean quality, boolean pdfOptions){ colorLabel.setEnabled(color); colorMode.setEnabled(color); compressionLabel.setEnabled(compression); compressionType.setEnabled(compression); qualityLabel.setEnabled(quality); qualitySlider.setEnabled(quality); - transparent.setEnabled(transparency); uncompressed.setEnabled(pdfOptions); pageMarks.setEnabled(pdfOptions); optimizeSize.setEnabled(pdfOptions); fullyCompressed.setEnabled(pdfOptions); } - private boolean matchTransparency(boolean transparency) { - if(transparent.isEnabled()){ - return transparency; - } - else{ - return false; - } - } - @Override public String getTabName() { return "Output"; @@ -370,13 +342,12 @@ tweak.removePageMarks(); } } - boolean matchedTransparency = matchTransparency(transparent.isSelected()); boolean burstImages = (fileType.getSelectedIndex() != 0 && !multipageTiff.isSelected()); PdfToImage.ImageType type = (PdfToImage.ImageType) fileType.getSelectedItem(); if(multipageTiff.isSelected()){ type = PdfToImage.ImageType.TIFF; } - tweak.setPdfImages(new PdfToImage(burstImages,(PdfToImage.ColorMode) colorMode.getSelectedItem(), type,(PdfToImage.TiffCompression) compressionType.getSelectedItem(), qualitySlider.getValue(), matchedTransparency)); + tweak.setPdfImages(new PdfToImage(burstImages,(PdfToImage.ColorMode) colorMode.getSelectedItem(), type,(PdfToImage.TiffCompression) compressionType.getSelectedItem(), qualitySlider.getValue())); tweak.writeOutput(outputFile.getText(),multipageTiff.isSelected(), burst.isSelected(), uncompressed.isSelected(), optimizeSize.isSelected(), fullyCompressed.isSelected()); return null; }