我正在尝试将HTML转换为PDF。 在HTML中,有些符号未显示在PDF文档中。 在调试时,我发现&#8209或&#x2011字符在IText库中可用的任何默认字体中均不可用。 我的HTML在其字体家族中没有Arial Unicode MS,因此即使我将该字体添加到itext渲染器中也不起作用,所以我试图在创建PDF时发现我们可以使用一种字体在HTML中没有提及? HTML示例:

Sample HTML

Please call this

number in case of emergency, 123‑456‑7890.

Java代码:

@Component

public class PDFConverter {

@Autowired

private Tidy tidy;

@Autowired

private ITextRenderer renderer;

@Autowired

private Gson gson;

public String pdfBox(byte[] bytes) {

byte[] outDoc = null;

String pdf = null;

try {

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

String html = new String(bytes);

String xhtml = toXHTML(html);

InputStream is = new ByteArrayInputStream(xhtml.getBytes("UTF-8"));

ITextFontResolver resolver = renderer.getFontResolver();

Document doc = tidy.parseDOM(is, null);

renderer.setDocument(doc, null);

resolver.addFont("*filepath*/ARIALUNI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

renderer.layout();

renderer.createPDF(outputStream);

outDoc = outputStream.toByteArray();

pdf = Base64.getEncoder().encodeToString(outDoc);

renderer.finishPDF();

outputStream.flush();

outputStream.close();

} catch (DocumentException | IOException e) {

e.printStackTrace();

}

return pdf;

}

private String toXHTML(String html) {

final org.jsoup.nodes.Document document = org.jsoup.Jsoup.parse(html, "UTF-8");

document.outputSettings().syntax(org.jsoup.nodes.Document.OutputSettings.Syntax.xml);

document.outputSettings().prettyPrint(false);

document.outputSettings().charset("ASCII");

document.outputSettings().escapeMode(EscapeMode.xhtml);

return document.html();

}

}

itext html 转换pdf后 字体加粗,java - 如何使用ITEXTRenderer将HTML转换为PDF时设置新的不同字体 - 堆栈内存溢出...相关推荐

  1. html字体加粗标签与写法

    在html中字体加粗的标签为<b>标签,当我们使用了该标签,字体就会加粗,一般用于注明重要信息,强调文字上面写法如下 字体加粗:<b>这里的字体就会加粗</b> 效 ...

  2. java jasperReports导出PDF字体加粗失效,中文显示不出来

    最近搞了一个项目,需要生成投保电子凭证的pdf文件,之前在项目也用了这个组件,只是很多年前别人开发的,我只是项目负责人而已,想起以前的项目就找了ireport这个做为生成pdf的工具.一开始捣鼓了好久 ...

  3. ireport1.3.2 pdf字体加粗失效的问题

    问题: 在ireport中设置加粗后,预览时生效,但是导出pdf时字体没有加粗的效果 原因: 查看jasperreports-1.3.2.jar源码net.sf.jasperreports.engin ...

  4. jspdf添加宋体_jspdf下载pdf文件模糊,字体加粗等样式失效

    jspdf下载pdf文件模糊,字体加粗等样式失效 exportPDF = () => {let { shop } = this.props; let element = document.get ...

  5. android 字体加粗有阴影,Android TextView高级显示技巧实例小结

    本文实例总结了Android TextView高级显示技巧.分享给大家供大家参考,具体如下: 1. 自定义字体 可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而And ...

  6. php导出excel字体加粗,phpexcel 导出格式,字体调整

    对于小数量数据(低于1000)条,如果出现导出较慢,或者网页超时,那可能是phpexcel样式文件写错地方了,可能和数据混在一起,导致较慢. 如果数据太多导致超时或者内存溢出,可添加 set_time ...

  7. 怎样在photoshop中把字体加粗并倒影

    怎样在photoshop中把字体加粗并倒影 用这个简单的办法可以: 1.选择字体右键消除锯齿锐化 + 仿粗体 (此步骤可选 1.字打好后,点"选择"--载入选区,点确定.这时字的边 ...

  8. python3-xlwt-Excel设置表格基础(字体颜色 背景颜色 设置边框 边框颜色 冻结窗口 字体大小 字体高度 字体加粗 下划线 斜体字 单元格对齐方式 自动换行 删除线 超链接 插入公式)

    文章目录 引入xlwt和创建workboos对象 初始化样式和创建设置字体,赋值给style 保存文件 自定义样式 字体颜色 背景颜色 设置边框 边框颜色 冻结窗口 字体大小 字体高度 字体加粗 下划 ...

  9. vb语言中怎样编码窗体中所有字体加粗_VB窗口属性中文对照表

    VB 属性对应的中文 A Action 返回或设置被显示的对话框 (CommandDialog) 的类型 , 在设计时无效. ActiveControl 活动控件 ActiveForm 活动窗体 Al ...

最新文章

  1. php持续写入文件,PHP:如何读取不断写入的文件
  2. R语言sd函数计算数值标准差实战(Standard Deviation)
  3. 小结 frambuffer 原理及流程 (五)
  4. [20171124]手工使用Seed_Database.dfb和Seed_Database.ctl建库.txt
  5. 刷机包各个文件都是啥
  6. 【pmcaff】事件营销口碑传播疯传的秘诀在哪里?
  7. Docker从入门到实践笔记(一)
  8. 网络测试三要素 识别 验证 认证
  9. python鼠标拖拽功能_selenium鼠标移动、拖拽、双击、长按等操作
  10. 微信二次修改微信号_微信支持修改微信号了!功能正式上线,附详细教程
  11. IBASE change and save - Middleware related
  12. codechef LEMOVIE dp
  13. 微型计算机中最小的单位,微型计算机中最小的数据单位是
  14. List集合的去重问题
  15. kill killall pkill 的区别
  16. Python for Informatics 第11章 正则表达式五(译)
  17. 转:前端冷知识(~~some fun , some useful)
  18. 59. 预定义超全局变量
  19. Java2EE体系结构图
  20. java构造方法是什么_java中什么叫构造方法,作用是什么?

热门文章

  1. 用c语言交通信号灯论文,plc交通信号灯毕业论文.doc
  2. 图灵对计算机行业的贡献论文,这届图灵奖得主究竟做了什么贡献?这篇1974年的论文给了我们答案...
  3. 推荐系统中的pointwise和pairwise区别
  4. iMeta | 复杂热图(ComplexHeatmap)可视化文章最新版,画热图就引它
  5. CentOS7-samba文件共享服务
  6. 【VBA编程】VBA基础语法(二)
  7. 前端较好的社区,快收藏起来吧~!
  8. eeprom与pcf859
  9. etcd入门系列三:身份验证访问控制
  10. ZYNQ简介 | ZYNQ到底是什么?