PDF转图片乱码问题解决
问题描述
1、PDF转图片使用技术:pdfbox(具体代码百度随处可见)
2、问题概述:控制台报错,找不到字体,C:\Windows\FONTS\mstmc.ttf
10:52:06.162 [main] ERROR org.apache.pdfbox.pdmodel.font.FileSystemFontProvider - Could not load font file: C:\Windows\FONTS\mstmc.ttf
问题分析
由于找不到字体
问题解决
网上的各种方法都试了,比如:安装字体,代码解析的时候只用自定义字体,但是都不好使
最终通过查看源码,修改源码解决问题,重写org.apache.pdfbox.pdmodel.font.FontMapperImpl,增加本地存在字体,问题解决:
substitutes.put("STSong-Light", Arrays.asList("STFangsong"));
提示:该方法暂时只在本地开发测试通过,如果正式上生产环境,还需确认生产环境是否有STFangsong字体
代码(2020-05-25更新)
好多人说用了这种方式还是没办法生成,补充一下用到的jar包和对应的代码,后续多多关照
pom依赖
<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.17</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.17</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox-tools</artifactId><version>2.0.17</version></dependency>
代码实现
/*** 转换全部的pdf* @param fileAddress 文件地址* @param filename PDF文件名* @param type 图片类型*/public static void pdf2png(String fileAddress,String filename,String type) {// 将pdf装图片 并且自定义图片得格式大小File file = new File(fileAddress+"\\"+filename+".pdf");try {PDDocument doc = PDDocument.load(file);PDFRenderer renderer = new PDFRenderer(doc);int pageCount = doc.getNumberOfPages();for (int i = 0; i < pageCount; i++) {BufferedImage image = renderer.renderImageWithDPI(i, 144); // Windows native DPI// BufferedImage srcImage = resize(image, 240, 240);//产生缩略图ImageIO.write(image, type, new File(fileAddress+"\\"+filename+"_"+(i+1)+"."+type));}} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) throws InterruptedException, IOException {PdfUtils.pdf2png("F:/", "hetong", "jpg");
// PdfUtils.pdf2Image("F:/haha.pdf");}
PDF转图片乱码问题解决相关推荐
- PPT另存为pdf的图片失真问题解决
用PPT做好宣传图,另存为pdf.图片失真了. http://blog.csdn.net/weixin_37730347/article/details/70171242参考这个链接修改PPT的参数, ...
- libreoffice转换文件为pdf文件乱码问题解决办法
libreoffice转换文件为pdf文件乱码问题解决办法 参考文章: (1)libreoffice转换文件为pdf文件乱码问题解决办法 (2)https://www.cnblogs.com/heim ...
- java代码pdf转图片中文乱码解决
1:java代码 @RequestMapping("/pdfToPng")public void pdfToPng(HttpServletResponse response) th ...
- pdf转png图片乱码问题(字体缺失,centos安装字体)
欢迎访问自建博客原文: http://www.e-lionel.com/index.php/2020/09/02/322/ 项目中使用Spire.PDF将pdf转为png,出现了乱码问题,记录一下解决 ...
- 【老徐子杰】PDF转图片方法(解决中文乱码)
[老徐子杰]PDF转图片方法(解决中文乱码) 欢迎交流使用(本文原创:转载请注明出处) 在做项目的时候,说实话大公司不可能使用破解版的DLL进行开发.所以ADOBE的组建不用,基本的BIMP转法面对各 ...
- pdfbox或icepdf转换PDF为图片时,中文乱码(出现方框)处理
1.不需要在Linux上安装字体就能实现中文的转换 2.转换的字体可以自己去下载(百度) 3.我这个是将原先的PDF编辑表单域,动态填充模板后转换成PNG. 4.上代码............... ...
- OCR识别PDF乱码问题解决
一.pdf转换后乱码的原因 pdf是一种可靠的文档传递格式,以Post语言文字模型为基础,不受操作系统和软件的影响,在每个设备上都能呈现出文件原始的面貌. pdf文件本身并不具有文字编辑功能,目前pd ...
- Office文档转pdf和图片之NodeJS
1.安装 libreoffice.x86_64,这个是免费的办公套件 yum install libreoffice.x86_64 2.安装word转pdf插件:office-to-pdf npm ...
- POI根据模板导出word文件,以及word转PDF,PDF转图片再插入PDF中(防止PDF被修改)
POI操作word和PDF POI根据模板导出word文件 word转PDF PDF转图片再插入PDF中(防止PDF被修改) POI根据模板导出word文件 一.制作word模版,${xxxx}是一会 ...
最新文章
- siwft 写时复制 Copy-On-Write
- luogu P1341 无序字母对(欧拉回路应用、模板)
- C/C++中的连续赋值
- logback Appender详解
- 大型网络架构变迁和知识图谱
- 安卓安卓移动操作系统优缺点
- SVN创建不了资源库位置 解决方案
- python安装器要删吗_Centos7中,教你在不删除2.7下,安装python3
- 夏门大学的计算机专业排第几,厦门大学最好重点的专业在全国排名具体情况
- java 实现打印条形码_激光打印机与条码打印机打印不干胶标签哪个好?
- SQL Server 2012笔记分享-42:SQL Server Agent服务配置建议
- win7怎么把计算机图标下的箭头掉,Win7桌面图标有小箭头怎么去掉?Win7去除桌面图标小箭头的方法...
- 杰里695N系列(soundbox)之 1.0 SDK快速入门(1)
- 自适应PC端网页制作使用rem
- 麦克劳林公式求sin
- [Python人工智能] 九.gensim词向量Word2Vec安装及《庆余年》中文短文本相似度计算
- 枚举类型是什么意思,怎么用?
- 计算机python实验报告_Python实验报告六:函数
- 8522A+7段数码管显示实验
- 使用visDrone数据集训练yolov5检测器
热门文章
- 上号神器,穿越火线扫码登录教程
- 无水印思维导图——导出亿图(试用版)无水印图片
- 5.03GEN-B发布!PSP 2000v3/3000最新自制系统
- Nginx 记录请求 Body
- Beautiful Soup 基础入门(实验楼学习笔记2)
- C++(数据结构与算法):42---优先级队列的实现(扩充二叉树、高度优先左高树(HBLT)、重量优先左高树(WBLT))
- 【MATLAB图像处理实用案例详解(1)】—— 基于直方图优化的图像去雾技术
- HTML基于蔡徐坤的打飞机游戏源码
- 如何制作考试条码标签
- Hu不变矩+BP神经网络,实现对图像的分类(pytorch实现)