在Java中以编程方式或任何开源库将doc转换为pdf或doc转换为docx

时间:2019-12-03 13:47:12

标签: java pdf apache-poi

我想将 doc 文件转换为 pdf

是否有任何开源库可以帮助将 .doc 文件转换为 pdf 或 将 .doc 文件转换为 .docx

我成功地将下面的 docx 文件转换为 pdf (包含所有文字数据),如下所示:

package com.test.pdf.export;

import java.io.*;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

import fr.opensagres.poi.xwpf.converter.pdf.PdfConverter;
import fr.opensagres.poi.xwpf.converter.pdf.PdfOptions;

public class DocToPDF {
    public static void main(String[] args) {
        try{
            InputStream in= new FileInputStream(new File("sample.docx"));
            XWPFDocument document = new XWPFDocument(in);
            PdfOptions options = PdfOptions.create();
            OutputStream out = new FileOutputStream(new File("sample.pdf"));
            PdfConverter.getInstance().convert(document, out, options);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

还能够将doc文件转换为pdf(仅包含TEXT内容),下面是代码

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

import fr.opensagres.poi.xwpf.converter.pdf.PdfConverter;
import fr.opensagres.poi.xwpf.converter.pdf.PdfOptions;

public class DocToPDF_Old_Format {

    public static void main(String[] args) {
        method1();
    }

    private static void method1() {
        String k = null;
        OutputStream fileForPdf = null;
        try {
            String fileName = "sample.doc";
            // Below Code is for .doc file
            if (fileName.endsWith(".doc")) {
                HWPFDocument doc = new HWPFDocument(new FileInputStream(fileName));
                WordExtractor we = new WordExtractor(doc);
                k = we.getText();
                fileForPdf = new FileOutputStream(new File("sample.pdf"));
                we.close();
            }

            Document document = new Document();
            PdfWriter.getInstance(document, fileForPdf);
            document.open();
            document.add(new Paragraph(k));
            document.close();
            fileForPdf.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

现在我想获取文档文件中存在的所有数据,包括文本,图像等。

我的要求也是无需安装办公软件,并且应开源

0 个答案:

没有答案