Text2PdfUtil.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.ruoyi.common.utils;
  2. import com.itextpdf.text.Document;
  3. import com.itextpdf.text.DocumentException;
  4. import com.itextpdf.text.Font;
  5. import com.itextpdf.text.Paragraph;
  6. import com.itextpdf.text.pdf.BaseFont;
  7. import com.itextpdf.text.pdf.PdfReader;
  8. import com.itextpdf.text.pdf.PdfWriter;
  9. import com.itextpdf.text.pdf.parser.PdfTextExtractor;
  10. import java.io.*;
  11. import java.nio.charset.Charset;
  12. /**
  13. * 需要引入的依赖
  14. *
  15. * <dependency>
  16. * <groupId>com.itextpdf</groupId>
  17. * <artifactId>itext-asian</artifactId>
  18. * <version>5.2.0</version>
  19. * </dependency>
  20. *
  21. * <dependency>
  22. * <groupId>com.itextpdf</groupId>
  23. * <artifactId>itextpdf</artifactId>
  24. * <version>5.5.13</version>
  25. * </dependency>
  26. *
  27. */
  28. public class Text2PdfUtil {
  29. /**
  30. * txt文本文件 转pdf文件
  31. * @param text F:/data/te616.txt
  32. * @param pdf F:/data/aet618.pdf
  33. * @throws DocumentException
  34. * @throws IOException
  35. */
  36. public static void text2pdf(String text,String pdf) throws DocumentException, IOException {
  37. Document doc = new Document();
  38. OutputStream os = new FileOutputStream(new File(pdf));
  39. PdfWriter.getInstance(doc, os);
  40. doc.open();
  41. //指定 使用内置的中文字体
  42. BaseFont baseFont =
  43. BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED);
  44. Font font = new Font(baseFont,12,Font.NORMAL);
  45. //指定输出编码为UTF-8
  46. InputStreamReader isr = new InputStreamReader(
  47. new FileInputStream(new File(text)), Charset.forName("UTF-8"));
  48. BufferedReader br = new BufferedReader(isr);
  49. String str = "";
  50. while((str = br.readLine()) != null){
  51. doc.add(new Paragraph(str,font));
  52. }
  53. isr.close();
  54. br.close();
  55. doc.close();
  56. }
  57. /**
  58. * 读取pdf文件的内容
  59. * @param filename F:/data/aet618.pdf
  60. * @return String
  61. */
  62. public static String readPDF(String filename){
  63. StringBuilder result = new StringBuilder();
  64. try {
  65. PdfReader reader = new PdfReader(filename);
  66. int countPage = reader.getNumberOfPages();
  67. for(int i=1;i<=countPage;i++){
  68. result.append(PdfTextExtractor.getTextFromPage(reader, i));
  69. }
  70. reader.close();
  71. } catch (IOException e) {
  72. e.printStackTrace();
  73. }
  74. return result.toString();
  75. }
  76. }