PDFをTIFFに変換
JPedalは、PDFファイルまたはPDFファイルのディレクトリをTIFFにラスタライズするためのいくつかのメソッドを提供しています。Javaの例では、ConvertPagesToImages クラスとTiffEncoderOptions クラスを使用します。
すべてのページを画像としてレンダリング
java -jar jpedal.jar --convert "inputFileOrFolder" "outputFolder" tiff
変換を調整するために、異なる設定を提供することもできます。
java -jar jpedal.jar --convert "inputFileOrFolder" "outputFolder" tiff ScalingAsFloat
java -jar jpedal.jar --convert "inputFileOrFolder" "outputFolder" tiff ScalingAsFloat PageRange
名前付き変数の使用方法は以下に詳しく説明されています。
- ScalingAsFloat: 出力に適用されるスケーリングを指定するfloat値です。これはビュースケーリングを100で割った値で、例えば150%は1.5になります
- PageRange: 変換するページの範囲です。これはSetOfIntegerSyntax
と同じルールに従います。
これは、単一のページ番号またはダッシュを使用した2つの値の間の範囲であるカンマ区切りの値のシリーズにできます。例えば、「1,3,4-7」はページ1,3,4,5,6,7を意味します
出力をより詳細に制御するために、JVMフラグ を追加することもできます。これらには以下が含まれます。
- 圧縮の設定 (image.tiff.compression)
- DPIの設定 (image.tiff.dpi)
- マルチページTIFF出力を許可 (org.jpedal.multipage_tiff)
これらすべてのプロパティは、2つの方法のいずれかで使用できます。
- コード内でシステムプロパティを設定
例えば、
System.setProperty("org.jpedal.multipage_tiff", "true");
- コマンドラインに次のプロパティを追加
例えば、
java -Dorg.jpedal.multipage_tiff=true -jar jpedal.jar --convert "inputFileOrFolder" "outputFolder"
ConvertPagesToImages.writeAllPagesAsImagesToDir(
"inputFileOrFolder",
"outputFolder",
"tiff",
1.33f);
ConvertPagesToImages convert = new ConvertPagesToImages("inputFile.pdf");
try {
if (convert.openPDFFile()) {
for(int page = 1; page <= convert.getPageCount(); page++) {
final BufferedImage bi = convert.getPageAsImage(page);
final File out = new File("outputFolder" + page + ".tiff");
// 出力を制御するセッター(圧縮の例)
final TiffEncoderOptions options = new TiffEncoderOptions();
options.setCompressionFormat(TiffCompressionFormat.DEFLATE);
options.setResolutionUnit(TiffResolutionUnit.INCH);
options.setXResolution(300);
options.setYResolution(300);
JDeli.write(bi, options, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
ConvertPagesToImages convert = new ConvertPagesToImages("inputFile.pdf");
// setPageRangeを使用すると、範囲には'-'または':'を使用し、
// 次の範囲に移動するには','を使用してページを選択できます。すべてのページの場合は単にnullを指定できます
convert.setPageRange(new PageRanges("1-5,8:10,15"));
// 上記はページ1から5(両端を含む)、8から10(両端を含む)、および15を意味します
try {
if (convert.openPDFFile()) {
convert.getPageRange().forEachRemaining(page -> {
try {
final BufferedImage bi = convert.getPageAsImage(page);
final File out = new File("outputFolder" + page + ".tiff");
JDeli.write(bi, options, out);
} catch (Exception e) {
e.printStackTrace();
}
});
}
} catch (PdfException e) {
e.printStackTrace();
}
convert.closePDFfile();
ConvertPagesToImages.writeAllPagesAsImagesToDir(
"inputFileOrFolder",
"outputFolder",
"tiff",
new int[] {width, height});
または
ConvertPagesToImages convert = new ConvertPagesToImages("inputFile.pdf");
//アスペクト比を保持してフィット(幅が300または高さが400になります)
convert.setFitToSize(new int[] {300,400});
try {
if (convert.openPDFFile()) {
for (int page = 1; page <= convert.getPageCount(); page++) {
final BufferedImage bi = convert.getPageAsImage(page);
final File out = new File("outputFolder" + page + ".tiff");
JDeli.write(bi, OutputFormat.TIFF, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
ConvertPagesToImages convert = new ConvertPagesToImages("inputFile.pdf");
convert.setPageScaling(1.33f); //Acrobatの100%と同じサイズになります
try {
if (convert.openPDFFile()) {
for (int page = 1; page <= convert.getPageCount(); page++) {
final BufferedImage bi = convert.getPageAsImage(page);
final File out = new File("outputFolder" + page + ".tiff");
JDeli.write(bi, OutputFormat.TIFF, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
ConvertPagesToImages convert = new ConvertPagesToImages("inputFile.pdf");
convert.setPassword("password");
try {
if (convert.openPDFFile()) {
for (int page = 1; page <= convert.getPageCount(); page++) {
final BufferedImage bi = convert.getPageAsImage(page);
final File out = new File("outputFolder" + page + ".tiff");
JDeli.write(bi, OutputFormat.TIFF, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
アップスケーリングやPDFからTIFFへの変換をより複雑に制御したい場合は、ConvertPagesToHiResImages クラスに多数の追加オプション があります
