admin管理员组文章数量:1605308
教程
从 Maven 下载 Aspose.PDF
通过将以下配置添加到 pom.xml, 您可以直接从基于Maven的项目 轻松地使用Aspose.PDF for Java 。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>22.4</version>
</dependency>
核心代码实现(单类)
import com.aspose.pdf.Document;
import com.aspose.pdf.SaveFormat;
import com.aspose.pdf.TextAbsorber;
import com.aspose.pdf.devices.PngDevice;
import com.aspose.pdf.devices.Resolution;
import java.io.*;
public class PDFHelper3 {
public static void main(String[] args) throws IOException {
pdf2txt("C:\\Users\\liuya\\Desktop\\pdf\\示例文件.pdf");
}
//转word
public static void pdf2word(String pdfPath) {
long old = System.currentTimeMillis();
try {
String wordPath = pdfPath.substring(0, pdfPath.lastIndexOf(".")) + ".docx";
FileOutputStream os = new FileOutputStream(wordPath);
Document doc = new Document(pdfPath);
doc.save(os, SaveFormat.DocX);
os.close();
//转化用时
long now = System.currentTimeMillis();
System.out.println("Pdf 转 Word 共耗时:" + ((now - old) / 1000.0) + "秒");
} catch (Exception e) {
System.out.println("Pdf 转 Word 失败...");
e.printStackTrace();
}
}
//转ppt
public static void pdf2ppt(String pdfPath) {
long old = System.currentTimeMillis();
try {
//新建一个word文档
String wordPath = pdfPath.substring(0, pdfPath.lastIndexOf(".")) + ".pptx";
FileOutputStream os = new FileOutputStream(wordPath);
//doc是将要被转化的word文档
Document doc = new Document(pdfPath);
//全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换
doc.save(os, SaveFormat.Pptx);
os.close();
//转化用时
long now = System.currentTimeMillis();
System.out.println("Pdf 转 PPT 共耗时:" + ((now - old) / 1000.0) + "秒");
} catch (Exception e) {
System.out.println("Pdf 转 PPT 失败...");
e.printStackTrace();
}
}
//转excel
public static void pdf2excel(String pdfPath) {
long old = System.currentTimeMillis();
try {
String wordPath = pdfPath.substring(0, pdfPath.lastIndexOf(".")) + ".xlsx";
FileOutputStream os = new FileOutputStream(wordPath);
Document doc = new Document(pdfPath);
doc.save(os, SaveFormat.Excel);
os.close();
long now = System.currentTimeMillis();
System.out.println("Pdf 转 EXCEL 共耗时:" + ((now - old) / 1000.0) + "秒");
} catch (Exception e) {
System.out.println("Pdf 转 EXCEL 失败...");
e.printStackTrace();
}
}
//转html
public static void pdf2Html(String pdfPath) {
long old = System.currentTimeMillis();
try {
String htmlPath = pdfPath.substring(0, pdfPath.lastIndexOf(".")) + ".html";
Document doc = new Document(pdfPath);
doc.save(htmlPath, SaveFormat.Html);
long now = System.currentTimeMillis();
System.out.println("Pdf 转 HTML 共耗时:" + ((now - old) / 1000.0) + "秒");
} catch (Exception e) {
System.out.println("Pdf 转 HTML 失败...");
e.printStackTrace();
}
}
//转图片
public static void pdf2image(String pdfPath) {
long old = System.currentTimeMillis();
try {
Resolution resolution = new Resolution(300);
String dataDir = pdfPath.substring(0, pdfPath.lastIndexOf("."));
File imageDir = new File(dataDir + "_images");
if (!imageDir.exists()) {
imageDir.mkdirs();
}
Document doc = new Document(pdfPath);
PngDevice pngDevice = new PngDevice(resolution);
for (int pageCount = 1; pageCount <= doc.getPages().size(); pageCount++) {
OutputStream imageStream = new FileOutputStream(imageDir + "/" + pageCount + ".png");
pngDevice.process(doc.getPages().get_Item(pageCount), imageStream);
imageStream.close();
}
long now = System.currentTimeMillis();
System.out.println("Pdf 转 PNG 共耗时:" + ((now - old) / 1000.0) + "秒");
} catch (Exception e) {
System.out.println("Pdf 转 PNG 失败...");
e.printStackTrace();
}
}
//转txt
public static void pdf2txt(String pdfPath) {
long old = System.currentTimeMillis();
Document pdfDocument = new Document(pdfPath);
TextAbsorber ta = new TextAbsorber();
ta.visit(pdfDocument);
String txtPath = pdfPath.substring(0, pdfPath.lastIndexOf(".")) + ".txt";
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(txtPath));
writer.write(ta.getText());
writer.close();
long now = System.currentTimeMillis();
System.out.println("Pdf 转 TXT 共耗时:" + ((now - old) / 1000.0) + "秒");
} catch (IOException e) {
System.out.println("Pdf 转 TXT 失败...");
e.printStackTrace();
}
}
}
运行方法,idea里右键运行,如果要做成web系统可以将代码封装程web服务,调用方法就行。
转换文件结果
以一个十四的pdf文件转化为例,大部分转换时间在10-12s,只有转ppt花费的时间久一点需要20s.可能pdf里面不是表格类的内容,所以转换excel文件后,样式差别会有点大,其他文件转换后样式和之前是保持一样的。
相关知识
Aspose.PDF 是一个功能强大的Java库,用于创建、操作和处理PDF文档。它提供了一系列丰富的API和功能,使得开发者能够轻松地生成高质量的PDF文件,进行PDF文档的编辑、转换、加密、签名等操作。下面对 Aspose.PDF 的主要功能进行详细解释。
-
创建和编辑PDF文档 Aspose.PDF 提供了创建和编辑PDF文档的功能。可以使用 API 来新建空白的 PDF 文档,并在其中添加页面、文本、图像、表格、链接、书签等元素。同时,还可以对已有的 PDF 文档进行修改,如添加、删除和替换页面,旋转、裁剪和缩放页面,修改文本内容,插入、删除和移动元素等。
-
导出和转换PDF文档 Aspose.PDF 支持将 PDF 文档导出为其他格式,如 Word、Excel、HTML、图像等。可以将 PDF 转换为可编辑的 Word 文档,以便进一步编辑和处理。也可以将 PDF 转换为 Excel 表格,从而方便数据分析和处理。此外,还可以将 PDF 转换为 HTML 文件或图像格式,以实现多种用途。
-
PDF 表单处理 Aspose.PDF 可以处理 PDF 表单,包括创建、填充和提取表单数据等操作。可以创建交互式的表单,包括文本域、复选框、单选框、下拉列表等表单字段。还可以将数据填充到表单中,并从已填充的表单中提取数据。
-
PDF 加密和解密 Aspose.PDF 提供了加密和解密 PDF 文档的功能,以确保文档的安全性和机密性。可以对 PDF 文档进行密码保护,并设置不同的权限,如阅读、编辑、打印等。同时,还可以解密已加密的 PDF 文档,以便进行后续的操作和处理。
-
数字签名和验证 Aspose.PDF 支持数字签名的添加和验证,确保文档的完整性和来源可信。可以使用数字证书对 PDF 文档进行签名,以标识签名者和验证签名的有效性。同时,还可以验证已签名的 PDF 文档,确保其未被篡改和伪造。
-
PDF 页面操作 Aspose.PDF 允许对 PDF 页面进行各种操作。可以合并多个 PDF 文档的页面,创建一个新的 PDF 文档。也可以拆分 PDF 文档,将单个页面保存为独立的 PDF 文件。此外,还可以裁剪页面、调整页面大小,添加页眉和页脚等。
-
图像处理和转换 Aspose.PDF 提供了对 PDF 中图像的处理和转换功能。可以提取 PDF 文档中的图像,并将其保存为常见的图像格式,如 JPEG、PNG 等。同时,也可以将现有的图像添加到 PDF 文档中,以丰富文档的内容。
-
文本提取和搜索 Aspose.PDF 允许从 PDF 文档中提取文本内容,并进行搜索操作。可以按关键词搜索文档中的文本,并获取匹配结果的位置和数量。此外,还可以提取指定区域的文本,以满足不同的需求。
总结: Aspose.PDF 是一个强大而全面的 Java 库,用于创建、编辑和处理 PDF 文档。它提供了丰富的功能和灵活的 API,可以轻松地生成高质量的 PDF 文件,进行各种 PDF 文档的编辑、转换、加密、签名等操作。通过 Aspose.PDF,开发者可以实现对 PDF 文档的创建、编辑、导出、表单处理、加密、签名、页面操作、图像处理、文本提取和搜索等多种功能,满足各种 PDF 处理的需求。
版权声明:本文标题:Java实现pdf转HTML | WORD | EXCEL | PPT | PNG | TXT 教程 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728480740a1160074.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论