首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用wkhtmltopdf从HTML生成Google Web字体和PDF

使用wkhtmltopdf从HTML生成Google Web字体和PDF
EN

Stack Overflow用户
提问于 2011-07-17 09:08:55
回答 9查看 62K关注 0票数 69

我正在使用wkhtmltopdf来转换PDF格式的HTML文件;它提供了出人意料的好结果,完全像WebKit所做的那样渲染PDF。

我使用Google Web Fonts是为了让用户可以自定义他们编辑的文档的外观,让他们可以在几种字体之间进行选择。它在浏览器中也能完美地工作。

问题是,我没有得到谷歌字体工作时,这样的HTML文件转换为PDF与wkhtmltopdf。我读到其他人也有同样的issue

有人能帮我解决这个问题吗?

字体编辑:直接在CSS中声明@-也不起作用。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2013-08-16 09:13:09

要使用wkhtmltopdf将HTML转换为PDF,请尽量避免使用woff字体。使用Google Web Fontsbase64编码的truetype格式。

最近,我尝试使用Google web字体中的Google Web字体。在浏览器中它可以正确显示,但在将HTML转换为PDF后不显示。

经过广泛的网络搜索,我终于找到了将字体编码成base64格式的工具,也得到了适用于@font-face的CSS。

阅读解决方案here

票数 58
EN

Stack Overflow用户

发布于 2013-04-25 08:27:59

一个简单的解决方案:base64-编码您的字体并将其嵌入到CSS中:

代码语言:javascript
复制
@font-face {
    font-family: 'OpenSans';
    src: url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQA...
}

谷歌可以通过其Webfont Generator的高级选项为你做到这一点;FontSquirrel和其他字体可以编码为with this tool

我在pdfkitwicked_pdf中使用过这个解决方案,它们通过wkhtmltopdf工作,所以我认为这也应该适用于本机wkhtmltopdf

票数 40
EN

Stack Overflow用户

发布于 2012-01-21 02:48:25

我遇到了同样的问题,并通过下载字体并使用以下font-face声明从我的web服务器的本地文件中运行它来解决它:

代码语言:javascript
复制
@font-face {
    font-family: 'PT Sans';
    src: url( '/public/inc/fonts/PTS55F-webfont.eot');
    src: url( '/public/inc/fonts/PTS55F-webfont.eot?#iefix') format('embedded-opentype'),
         url( '/public/inc/fonts/PTS55F-webfont.woff') format('woff'),
         url( '/public/inc/fonts/PTS55F-webfont.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

我在Font Squirrel上找到了这种字体,但您的使用里程可能会有所不同。

我认为谷歌的字体所发生的事情是,它试图只加载它认为这款浏览器想要的格式,对于WebKit来说,就是woff (我相信)。但是wkhtmltopdf不能在PDF中嵌入woff字体,所以默认使用sans-serif。通过声明所有这些,就包含了TrueType字体,这正是PDF实际使用的字体。

此外,您需要定义您想要使用的字体作为任何字体系列CSS定义中的第一个字体,否则wkhtmltopdf将忽略它。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6721295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档