在 Java 中将 PDF 转换为 HTML
Contents
[
Hide
]
Aspose.PDF for Java 支持 HTML 导出,具有图像、SVG、页面拆分、透明度和图层渲染的选项。使用 HtmlSaveOptions 控制 PDF 页面、资源和标记写入 HTML 输出的方式。
将 PDF 转换为 HTML
当需要将 PDF 导出为标准 HTML 文档时,请使用此示例。
- 使用
Document实例打开源 PDF。 - 创建默认
HtmlSaveOptions用于标准 HTML 序列化。 - 调用
document.save(outputFile.toString(), saveOptions)因此,PDF 页面内容被导出为 HTML 标记。 - 保存生成的 HTML 输出。
public static void convertPdfToHtml(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
document.save(outputFile.toString(), saveOptions);
}
System.out.println(inputFile + " converted into " + outputFile);
}
将 PDF 转换为 HTML 并单独存储图像
在 HTML 导出期间,如果提取的图像应写入为单独的文件,请使用此示例。
- 使用
Document实例打开源 PDF。 - 创建
HtmlSaveOptions并设置setSpecialFolderForAllImages(...)到专用的图像输出目录。 - 调用
document.save(outputFile.toString(), saveOptions)因此,栅格图像会作为单独的资源文件输出,而不是仅内联输出。 - 将 HTML 输出连同生成的图像资源一起保存。
public static void convertPdfToHtmlStoringImages(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.setSpecialFolderForAllImages(inputFile.getParent().resolve("images").toString());
document.save(outputFile.toString(), saveOptions);
}
System.out.println(inputFile + " converted into " + outputFile);
}
将 PDF 转换为多页 HTML
当每个 PDF 页面应在 HTML 输出中单独呈现时,请使用此示例。
- 使用
Document实例打开源 PDF。 - 创建
HtmlSaveOptions并启用setSplitIntoPages(true)。 - 调用
document.save(outputFile.toString(), saveOptions)所以每个 PDF 页面都会被写成单独的 HTML 输出。 - 保存生成的 HTML 文件。
public static void convertPdfToHtmlMultiPage(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.setSplitIntoPages(true);
document.save(outputFile.toString(), saveOptions);
}
System.out.println(inputFile + " converted into " + outputFile);
}
将 PDF 转换为 HTML 并将 SVG 单独存储
当向量内容应作为单独的 SVG 资源输出时,请使用此示例。
- 使用
Document实例打开源 PDF。 - 创建
HtmlSaveOptions并设置setSpecialFolderForSvgImages(...)到外部 SVG 资源目录。 - 调用
document.save(outputFile.toString(), saveOptions)因此,矢量图形存储在主 HTML 文件之外。 - 保存 HTML 输出和 SVG 资源。
public static void convertPdfToHtmlStoringSvg(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.setSpecialFolderForSvgImages(inputFile.getParent().resolve("svg_images").toString());
document.save(outputFile.toString(), saveOptions);
}
System.out.println(inputFile + " converted into " + outputFile);
}
将 PDF 转换为带有压缩 SVG 的 HTML
在 HTML 导出时应优化 SVG 输出,请使用此示例。
- 使用
Document实例打开源 PDF。 - 创建
HtmlSaveOptions并为 SVG 资源配置专用文件夹。 - 启用
setCompressSvgGraphicsIfAny(true)因此,在导出过程中 SVG 资产会被压缩。 - 调用
document.save(outputFile.toString(), saveOptions)并保存转换后的 HTML 文件。
public static void convertPdfToHtmlCompressSvg(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.setSpecialFolderForSvgImages(inputFile.getParent().resolve("svg_images").toString());
saveOptions.setCompressSvgGraphicsIfAny(true);
document.save(outputFile.toString(), saveOptions);
}
System.out.println(inputFile + " converted into " + outputFile);
}
将 PDF 转换为带 PNG 页面背景的 HTML
当页面背景应在 HTML 输出中渲染为 PNG 图像时,请使用此示例。
- 使用
Document实例打开源 PDF。 - 创建
HtmlSaveOptions并将光栅图像保存模式设置为 PNG 页面背景。 - 调用
document.save(outputFile.toString(), saveOptions)因此,页面背景内容会以 PNG 支持的 HTML 层形式输出。 - 保存转换后的 HTML 输出。
public static void convertPdfToHtmlPngBackground(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.setRasterImagesSavingMode(
HtmlSaveOptions.RasterImagesSavingModes.AsEmbeddedPartsOfPngPageBackground);
document.save(outputFile.toString(), saveOptions);
}
System.out.println(inputFile + " converted into " + outputFile);
}
仅将 PDF 转换为 HTML 正文内容
当只需要正文标记而不是完整的 HTML 文档外壳时,请使用此示例。
- 使用
Document实例打开源 PDF。 - 创建
HtmlSaveOptions并将标记生成模式设置为WriteOnlyBodyContent。 - 保持
setSplitIntoPages(true)启用时,即使仅输出正文也应保持分页。 - 调用
document.save(outputFile.toString(), saveOptions)并保存 HTML 输出。
public static void convertPdfToHtmlBodyContent(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.setHtmlMarkupGenerationMode(
HtmlSaveOptions.HtmlMarkupGenerationModes.WriteOnlyBodyContent);
saveOptions.setSplitIntoPages(true);
document.save(outputFile.toString(), saveOptions);
}
System.out.println(inputFile + " converted into " + outputFile);
}
将 PDF 转换为 HTML,使用透明文本渲染
在需要在 HTML 导出中保留透明文本时,请使用此示例。
- 使用
Document实例打开源 PDF。 - 创建
HtmlSaveOptions并启用透明和带阴影文本的保留。 - 调用
document.save(outputFile.toString(), saveOptions)因此,透明度相关的文本外观在 HTML 结果中得以保留。 - 保存转换后的 HTML 输出。
public static void convertPdfToHtmlTransparentTextRendering(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.setSaveTransparentTexts(true);
saveOptions.setSaveShadowedTextsAsTransparentTexts(true);
document.save(outputFile.toString(), saveOptions);
}
System.out.println(inputFile + " converted into " + outputFile);
}
将 PDF 转换为带有文档层渲染的 HTML
当 PDF 图层可见性应在 HTML 结果中反映时,请使用此示例。
- 使用
Document实例打开源 PDF。 - 创建
HtmlSaveOptions并启用setConvertMarkedContentToLayers(true)。 - 调用
document.save(outputFile.toString(), saveOptions)因此标记的 PDF 内容被映射到 HTML 层。 - 保存导出的 HTML 文件。
public static void convertPdfToHtmlDocumentLayersRendering(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.setConvertMarkedContentToLayers(true);
document.save(outputFile.toString(), saveOptions);
}
System.out.println(inputFile + " converted into " + outputFile);
}