Java读写pdf文件
Java读写pdf文件
在OA业务开发中,经常需要java后台读取或生成pdf文件,
itextpdf是一个常用的java操作pdf的开源库
物料准备:
1.引入itextpdf依赖
2.定义Text2PdfUtil工具类
引入itextpdf相关的依赖
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
定义工具类Text2PdfUtil.java
package cn.ath.knowwikibackend.util;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
import java.io.*;
import java.nio.charset.Charset;
/**
* 需要引入的依赖
*
* <dependency>
* <groupId>com.itextpdf</groupId>
* <artifactId>itext-asian</artifactId>
* <version>5.2.0</version>
* </dependency>
*
* <dependency>
* <groupId>com.itextpdf</groupId>
* <artifactId>itextpdf</artifactId>
* <version>5.5.13</version>
* </dependency>
*
*/
public class Text2PdfUtil {
/**
* txt文本文件 转pdf文件
* @param text F:/data/te616.txt
* @param pdf F:/data/aet618.pdf
* @throws DocumentException
* @throws IOException
*/
public static void text2pdf(String text,String pdf) throws DocumentException, IOException {
Document doc = new Document();
OutputStream os = new FileOutputStream(new File(pdf));
PdfWriter.getInstance(doc, os);
doc.open();
//指定 使用内置的中文字体
BaseFont baseFont =
BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED);
Font font = new Font(baseFont,12,Font.NORMAL);
//指定输出编码为UTF-8
InputStreamReader isr = new InputStreamReader(
new FileInputStream(new File(text)), Charset.forName("UTF-8"));
BufferedReader br = new BufferedReader(isr);
String str = "";
while((str = br.readLine()) != null){
doc.add(new Paragraph(str,font));
}
isr.close();
br.close();
doc.close();
}
/**
* 读取pdf文件的内容
* @param filename F:/data/aet618.pdf
* @return String
*/
public static String readPDF(String filename){
StringBuilder result = new StringBuilder();
try {
PdfReader reader = new PdfReader(filename);
int countPage = reader.getNumberOfPages();
for(int i=1;i<=countPage;i ){
result.append(PdfTextExtractor.getTextFromPage(reader, i));
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
return result.toString();
}
}
测试
@Test
void contextLoads() throws DocumentException, IOException {
String txtPath = "E:/test617.txt";
String pdfPath = "E:/test617.pdf";
Text2PdfUtil.text2pdf(txtPath,pdfPath);
System.out.println(Text2PdfUtil.readPDF(pdfPath));
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggajjc
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01