问题描述

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转图片乱码问题解决相关推荐

  1. PPT另存为pdf的图片失真问题解决

    用PPT做好宣传图,另存为pdf.图片失真了. http://blog.csdn.net/weixin_37730347/article/details/70171242参考这个链接修改PPT的参数, ...

  2. libreoffice转换文件为pdf文件乱码问题解决办法

    libreoffice转换文件为pdf文件乱码问题解决办法 参考文章: (1)libreoffice转换文件为pdf文件乱码问题解决办法 (2)https://www.cnblogs.com/heim ...

  3. java代码pdf转图片中文乱码解决

    1:java代码 @RequestMapping("/pdfToPng")public void pdfToPng(HttpServletResponse response) th ...

  4. pdf转png图片乱码问题(字体缺失,centos安装字体)

    欢迎访问自建博客原文: http://www.e-lionel.com/index.php/2020/09/02/322/ 项目中使用Spire.PDF将pdf转为png,出现了乱码问题,记录一下解决 ...

  5. 【老徐子杰】PDF转图片方法(解决中文乱码)

    [老徐子杰]PDF转图片方法(解决中文乱码) 欢迎交流使用(本文原创:转载请注明出处) 在做项目的时候,说实话大公司不可能使用破解版的DLL进行开发.所以ADOBE的组建不用,基本的BIMP转法面对各 ...

  6. pdfbox或icepdf转换PDF为图片时,中文乱码(出现方框)处理

    1.不需要在Linux上安装字体就能实现中文的转换 2.转换的字体可以自己去下载(百度) 3.我这个是将原先的PDF编辑表单域,动态填充模板后转换成PNG. 4.上代码............... ...

  7. OCR识别PDF乱码问题解决

    一.pdf转换后乱码的原因 pdf是一种可靠的文档传递格式,以Post语言文字模型为基础,不受操作系统和软件的影响,在每个设备上都能呈现出文件原始的面貌. pdf文件本身并不具有文字编辑功能,目前pd ...

  8. Office文档转pdf和图片之NodeJS

    1.安装 libreoffice.x86_64,这个是免费的办公套件​ yum install libreoffice.x86_64 2.安装word转pdf插件:office-to-pdf npm ...

  9. POI根据模板导出word文件,以及word转PDF,PDF转图片再插入PDF中(防止PDF被修改)

    POI操作word和PDF POI根据模板导出word文件 word转PDF PDF转图片再插入PDF中(防止PDF被修改) POI根据模板导出word文件 一.制作word模版,${xxxx}是一会 ...

最新文章

  1. siwft 写时复制 Copy-On-Write
  2. luogu P1341 无序字母对(欧拉回路应用、模板)
  3. C/C++中的连续赋值
  4. logback Appender详解
  5. 大型网络架构变迁和知识图谱
  6. 安卓安卓移动操作系统优缺点
  7. SVN创建不了资源库位置 解决方案
  8. python安装器要删吗_Centos7中,教你在不删除2.7下,安装python3
  9. 夏门大学的计算机专业排第几,厦门大学最好重点的专业在全国排名具体情况
  10. java 实现打印条形码_激光打印机与条码打印机打印不干胶标签哪个好?
  11. SQL Server 2012笔记分享-42:SQL Server Agent服务配置建议
  12. win7怎么把计算机图标下的箭头掉,Win7桌面图标有小箭头怎么去掉?Win7去除桌面图标小箭头的方法...
  13. 杰里695N系列(soundbox)之 1.0 SDK快速入门(1)
  14. 自适应PC端网页制作使用rem
  15. 麦克劳林公式求sin
  16. [Python人工智能] 九.gensim词向量Word2Vec安装及《庆余年》中文短文本相似度计算
  17. 枚举类型是什么意思,怎么用?
  18. 计算机python实验报告_Python实验报告六:函数
  19. 8522A+7段数码管显示实验
  20. 使用visDrone数据集训练yolov5检测器

热门文章

  1. 上号神器,穿越火线扫码登录教程
  2. 无水印思维导图——导出亿图(试用版)无水印图片
  3. 5.03GEN-B发布!PSP 2000v3/3000最新自制系统
  4. Nginx 记录请求 Body
  5. Beautiful Soup 基础入门(实验楼学习笔记2)
  6. C++(数据结构与算法):42---优先级队列的实现(扩充二叉树、高度优先左高树(HBLT)、重量优先左高树(WBLT))
  7. 【MATLAB图像处理实用案例详解(1)】—— 基于直方图优化的图像去雾技术
  8. HTML基于蔡徐坤的打飞机游戏源码
  9. 如何制作考试条码标签
  10. Hu不变矩+BP神经网络,实现对图像的分类(pytorch实现)