lhdye 2024-09-27 19:22 采纳率: 0%
浏览 40
已结题

java linux下将docx文件转pdf

linux环境下用java代码怎么把wps的
docx文件转成pdf文件,网上的方法都试过了,
要么报不能用cmd,要么就是只能读office的
doc。崩溃了TT

  • 写回答

16条回答 默认 最新

  • 阿里嘎多学长 2024-09-27 19:23
    关注

    AIGC生成:


    Java下将docx文件转pdf

    你遇到的问题是:在Linux环境下使用Java代码将WPS的docx文件转换为pdf文件,但是你尝试过的方法都失败了,可能是因为cmd命令无法使用或只能读取Office的doc文件。

    解决方案:

    1. 使用Apache POI库:Apache POI是一个Java库,用于读取和写入Microsoft Office文件,包括docx和pdf。可以使用POI库将docx文件转换为pdf文件。
    import org.apache.poi.xwpf.usermodel.XWPFDocument;
    import org.apache.poi.xwpf.usermodel.XWPFParagraph;
    import org.apache.poi.xwpf.usermodel.XWPFRun;
    import org.apache.pdfbox.pdmodel.PDDocument;
    import org.apache.pdfbox.pdmodel.PDPage;
    import org.apache.pdfbox.pdmodel.PDPageContentStream;
    import org.apache.pdfbox.pdmodel.font.PDFont;
    import org.apache.pdfbox.pdmodel.font.PDFontFactory;
    
    public class DocxToPdf {
        public static void main(String[] args) throws Exception {
            // 读取docx文件
            XWPFDocument doc = new XWPFDocument(new FileInputStream("input.docx"));
    
            // 创建pdf文件
            PDDocument pdf = new PDDocument();
            PDPage page = pdf.addPage();
            PDPageContentStream contentStream = new PDPageContentStream(pdf, page);
    
            // 遍历docx文件中的paragraph
            for (XWPFParagraph paragraph : doc.getParagraphs()) {
                // 遍历paragraph中的run
                for (XWPFRun run : paragraph.getRuns()) {
                    // 获取run中的文本
                    String text = run.getText(0);
    
                    // 设置字体
                    PDFont font = PDFontFactory.createFont("Helvetica");
                    contentStream.beginText();
                    contentStream.setFont(font, 12);
                    contentStream.showText(text);
                    contentStream.endText();
                }
            }
    
            // 保存pdf文件
            pdf.save("output.pdf");
            pdf.close();
        }
    }
    
    1. 使用iText库:iText是一个Java库,用于生成和处理PDF文件。可以使用iText库将docx文件转换为pdf文件。
    import com.itextpdf.text.Document;
    import com.itextpdf.text.DocumentException;
    import com.itextpdf.text.Paragraph;
    import com.itextpdf.text.pdf.PdfWriter;
    
    public class DocxToPdf {
        public static void main(String[] args) throws DocumentException {
            // 读取docx文件
            XWPFDocument doc = new XWPFDocument(new FileInputStream("input.docx"));
    
            // 创建pdf文件
            Document pdf = new Document();
            PdfWriter writer = PdfWriter.getInstance(pdf, new FileOutputStream("output.pdf"));
    
            // 遍历docx文件中的paragraph
            for (XWPFParagraph paragraph : doc.getParagraphs()) {
                // 遍历paragraph中的run
                for (XWPFRun run : paragraph.getRuns()) {
                    // 获取run中的文本
                    String text = run.getText(0);
    
                    // 添加文本到pdf文件
                    pdf.add(new Paragraph(text));
                }
            }
    
            // 保存pdf文件
            pdf.close();
        }
    }
    

    这两个解决方案都可以将docx文件转换为pdf文件,但是需要注意的是,POI库需要安装Apache POI库,iText库需要安装iText库。


    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月28日
  • 创建了问题 9月27日