【发布时间】:2017-12-08 01:00:00
【问题描述】:
我正在将 pdf 文件转换为 tif 格式。为此,我正在使用 pdfbox-tools
org.apache.pdfbox 的版本为 2.0.3。但需要将内置类 TIFFUtil.java 和 MetaUtil.java 修改为 public。我们有没有其他方法可以代替触摸 jar 中的类?
static void saveAsMultipageTIFF1(ArrayList<BufferedImage> bimTab, String filename, int dpi) throws IOException {
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("tiff");
ImageWriter imageWriter = writers.next();
ImageOutputStream ios = ImageIO.createImageOutputStream(new File(filename));
imageWriter.setOutput(ios);
imageWriter.prepareWriteSequence(null);
for (BufferedImage image : bimTab) {
ImageWriteParam param = imageWriter.getDefaultWriteParam();
IIOMetadata metadata = imageWriter.getDefaultImageMetadata(new ImageTypeSpecifier(image), param);
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
TIFFUtil.setCompressionType(param, image);
TIFFUtil.updateMetadata(metadata, image, dpi);
imageWriter.writeToSequence(new IIOImage(image, null, metadata), param);
}
imageWriter.endWriteSequence();
imageWriter.dispose();
ios.flush();
ios.close();
}
【问题讨论】:
-
当前版本为 2.0.6。是什么阻止您复制这两个类的源代码并根据需要对其进行修改?
-
是的,我们可以使用 2.0.6。但我想知道我们是否有任何其他方法,而不是显式使用 jar 中的类?
-
不行,除非你复制jar的源。这是免费的。顺便说一句,你问题中的代码对我来说有点熟悉......啊,是的,它来自这里:stackoverflow.com/a/31974376/535646
标签: java pdf pdfbox tiff file-conversion