[Java 实现pdf转excel ]

您所在的位置:网站首页 java中excel转pdf [Java 实现pdf转excel ]

[Java 实现pdf转excel ]

2024-01-13 05:50| 来源: 网络整理| 查看: 265

目录

前言:

Apache POI和pdfbox库实现pdf转excel的详细代码实现:

综上所述:

Java实现iText pdf转excel详细代码实现

综上所述:

依赖:

前言:

  笔记而已

Apache POI和pdfbox库实现pdf转excel的详细代码实现: import java.io.File; import java.io.FileInputStream; import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class PdfToExcelConverter { public static void main(String[] args) { String pdfFilePath = "sample.pdf"; String excelFilePath = "output.xlsx"; try { String pdfText = getPdfText(pdfFilePath); writeTextToExcel(pdfText, excelFilePath); System.out.println("PDF successfully converted to Excel!"); } catch (IOException e) { e.printStackTrace(); } } private static String getPdfText(String pdfFilePath) throws IOException { PDDocument pdfDoc = PDDocument.load(new FileInputStream(new File(pdfFilePath))); PDFTextStripper stripper = new PDFTextStripper(); String pdfText = stripper.getText(pdfDoc); pdfDoc.close(); return pdfText; } private static void writeTextToExcel(String pdfText, String excelFilePath) throws IOException { boolean isXlsx = excelFilePath.endsWith(".xlsx"); Workbook workbook = isXlsx ? new XSSFWorkbook() : new HSSFWorkbook(); Sheet sheet = workbook.createSheet("Sheet1"); String[] lines = pdfText.split("\n"); int rowIndex = 0; for (String line : lines) { Row row = sheet.createRow(rowIndex++); String[] cells = line.split(" "); int cellIndex = 0; for (String cellValue : cells) { Cell cell = row.createCell(cellIndex++); cell.setCellValue(cellValue); } } workbook.write(new File(excelFilePath)); workbook.close(); } } 综上所述: 通过pdfbox库获取pdf文件的文本内容。使用Apache POI创建一个Excel工作簿对象和一个工作表对象。将pdf文本内容逐行添加到工作表中的单元格中。将工作簿写入Excel文件中。

Java实现iText pdf转excel详细代码实现 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.parser.PdfTextExtractor; import com.itextpdf.text.pdf.parser.Vector; import com.itextpdf.text.pdf.parser.VectorParserListener; import com.itextpdf.text.pdf.parser.VectorRenderFilter; import com.itextpdf.text.pdf.parser.TextRenderInfo; import com.itextpdf.text.pdf.parser.RenderFilter; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.parser.PdfContentStreamProcessor; import com.itextpdf.text.pdf.parser.PdfRenderListener; import com.itextpdf.text.pdf.parser.PdfTextExtractor; import com.itextpdf.text.pdf.parser.RenderListener; import com.itextpdf.text.pdf.parser.TextRenderInfo; import com.itextpdf.text.pdf.parser.TextRenderInfo; import com.itextpdf.text.pdf.parser.Vector; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class PdfToExcelConverter { public static void main(String[] args) { try { String pdfFilePath = "sample.pdf"; String excelFilePath = "output.xlsx"; // 读取PDF文件 PdfReader reader = new PdfReader(new FileInputStream(pdfFilePath)); PdfContentStreamProcessor processor = new PdfContentStreamProcessor(new RenderListener() { private List lines = new ArrayList(); private String currentLine = ""; private boolean newLine = false; @Override public void renderText(TextRenderInfo renderInfo) { String text = renderInfo.getText(); Vector baseline = renderInfo.getBaseline().getStartPoint(); float x = baseline.get(Vector.I1); float y = baseline.get(Vector.I2); if (newLine || currentLine.isEmpty()) { currentLine = text; newLine = false; } else { currentLine += " " + text; } if (text.endsWith("\n")) { currentLine = currentLine.trim(); if (!currentLine.isEmpty()) { lines.add(currentLine); } currentLine = ""; newLine = true; } } @Override public void renderImage(ImageRenderInfo renderInfo) { } @Override public void endTextBlock() { } @Override public void beginTextBlock() { } }); for (int i = 1; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3