admin管理员组

文章数量:1605313

教程

从 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 的主要功能进行详细解释。

  1. 创建和编辑PDF文档 Aspose.PDF 提供了创建和编辑PDF文档的功能。可以使用 API 来新建空白的 PDF 文档,并在其中添加页面、文本、图像、表格、链接、书签等元素。同时,还可以对已有的 PDF 文档进行修改,如添加、删除和替换页面,旋转、裁剪和缩放页面,修改文本内容,插入、删除和移动元素等。

  2. 导出和转换PDF文档 Aspose.PDF 支持将 PDF 文档导出为其他格式,如 Word、Excel、HTML、图像等。可以将 PDF 转换为可编辑的 Word 文档,以便进一步编辑和处理。也可以将 PDF 转换为 Excel 表格,从而方便数据分析和处理。此外,还可以将 PDF 转换为 HTML 文件或图像格式,以实现多种用途。

  3. PDF 表单处理 Aspose.PDF 可以处理 PDF 表单,包括创建、填充和提取表单数据等操作。可以创建交互式的表单,包括文本域、复选框、单选框、下拉列表等表单字段。还可以将数据填充到表单中,并从已填充的表单中提取数据。

  4. PDF 加密和解密 Aspose.PDF 提供了加密和解密 PDF 文档的功能,以确保文档的安全性和机密性。可以对 PDF 文档进行密码保护,并设置不同的权限,如阅读、编辑、打印等。同时,还可以解密已加密的 PDF 文档,以便进行后续的操作和处理。

  5. 数字签名和验证 Aspose.PDF 支持数字签名的添加和验证,确保文档的完整性和来源可信。可以使用数字证书对 PDF 文档进行签名,以标识签名者和验证签名的有效性。同时,还可以验证已签名的 PDF 文档,确保其未被篡改和伪造。

  6. PDF 页面操作 Aspose.PDF 允许对 PDF 页面进行各种操作。可以合并多个 PDF 文档的页面,创建一个新的 PDF 文档。也可以拆分 PDF 文档,将单个页面保存为独立的 PDF 文件。此外,还可以裁剪页面、调整页面大小,添加页眉和页脚等。

  7. 图像处理和转换 Aspose.PDF 提供了对 PDF 中图像的处理和转换功能。可以提取 PDF 文档中的图像,并将其保存为常见的图像格式,如 JPEG、PNG 等。同时,也可以将现有的图像添加到 PDF 文档中,以丰富文档的内容。

  8. 文本提取和搜索 Aspose.PDF 允许从 PDF 文档中提取文本内容,并进行搜索操作。可以按关键词搜索文档中的文本,并获取匹配结果的位置和数量。此外,还可以提取指定区域的文本,以满足不同的需求。

总结: Aspose.PDF 是一个强大而全面的 Java 库,用于创建、编辑和处理 PDF 文档。它提供了丰富的功能和灵活的 API,可以轻松地生成高质量的 PDF 文件,进行各种 PDF 文档的编辑、转换、加密、签名等操作。通过 Aspose.PDF,开发者可以实现对 PDF 文档的创建、编辑、导出、表单处理、加密、签名、页面操作、图像处理、文本提取和搜索等多种功能,满足各种 PDF 处理的需求。

本文标签: 教程htmlwordJavaPDF