pom.xml导入
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.1</version>
</dependency>
代码实现:
static void pdfToImageFile(String PDFName) throws Exception {
PDDocument doc = null;
ByteArrayOutputStream os = null;
InputStream stream = null;
OutputStream out = null;
try {
// pdf路径
stream = new FileInputStream(BaseAPIConst.PDF_PATH+PDFName+".pdf");
// 加载解析PDF文件
doc = PDDocument.load(stream);
PDFRenderer pdfRenderer = new PDFRenderer(doc);
PDPageTree pages = doc.getPages();
int pageCount = pages.getCount();
for (int i = 0; i < pageCount; i++) {
BufferedImage bim = pdfRenderer.renderImageWithDPI(i, 200);
os = new ByteArrayOutputStream();
ImageIO.write(bim, "jpg", os);
byte[] dataList = os.toByteArray();
// jpg文件转出路径
File file = new File(BaseAPIConst.PDF_PATH + PDFName + ".jpg");
if (!file.getParentFile().exists()) {
// 不存在则创建父目录及子文件
file.getParentFile().mkdirs();
file.createNewFile();
}
out = new FileOutputStream(file);
out.write(dataList);
}
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
if (doc != null) doc.close();
if (os != null) os.close();
if (stream != null) stream.close();
if (out != null) out.close();
}
}
遇到的问题: 转成图片后,中文不显示
原因:linux服务器的操作系统缺失字体
解决:
然后在服务器终端上执行
fc-list
查看字体库,如果提示命令不存在,就执行
yum -y install fontconfig
进行安装,然后
将C:\Windows\Fonts 中的字体上传到服务器 /usr/share/fonts/chinese (没有chinese文件夹就自行创建)
接着将字体库上传到服务器
ls -l /usr/share/fonts/chinese/
进行安装
fc-cache -fv
刷新内存
fc-cache
查看字体库是否安装完成
fc-list
问题解决!