Link
Skip to main content

PDF 转 HEIC

JPedal 提供了多种方法,可将单个 PDF 文件或包含多个 PDF 文件的目录转换为 HEIC 格式。Java 示例使用了 ConvertPagesToImages 类和 HeicEncoderOptions 类。

从命令行或其他语言将 PDF 转换为 HEIC

将所有页面转换为图像

java -jar jpedal.jar --convert "inputFileOrFolder" "outputFolder" heic

你还可以提供不同的设置来调整转换过程。

java -jar jpedal.jar --convert "inputFileOrFolder" "outputFolder" heic ScalingAsFloat 
java -jar jpedal.jar --convert "inputFileOrFolder" "outputFolder" heic ScalingAsFloat PageRange

以下详细介绍这些命名变量的用法:

  • ScalingAsFloat:一个浮点数值,用于指定应用于输出的缩放比例。它是视图缩放比例除以 100 后的值,例如,150% 的缩放比例对应的值为 1.5。
  • PageRange:要转换的页面范围。其遵循与 SetOfIntegerSyntax 相同的规则。 它可以是一系列用逗号分隔的值,这些值可以是单个页码,也可以是用连字符表示的两个数值之间的范围。例如,“1,3,4 - 7” 表示转换第 1、3、4、5、6、7 页。

使用便捷静态方法在 Java 中将 PDF 转换为 HEIC 格式

ConvertPagesToImages.writeAllPagesAsImagesToDir(
        "inputFileOrFolder",
        "outputFolder",
        "heic",
        1.33f);

在 Java 中转换 PDF 为 HEIC 格式,并可控制图像输出

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 + ".heic");
            // 设置控制输出的代码 
            final HeicEncoderOptions options = new HeicEncoderOptions();
            JDeli.write(bi, options, out);
        }
    }
} catch (PdfException | IOException e) {
    e.printStackTrace();
} catch (Exception e) {
    e.printStackTrace();
}

convert.closePDFfile();

在 Java 中通过控制输出的页面范围,将 PDF 转换为 HEIC 格式

ConvertPagesToImages convert = new ConvertPagesToImages("inputFile.pdf");
// setPageRange 允许您选择所需的页面,可以使用 '-' 或 ':' 表示范围,  
// 使用 ',' 表示下一个范围,或者您可以简单地设置为 null 来选择所有页面。
convert.setPageRange(new PageRanges("1-5,8:10,15")); 
// 上述设置将为我们提供第1到第5页(包括第1页和第5页)、第8到第10页(包括第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 + ".heic");
                JDeli.write(bi, options, out);  
            } catch (Exception e) {
                e.printStackTrace();
            }
       });  
    }
} catch (PdfException e) {
    e.printStackTrace();
}                  

convert.closePDFfile();

在 Java 中通过控制输出图像的尺寸,将 PDF 转换为 HEIC 格式的缩略图

ConvertPagesToImages.writeAllPagesAsImagesToDir(
        "inputFileOrFolder",
        "outputFolder",
        "heic",
        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 + ".heic");
            JDeli.write(bi, OutputFormat.HEIC, out);           
        }
    }
} catch (PdfException | IOException e) {
    e.printStackTrace();
} catch (Exception e) {
    e.printStackTrace();
}

convert.closePDFfile();

在 Java 中通过控制缩放比例,将 PDF 转换为 HEIC 格式的缩略图

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 + ".heic");
            JDeli.write(bi, OutputFormat.HEIC, out);           
        }
    }
} catch (PdfException | IOException e) {
    e.printStackTrace();
}  catch (Exception e) {
    e.printStackTrace();
}

convert.closePDFfile();

在 Java 中将受密码保护的 PDF 文件转换为 HEIC 格式

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 + ".heic");
            JDeli.write(bi, OutputFormat.HEIC, out); 
        }
    }
} catch (PdfException | IOException e) { 
    e.printStackTrace(); 
}  catch (Exception e) {
    e.printStackTrace();
}

convert.closePDFfile();

如果你希望对 PDF 到 HEIC 格式的转换进行放大处理或实施更复杂的控制,ConvertPagesToHiResImages 类提供了许多额外的选项


为什么选择 JPedal?

  • 定期更新的商业库,提供全面支持且无第三方依赖项。
  • 处理 PDF 文件的速度比其他 Java PDF 库快达 3 倍。
  • 为原始设备制造商(OEM)用户提供简单的许可选项和源代码访问权限。

免费试用


Customer Downloads

Select Download