PdfUtils.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package me.zhengjie.appapi.util;
  2. import java.io.*;
  3. import org.apache.pdfbox.io.RandomAccessBuffer;
  4. import org.apache.pdfbox.pdfparser.PDFParser;
  5. import org.apache.pdfbox.pdmodel.PDDocument;
  6. import org.apache.pdfbox.pdmodel.PDPage;
  7. import org.apache.pdfbox.pdmodel.PDPageContentStream;
  8. import org.apache.pdfbox.pdmodel.font.PDFont;
  9. import org.apache.pdfbox.pdmodel.font.PDType1Font;
  10. import org.apache.pdfbox.text.PDFTextStripper;
  11. public class PdfUtils {
  12. public String readPdf(String fileName) {
  13. File file = new File(fileName);
  14. FileInputStream in = null;
  15. String content = null;
  16. try {
  17. in = new FileInputStream(fileName);
  18. PDFParser parser = new PDFParser(new RandomAccessBuffer(in)); // 新建一个PDF解析器对象
  19. parser.parse(); // 对PDF文件进行解析
  20. PDDocument pdfdocument = parser.getPDDocument(); // 获取解析后得到的PDF文档对象
  21. PDFTextStripper stripper = new PDFTextStripper(); // 新建一个PDF文本剥离器
  22. content = stripper.getText(pdfdocument); // 从PDF文档对象中剥离文本
  23. } catch (Exception e) {
  24. System.out.println("读取PDF文件" + file.getAbsolutePath() + "生失败!" + e);
  25. e.printStackTrace();
  26. }
  27. return content;
  28. }
  29. public String createPDF (String fileName, String content) throws IOException{
  30. PDDocument document = new PDDocument();
  31. PDPage page = new PDPage();
  32. document.addPage(page);
  33. PDFont font = PDType1Font.HELVETICA;
  34. PDPageContentStream contentStream = new PDPageContentStream(document, page);
  35. contentStream.beginText();
  36. contentStream.setFont(font, 14);
  37. contentStream.moveTextPositionByAmount(100, 700);
  38. contentStream.drawString(content);
  39. contentStream.endText();
  40. contentStream.close();
  41. try {
  42. document.save(fileName);
  43. } catch (Exception e) {
  44. e.printStackTrace();
  45. }
  46. document.close();
  47. return "";
  48. }
  49. }