java 使用开源资源将text文件word文件excel文件转为pdf文件工具类以及所需依赖
时间: 2024-03-15 21:44:02 浏览: 90
java将特定文件转成pdf文件所需工具类
以下是一个基于 Apache POI 和 iText 库的转换工具类,内含文本、Word 和 Excel 文件转 PDF 的方法:
```
import java.io.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xwpf.usermodel.*;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;
public class ConvertUtils {
/**
* 将文本文件转为 PDF 文件
*
* @param inputFile 输入文件路径
* @param outputFile 输出文件路径
*/
public static void textToPDF(String inputFile, String outputFile) {
try {
// 读取文本文件
FileReader fr = new FileReader(inputFile);
BufferedReader br = new BufferedReader(fr);
// 创建 PDF 文件
FileOutputStream fos = new FileOutputStream(outputFile);
Document pdfDoc = new Document();
PdfWriter.getInstance(pdfDoc, fos);
pdfDoc.open();
// 将文本内容写入 PDF 文件
String line;
while ((line = br.readLine()) != null) {
pdfDoc.add(new Paragraph(line));
}
// 关闭文件流
pdfDoc.close();
br.close();
fr.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 将 Word 文件转为 PDF 文件
*
* @param inputFile 输入文件路径
* @param outputFile 输出文件路径
*/
public static void wordToPDF(String inputFile, String outputFile) {
try {
// 读取 Word 文件并转换为 PDF
FileInputStream fis = new FileInputStream(inputFile);
XWPFDocument document = new XWPFDocument(fis);
// 创建 PDF 文件
FileOutputStream fos = new FileOutputStream(outputFile);
Document pdfDoc = new Document();
PdfWriter.getInstance(pdfDoc, fos);
pdfDoc.open();
// 将 Word 文件内容写入 PDF 文件中
for (XWPFParagraph paragraph : document.getParagraphs()) {
pdfDoc.add(new Paragraph(paragraph.getText()));
}
// 关闭文件流
pdfDoc.close();
fis.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 将 Excel 文件转为 PDF 文件
*
* @param inputFile 输入文件路径
* @param outputFile 输出文件路径
*/
public static void excelToPDF(String inputFile, String outputFile) {
try {
// 读取 Excel 文件并转换为 PDF
FileInputStream fis = new FileInputStream(inputFile);
Workbook workbook = null;
if (inputFile.toLowerCase().endsWith("xlsx")) {
// 读取 Excel 2007+ 文件
workbook = new XSSFWorkbook(fis);
} else if (inputFile.toLowerCase().endsWith("xls")) {
// 读取 Excel 2003- 文件
workbook = new HSSFWorkbook(fis);
}
// 创建 PDF 文件
FileOutputStream fos = new FileOutputStream(outputFile);
Document pdfDoc = new Document();
PdfWriter.getInstance(pdfDoc, fos);
pdfDoc.open();
// 将 Excel 文件内容写入 PDF 文件中
for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
Sheet sheet = workbook.getSheetAt(i);
for (Row row : sheet) {
for (Cell cell : row) {
pdfDoc.add(new Paragraph(cell.getStringCellValue()));
}
}
}
// 关闭文件流
pdfDoc.close();
fis.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
上述代码中需要以下依赖:
1. Apache POI 库(版本 3.17 或更高):需要包含 poi.jar、poi-ooxml.jar、poi-ooxml-schemas.jar、xmlbeans.jar、commons-collections4.jar、commons-compress.jar、curvesapi.jar、ooxml-lib目录下的所有 jar 文件。
2. iText 库(版本 5.5.13 或更高):需要包含 itextpdf.jar 和 itext-asian.jar。
你可以在 Apache POI 和 iText 官网上下载这些依赖。
阅读全文