学习
实践
活动
专区
工具
TVP
写文章
专栏首页开发随笔1PDF转Word完全指南:3大方法满足各种场景!
原创

PDF转Word完全指南:3大方法满足各种场景!

还不知道PDF怎么转Word吗,本文将提供完整的PDF转Word方案,包括离线、在线或者SDK API等各种方式,总有一款满足您的需求。

什么是PDF转Word?

PDF是出版和图形领域的软件厂商Adobe制定的电子文档格式标准。PDF转Word就是把PDF文档中的文字,图片,表格,注释等等文档元素相对应的转换成Word文档中相对应的文档元素。

所谓PDF转Word就是指从PDF格式文档中提取文字、图形和及其它内容并放入Word或者其他格式文档中(也可以是其他文件格式,如Excel/PPT/HTML/IMAGE等),无需重新排版,支持图文混合排版,因此你就能重复利用你的PDF文档内容,在Word中再编辑或者重整布局。

PDF文档为什么需要转成Word?

PDF是一种适合分享传播的文件格式,跨平台打开能够保持一致性,很受用户欢迎。但是PDF文档很难进行编辑修改,如果您需要对PDF进行编辑,就需要将PDF转换为WORD,转换后用WPS或者Office就可以进行编辑修改了。

如果您对PDF的文件格式感兴趣,可以看下PDF科普文章,详细了解一下。

PDF转Word的三大方法

PDF转Word一般来说有三种方式,下面我们就来一一介绍下吧,您可以根据需要选用不同的方式。

1. 传统PC端软件PDF转Word

本方法就是下载一个PDF软件到桌面,并安装。安装之后就可以离线使用了。

你可以下载Adobe Acrobat Pro试用版 ,有7天的免费试用期,Acrobat Pro一次性费用大概1800元左右

Aodbe公司是PDF标准的制定者,Acrobat Pro功能强大,除了贵没有太多毛病

适用人群和场景:

如果您对PDF处理的准确性和性能要求很高,高频对PDF进行各种处理,对数据安全要求页比较高,而且不差钱,可以购买Acrobat Pro

Acrobat Pro的PDF转Word功能比较强大,转换的效果还原度很高,基本上可以做到99.9%的还原效果

2. 在线转换或者小程序转换PDF文档

在线的PDF处理,就是在网站或者小程序上直接上传PDF文件,在线处理完毕之后,下载到本地。

目前在线的PDF处理有免费和收费两种,收费的一般开放一个小额的试用,比如1兆大小,10页等,然后引导到收费。免费的一般没有太多限制。

拿 pdf88.cn上的PDF转Word来说,这是一个完美免费的PDF转Word工具,只需要4步就能实现PDF在线转换。

第一步:打开PDF工具箱 PDF转Word

第二步:上传PDF文件

通过选择文件或者将PDf文件拖拽到上述区域(支持doc或者docx格式的word文件)

可以上传1个或者多个PDF文件

第三步点击转换为Word按钮

第四步下载

看到没有,已经成功转为为docx的word格式,里面的文本、图片都可以随意编辑修改。Perfect!

在线PDF转Word的效果如何?

目前来说,只有Adobe原生的Acrobat软件对PDF的编辑、转Word是最完美、损耗最少的。

但是Acrobat只适合不差钱的大公司,一般用户都会选择免费的PDF转换器来进行转换,我们来对比下各种PDF格式下转换的效果如何(图片、表格、注释等)

我们来对比下不同PDF下的word转换效果

1. 纯文本+图片类型的

上面的示例就是纯文本+图片格式的,转换效果还是不错的,字体大小、颜色、布局、图片位置等,基本无差别的

2.带有简单表格的PDF文档

怎么样,效果还是不错的吧,完美还原了表格,100%可编辑

3.复杂表格和混合编排的PDF

看完了纯文本和表格,我们来看下更复杂点的例子

具体转换效果对比可以查看上一篇文章

适用人群和场景:

在线PDF转换Word需要在线使用,一般是对数据安全没有非常强的诉求,同时非高频的PDF处理编辑,而且对价格比较敏感,那么PDF88的各种处理工具,能够满足您大部分的PDF处理诉求。

3. 技术派:三方类库或者API实现PDF转Word

技术派的PDF处理就是用第三方类库或者OpenAPI,对pdf进行处理,一般是需要批量自动的处理PDF文件时,通过类库和API就能大量的减少时间。目前PDF的处理类库较多,我们选择几个有代表的来说下。

开源类库

pdfbox Java类库

PDFBox是一个BSD许可下的源码开放项目,为开发人员读取和创建PDF文档而准备的纯Java类库。

地址在 https://pdfbox.apache.org/ 社区比较活跃,更新速度较快

代码示例

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

import java.io.*;

public class PDFToWord {
    public static void main(String[] args) {
        try {
            //input file
            String pdfFile = "test.pdf";
            //load pdf
            PDDocument doc = PDDocument.load(new File(pdfFile));
            //get pdf number
            int pagenumber = doc.getNumberOfPages();

            String fileName="word.doc";
            File file = new File(fileName);
            if (!file.exists()) {
                file.createNewFile();
            }
            FileOutputStream fos = new FileOutputStream(fileName);
            
            Writer writer = new OutputStreamWriter(fos, "UTF-8");
            PDFTextStripper stripper = new PDFTextStripper();
            stripper.setSortByPosition(true);
            stripper.setStartPage(1);
            stripper.setEndPage(pagenumber);
            stripper.writeText(doc, writer);
            writer.close();
            doc.close();
            System.out.println("pdf转word done!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

pdfbox 转换效果一般,对复杂的PDF格式,还原度较差,感兴趣的可以自己测试下!

itext Java类库

iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。

iText的安装非常方便,下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了。或者直接在mavan中引入坐标

地址 https://github.com/itext/itext7

同时itext也有收费的版本 还有一个.net的itext版本

代码

import java.io.File;
import java.io.FileOutputStream;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
import com.lowagie.text.Document;
import com.lowagie.text.Paragraph;
import com.lowagie.text.rtf.RtfWriter2;

public class ReadPdfFile {

public static void main(String[] args) {
    try {

        Document document = new Document();

        File  file = new File("file.doc");
        if(!file.exists())
            file.createNewFile();

        RtfWriter2.getInstance(document, new FileOutputStream("file.doc"));
        System.out.println("file created");
        document.open();

    PdfReader reader = new PdfReader("test.jar");
    int n = reader.getNumberOfPages();
    System.out.println("total no of pages:::"+n);
    String s="";
    for(int i=1;i<=n;i++)
    {

        s=PdfTextExtractor.getTextFromPage(reader, i);


        System.out.println("string:::"+s);
        System.out.println("====================");

        document.add(new Paragraph(s));
        document.newPage();
    }
    document.close();
    System.out.println("completed");
    } catch (Exception de) {}
    }

}

pdf.js JavaScript类库

准确的说pdf.js更多的用户前端的PDF展示和渲染,提供了pdf的读写api

地址 https://github.com/mozilla/pdf.js#online-demo

如果您要用来生成PDF,需要做大量的额外工作,不建议使用!

收费类库:

说完了免费的开源类库,下面说说收费的PDF类库。

开源类库效果一般,处理复杂的图标格式的PDF 有点力不从心,收费PDF是商业化软件,可以处理复杂的格式文件,但一般费用比较高,用于商业化用途较多。

aspose

Aspose 是一家致力于办公组件的提供商,数千机构都有用过aspose组件,包括微软、IBM、普华永道、安永、杜邦、希尔顿酒店、读者文摘、美洲银行、波音、西门子等。Aspose目前旗下一共有41个控件,Aspose.Total是它的总套包。

能够用来处理PDF的是Aspose.PDF 工具包,支持java .net C++等,价格昂贵,一个授权1199美金起!

import com.aspose.pdf.DocSaveOptions;
import com.aspose.pdf.Document;
import com.aspose.pdf.SaveFormat;
import com.aspose.pdf.examples.Utils;

public class ConvertPDFToDOCOrDOCXFormat {


    public static void main(String[] args) {
        runExamples();
    }
    public static void runExamples() {
        // The paths to resources and output directories.
        String testID = "com/aspose/pdf/examples/AsposePdf/Conversion/pdftodoc/";
        String dataDir = Utils.getDataDir(testID);
        String outputDir = Utils.getOutDir(testID);

        System.out.println("============================");
        System.out.println("Example savingToDoc start");
        savingToDoc(dataDir, outputDir);
        System.out.println("Example savingToDoc end");

        System.out.println("============================");
        System.out.println("Example savingToDOCX start");
        savingToDOCX(dataDir, outputDir);
        System.out.println("Example savingToDOCX end");

        System.out.println("============================");
        System.out.println("Example usingTheDocSaveOptionsClass start");
        usingTheDocSaveOptionsClass(dataDir, outputDir);
        System.out.println("Example usingTheDocSaveOptionsClass end");
    }

    public static void savingToDoc(String dataDir, String outputDir) {
        // Open the source PDF document
        Document pdfDocument = new Document(dataDir + "input2.pdf");
        // Save the file into Microsoft document format
        pdfDocument.save(outputDir + "TableHeightIssue.doc", SaveFormat.Doc);
    }

    public static void savingToDOCX(String dataDir, String outputDir) {
        // Load source PDF file
        Document doc = new Document(dataDir + "input.pdf");
        // Instantiate Doc SaveOptions instance
        DocSaveOptions saveOptions = new DocSaveOptions();
        // Set output file format as DOCX
        saveOptions.setFormat(DocSaveOptions.DocFormat.DocX);
        // Save resultant DOCX file
        doc.save(outputDir + "savingToDOCX.docx", saveOptions);
    }

    public static void usingTheDocSaveOptionsClass(String dataDir, String outputDir) {
        // Open a document
        // Path of input PDF document
        String filePath = dataDir + "source.pdf";
        // Instantiate the Document object
        Document document = new Document(filePath);
        // Create DocSaveOptions object
        DocSaveOptions saveOption = new DocSaveOptions();
        // Set the recognition mode as Flow
        saveOption.setMode(DocSaveOptions.RecognitionMode.Flow);
        // Set the Horizontal proximity as 2.5
        saveOption.setRelativeHorizontalProximity(2.5f);
        // Enable the value to recognize bullets during conversion process
        saveOption.setRecognizeBullets(true);
        // Save the resultant DOC file
        document.save(outputDir + "usingTheDocSaveOptionsClass.doc", saveOption);
    }

}

pdf-tools

pdf-tools是一家瑞士的pdf解决方案服务商,提供了pdf sdk的整合方案!

PDF-tools支持30天免费试用,支持java .net c++等多种语言,大家可以下载下来自己试用下!

pdftron

PDFTron SDK是一个技术平台,为任何软件提供PDF、CAD和MS Office功能。这是构建文档功能的一种更简单、更快的方式,使您的开发人员更高效,用户更快乐。和Aspose类似

代码案例

Convert.WordOutputOptions wordOutputOptions = new Convert.WordOutputOptions();

// Optionally convert only the first page
wordOutputOptions.setPages(1, 1);

// Requires the Structured Output module
Convert.toWord(filename, output_filename, wordOutputOptions);

foxit-pdf

foxit是一家专门从事PDF解决方案的供应商,为了实现成为PDF解决方案第一品牌的愿景,Foxit满足了三个不同细分市场的需求。

foxit的高性能库使用最流行的开发人员语言和环境,为所有平台的企业、移动和云应用程序添加了强大的PDF功能。

结论:

PDF的解决方案,基本上就是上述三种,当然,每一种都有非常多的服务提供商,篇幅关系,没有一一列出。

大家可以根据自己的需要,选择不同的方案来使用!

如果是企业用户,对数据安全比较敏感,不差钱,建议 用adobe官方的Acrobat Pro

如果是个人用户,或者企业中对PDF处理不频繁,在线的处理工具就足够了,比如pdf88.cn提供了主流的PDF处理服务。

如果对PDF有海量自动化处理的诉求,可以用SDK或者API来满足,小企业一般免费也差不多够了,如果追求性能,那就去购买昂贵的商业SDK,或者使用破解版的!

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

登录 后参与评论
0 条评论

相关文章

  • PDF to word for Mac(pdf转word转换器) v4.3.4激活版

    PDF转word Mac版可以将PDF文件导出到具有完全保留的原始文本,图像,布局,超链接,表格和贝塞尔曲线的完全格式化且可编辑的Microsoft Offic...

    浅巷墨漓cc
  • Flyingbee PDF to word for Mac(飞蜂pdf转word工具)

    飞蜂PDF转word Mac版可以将PDF文件导出到具有完全保留的原始文本,图像,布局,超链接,表格和贝塞尔曲线的完全格式化且可编辑的Microsoft Off...

    Mac精选
  • Word转EXcel格式不变,这点你get到了吗?

    在工作中,我们接触比较多的就是各种文档之间的相互转换,如Word转PDF,或者是Word转EXcel,很多人都有这样一个疑问,word转EXcel怎么转换格式才...

    高效办公
  • 初探JavaScript PDF blob转换为Word docx方法

    PDF 转Word 是一个非常非常普遍的需求,可谓人人忌危,为什么如此普遍的需求,却如此难行呢,还得看为什么会有这样的一个需求:

    葡萄城控件
  • 万能文件在线预览项目,开源!

    大家好,我是鱼皮,今天分享一个优秀的、100% 开源、持续更新的项目,拿来学习或者作为项目经历写在简历上都很不错。

    程序员鱼皮
  • 推荐几个堪比神器的网站,各个都能解决你的燃眉之急

    资源对大家很重要,在这个信息大爆炸的时代,大家想找一些资源,通过百度搜索并不能精准的找到想要的某个东西,且可能找到一些不相关的文件,在真正需要的时候找不到想要的...

    用户5552817
  • Qt框架简介

    截止至2020年8月,Qt的最新版本是5.15.0,但仍有很多资料是基于Qt4,为了避免大家误入歧途,所以写了这篇文章。

    全栈程序员站长
  • [电子书制作]Excel催化剂输出内容汇总PDF及Word版本分享

    同样地,为了减少大家过多繁琐的资料下载途径,电子书的下载路径和之前插件的下载路径不变,在公众号后台回复【插件下载】即可找到下载链接。

    Excel催化剂
  • 七个神奇的网站,让你的工作效率大幅度提升~~

    今天周六了,菜鸟小白带着家里一起去游乐场玩去了,所以今天没有办法给大家分享编程小项目了,今天就给大家推荐一些非常好用的网站吧。

    菜鸟小白的学习分享
  • 炸裂!PDF 转 Word 彻底告别收费时代,这款 OCR 开源神器要逆天!

    随着企业数字化进程不断加速,PDF 转 Word 的功能、纸质文本的电子化存储、文件复原与二次编辑、信息检索等应用都有着强烈的企业需求。目前市面上已有一些软件,...

    GitHubDaily
  • 让你高效工作的七大工具类网站

    让你高效工作的七大工具类网站 1 Smallpdf——最好的PDF在线无损转换工具 ? 对于专业的 PDF 工作者或 PDF 的重度使用者来说,目前比较流行的几...

    昱良
  • 前端生成PDF,让后端刮目相看

    PDF 全称Portable Document Format (PDF)(便携文档格式),该格式的显示与操作系统、分辨率、设备等因素没有关系,不论是在Windo...

    葡萄城控件
  • 如何多人协作编辑文档

    最近许多人私信留言在问我ONLYOFFICE多人协作编辑文档是怎么做到的,我来不及每个人都回复,所以写了个文章给大家简单介一下ONLYOFFICE多人协作的功能...

    用户10264843
  • 【专知荟萃16】主题模型Topic Model知识资料全集(基础/进阶/论文/综述/代码/专家,附PDF下载)

    Topic model 主题模型 专知荟萃 基础入门 进阶论文 更多Papers推荐 一些主题模型的应用场景 Papers for NLP Papers for...

    WZEARW
  • 强大、优秀的文件管理软件评测:图片管理、书籍管理、文献管理

    对于各种形形色色的效率生活人士而言,笔记管理和文件管理是建立自己知识管理系统的永恒主题。

    数字花园
  • 推荐5款快速制作完美PPT的办公软件

    哈喽,大家好,今天为大家推荐几款可以快速制作完美PPT的办公软件,相信大家在工作中都遇到过制作PTT的难题,到底哪些软件可以快速制作完美的PPT呢?跟随小编的脚...

    用户10264843
  • 免费ppt模板在线下载?盘点那些超好用的免费在线工具!

    hello,大家好,不知道大家电脑里装了多少软件,内存够不够,反正我是能不装就不装,能在线使用就在线使用,比如office,我就是用石墨文档替代,还有ppt编辑...

    LOGO设计小能手

扫码关注腾讯云开发者

领取腾讯云代金券