Java将word、excel文件转成pdf文件

简介: 【5月更文挑战第26天】Java将word、excel文件转成pdf文件

要在Java中将Word和Excel文件转换为PDF,你可以使用一些开源库来实现这个目标。以下是使用Apache POI和Apache PDFBox库的一些示例代码:

将Word文档转为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 java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class WordToPdfConverter {
   
    public static void main(String[] args) {
   
        try {
   
            // Load the Word document
            FileInputStream fis = new FileInputStream("input.docx");
            XWPFDocument document = new XWPFDocument(fis);

            // Create PDF document
            PDDocument pdfDocument = new PDDocument();
            PDPage page = new PDPage();
            pdfDocument.addPage(page);

            // Write Word content to PDF
            PDPageContentStream contentStream = new PDPageContentStream(pdfDocument, page);
            for (XWPFParagraph paragraph : document.getParagraphs()) {
   
                for (XWPFRun run : paragraph.getRuns()) {
   
                    contentStream.beginText();
                    contentStream.newLineAtOffset(100, 700); // Adjust coordinates as needed
                    contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
                    contentStream.showText(run.getText(0));
                    contentStream.endText();
                }
            }
            contentStream.close();

            // Save the PDF document
            FileOutputStream fos = new FileOutputStream("output.pdf");
            pdfDocument.save(fos);
            pdfDocument.close();
            fis.close();
            fos.close();

            System.out.println("Word to PDF conversion successful.");
        } catch (IOException e) {
   
            e.printStackTrace();
        }
    }
}

将Excel文档转为PDF:

import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelToPdfConverter {
   
    public static void main(String[] args) {
   
        try {
   
            // Load the Excel document
            FileInputStream fis = new FileInputStream("input.xlsx");
            XSSFWorkbook workbook = new XSSFWorkbook(fis);

            // Create PDF document
            PDDocument pdfDocument = new PDDocument();
            PDPage page = new PDPage();
            pdfDocument.addPage(page);

            // Write Excel content to PDF
            PDPageContentStream contentStream = new PDPageContentStream(pdfDocument, page);
            // Your logic to extract and write Excel content to PDF

            contentStream.close();

            // Save the PDF document
            FileOutputStream fos = new FileOutputStream("output.pdf");
            pdfDocument.save(fos);
            pdfDocument.close();
            fis.close();
            fos.close();

            System.out.println("Excel to PDF conversion successful.");
        } catch (IOException e) {
   
            e.printStackTrace();
        }
    }
}

请注意,以上代码只是基本示例,具体的转换逻辑需要根据文档的结构和内容进行调整。

目录
相关文章
|
5天前
|
Java 数据库 数据安全/隐私保护
Java操作Excel文件导入导出【内含有 jxl.jar 】
Java操作Excel文件导入导出【内含有 jxl.jar 】
20 0
|
1天前
|
Java easyexcel
java开发excel导入导出工具类基于EasyExcel
java开发excel导入导出工具类基于EasyExcel
7 1
|
2天前
|
XML Java 数据格式
Java用xpdf库获取pdf文件的指定范围文本内容
Java用xpdf库获取pdf文件的指定范围文本内容
12 1
|
12天前
|
Java Maven
Java 怎样从 excel 中读取文件、写入文件
Java 怎样从 excel 中读取文件、写入文件
14 0
|
1月前
|
前端开发 Java
基于Java爬取微博数据(二) 正文长文本+导出数据Excel
【5月更文挑战第12天】基于Java爬取微博数据,正文长文本+导出数据Excel
|
1月前
|
Java
java导出复杂excel
java导出复杂excel
|
8月前
|
Java Maven
【Java用法】使用EasyPoi导入与导出Excel文档的解决方案
【Java用法】使用EasyPoi导入与导出Excel文档的解决方案
195 0
|
10月前
|
Java easyexcel 数据库
Java 使用线程把数据库导出为excel
这是一个demo,内有不足请谅解
118 0
|
12月前
|
前端开发 Java API
Java原样导出excel模板
Java原样导出excel模板
111 0