繁体   English   中英

在浏览器中创建PDF:自定义字体

[英]Create PDF in browser: Custom Font

我知道有两个库可以在浏览器中使用Javascript创建PDF文件( [1][2] )但是它们都不允许在文档中嵌入自定义字体。 [2]允许设置自定义字体,但仅适用于标准PDF字体(Courier,Times-Roman),并且它们都不再被积极开发。

有没有人知道在浏览器中创建PDF文件的库仍在积极开发并支持嵌入自定义字体?

干杯,

曼努埃尔

好的,看起来当前的实现不支持它。 所以我使用emscripten将libharu移植到javascript:

项目: https//github.com/manuels/hpdf.js

演示: http//manuels.github.com/hpdf.js/

如果有其他人在看,还有这个: https//github.com/devongovett/pdfkit

它看起来比hpdf更积极地发展,但是我不能像文档中提到的那样只使用带有节点模块brfs的browserify(首先brfs只能用于静态路径,但它似乎也没有输出原始数据)正确的字体),我必须这样做才能让它工作:

  • 如果你的字体没有cmap:open,那么使用fontforge将字体导出为ttf(在导出选项中使用字形图)
  • 以字符串格式获取ttf文件的base64(我用python读取ttf文件的内容,用base64编码,删除换行符,然后保存到另一个文件)
  • 将字符串粘贴为脚本中的变量
  • 创建一个缓冲区对象,并将其作为pdfkit的字体传递,即

     fontCenturyGothicBase64 = "your base64 encoded string here"; fontCenturyGothic = new Buffer(fontCenturyGothicBase64, 'base64'); doc.font(fontCenturyGothic); 
  • 在javascript文件上使用browserify(Buffer是节点对象而不是纯js)

也许有可能不使用Buffer对象(因此浏览器化),我没有尝试过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM