springboot 文档处理转换 PDF转Word 图片转Word PDF转Excel 图片转Excel PDF转图片 图片转PDF
在Spring Boot中,可以使用一些现有的Java库来处理和转换文档、图片和PDF文件。以下是一些常用的库和示例代码:
- PDF转Word:
- 使用Apache PDFBox库来提取PDF中的文本内容,然后使用Apache POI库将文本内容保存为Word文件。
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class PdfToWordConverter {
public static void convert(String pdfFilePath, String wordFilePath) throws IOException {
PDDocument document = PDDocument.load(new File(pdfFilePath));
PDFTextStripper stripper = new PDFTextStripper();
XWPFDocument wordDocument = new XWPFDocument();
XWPFParagraph paragraph = wordDocument.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText(stripper.getText(document));
FileOutputStream out = new FileOutputStream(wordFilePath);
wordDocument.write(out);
out.close();
document.close();
wordDocument.close();
System.out.println("PDF转Word成功!");
}
}
- 图片转Word:
- 使用Apache POI库来创建一个Word文档,并将图片插入到文档中。
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ImageToWordConverter {
public static void convert(String imageFilePath, String wordFilePath) throws IOException {
XWPFDocument wordDocument = new XWPFDocument();
XWPFRun run = wordDocument.createParagraph().createRun();
FileInputStream imageInputStream = new FileInputStream(imageFilePath);
BufferedImage image = ImageIO.read(imageInputStream);
imageInputStream.close();
FileOutputStream out = new FileOutputStream(wordFilePath);
ImageIO.write(image, "png", out);
out.close();
wordDocument.close();
System.out.println("图片转Word成功!");
}
}
- PDF转Excel:
- 使用Apache PDFBox库来提取PDF中的表格数据,然后使用Apache POI库将表格数据保存为Excel文件。
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class PdfToExcelConverter {
public static void convert(String pdfFilePath, String excelFilePath) throws IOException {
PDDocument document = PDDocument.load(new File(pdfFilePath));
PDFTextStripper stripper = new PDFTextStripper();
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet();
int rowIndex = 0;
for (PDPage page : document.getPages()) {
stripper.setStartPage(document.getDocumentCatalog().getPages().indexOf(page) + 1);
stripper.setEndPage(document.getDocumentCatalog().getPages().indexOf(page) + 1);
String text = stripper.getText(document);
String[] lines = text.split("\\r?\\n");
for (int i = 0; i < lines.length; i++) {
Row row = sheet.createRow(rowIndex++);
String[] cells = lines[i].split("\\t");
for (int j = 0; j < cells.length; j++) {
Cell cell = row.createCell(j);
cell.setCellValue(cells[j]);
}
}
}
FileOutputStream out = new FileOutputStream(excelFilePath);
workbook.write(out);
out.close();
document.close();
workbook.close();
System.out.println("PDF转Excel成功!");
}
}
- 图片转Excel:
- 使用Apache POI库创建一个Excel文件,并将图片插入到Excel文件的单元格中。
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ImageToExcelConverter {
public static void convert(String imageFilePath, String excelFilePath) throws IOException {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet();
Drawing drawing = sheet.createDrawingPatriarch();
CreationHelper helper = workbook.getCreationHelper();
BufferedImage image = ImageIO.read(new File(imageFilePath));
int pictureIdx = workbook.addPicture(ImageIO.read(new FileInputStream(imageFilePath)), Workbook.PICTURE_TYPE_PNG);
ClientAnchor anchor = helper.createClientAnchor();
anchor.setCol1(0);
anchor.setRow1(0);
Picture picture = drawing.createPicture(anchor, pictureIdx);
picture.resize();
FileOutputStream out = new FileOutputStream(excelFilePath);
workbook.write(out);
out.close();
workbook.close();
System.out.println("图片转Excel成功!");
}
}
- PDF转图片:
- 使用Apache PDFBox库将PDF转换为一系列图片文件。
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class PdfToImageConverter {
public static void convert(String pdfFilePath, String imageFilePath) throws IOException {
PDDocument document = PDDocument.load(new File(pdfFilePath));
PDFRenderer renderer = new PDFRenderer(document);
for (int i = 0; i < document.getNumberOfPages(); i++) {
BufferedImage image = renderer.renderImage(i);
ImageIO.write(image, "png", new File(imageFilePath + "_" + (i + 1) + ".png"));
}
document.close();
System.out.println("PDF转图片成功!");
}
}
- 图片转PDF:
- 使用Apache PDFBox库将图片转换为PDF文件。
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.PDPageContentStream.AppendMode;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ImageToPdfConverter {
public static void convert(String imageFilePath, String pdfFilePath) throws IOException {
PDDocument document = new PDDocument();
BufferedImage image = ImageIO.read(new File(imageFilePath));
PDPage page = new PDPage();
document.addPage(page);
PDImageXObject ximage = PDImageXObject.createFromFile(imageFilePath, document);
PDPageContentStream contentStream = new PDPageContentStream(document, page, AppendMode.APPEND, true, true);
contentStream.drawImage(ximage, 0, 0, page.getMediaBox().getWidth(), page.getMediaBox().getHeight());
contentStream.close();
document.save(pdfFilePath);
document.close();
System.out.println("图片转PDF成功!");
}
}
请注意,以上示例代码仅提供了基本的实现思路和方法,您可能需要根据实际需求进行适当的修改和优化。另外,这些示例代码需要相应的依赖库,请确保在项目中添加了这些库的依赖
原文地址: http://www.cveoy.top/t/topic/iUL4 著作权归作者所有。请勿转载和采集!