我正在使用wkhtmltopdf来转换PDF格式的HTML文件;它提供了出人意料的好结果,完全像WebKit所做的那样渲染PDF。
我使用Google Web Fonts是为了让用户可以自定义他们编辑的文档的外观,让他们可以在几种字体之间进行选择。它在浏览器中也能完美地工作。
问题是,我没有得到谷歌字体工作时,这样的HTML文件转换为PDF与wkhtmltopdf。我读到其他人也有同样的issue。
有人能帮我解决这个问题吗?
字体编辑:直接在CSS中声明@-也不起作用。
发布于 2013-08-16 09:13:09
要使用wkhtmltopdf
将HTML转换为PDF,请尽量避免使用woff
字体。使用Google Web Fonts
的base64
编码的truetype
格式。
最近,我尝试使用Google web字体中的Google Web字体。在浏览器中它可以正确显示,但在将HTML转换为PDF后不显示。
经过广泛的网络搜索,我终于找到了将字体编码成base64
格式的工具,也得到了适用于@font-face
的CSS。
阅读解决方案here。
发布于 2013-04-25 08:27:59
一个简单的解决方案:base64-编码您的字体并将其嵌入到CSS中:
@font-face {
font-family: 'OpenSans';
src: url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQA...
}
谷歌可以通过其Webfont Generator的高级选项为你做到这一点;FontSquirrel和其他字体可以编码为with this tool。
我在pdfkit
和wicked_pdf
中使用过这个解决方案,它们通过wkhtmltopdf工作,所以我认为这也应该适用于本机wkhtmltopdf
。
发布于 2012-01-21 02:48:25
我遇到了同样的问题,并通过下载字体并使用以下font-face声明从我的web服务器的本地文件中运行它来解决它:
@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将忽略它。
https://stackoverflow.com/questions/6721295
复制相似问题