2014-01-19 44 views
11

我想在Rails 3网站上使用wicked_pdf在HTML中使用特定字体生成PDF文件。我在这里找到了我遵循的其他建议。唯一(主要)为我工作的是将字体转换为base64。我发现,原来这里的答案: Wicked PDF +fonts+heroku+rails3.2Base64 @ font-face字体与wicked_pdf生成器

我只好直接把@字体面CSS成使用它,而不是把它变成一个样式表,以便为它工作的部分文件。它现在可以在我的本地副本中正常工作。当我将它部署到我们的登台服务器时,它只有一半有效。其中一种字体加载,但字体的粗体版本无法加载。

这里是@字体面CSS我包括在部分(this pastebin包括在关断机会整个BASE64编码,它是有用的):

<style type="text/css"> 
    @font-face { 
    font-family: 'MuseoSans300'; 
    src: url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQAABAA...excess text removed); 
    } 
    @font-face { 
    font-family:'MuseoSans700'; 
    src: url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQAABAA...excess text removed); 
    } 
</style> 

从常规的样式表的样式(使用SASS)使用这些字体看起来像这样:

#profile_pdf { 
    font-family: 'MuseoSans300'; 
    h1 { 
    font-size: 30px; 
    font-family: 'MuseoSans700'; 
    } 
    h2 { 
    font-size: 20px; 
    font-family: 'MuseoSans300'; 
    } 
} 

我试过改变这种方式。我使用与此建议相同的格式: http://blog.shahariaazam.com/use-google-web-fonts-for-wkhtmltopdf-tools/#.UtwZUmQo5hE

这使得它完全停止工作。

通过上面显示的格式,它可以在本地运行的副本上工作。在登台服务器上,只有一种字体可用;它只加载300版本的所有内容,并且700版本不加载。有其他人遇到这个问题吗?

+0

你的开发和分期环境有什么不同?意思是......如果它在开发中起作用,你可能已经正确设置了一切。也许升级环境只需要一些调整。 – davekaro

+0

我有完全相同的问题,是你的Heroku每次机会的升级环境? –

+0

我认为这与预编译资产有关。如果您在本地进行预编译,是否会复制暂存问题?它为我做了。 –

回答

0

我觉得在URL部分,它应该是/assets/.....而不是/font如果你把他们下的资产,因为轨道编译一切都变成资产

1

我曾与邪恶的PDF类似的问题。我解决这个问题的方法是通过定义一个字体系列来满足我想要的每个重量。它看起来像这样:

@font-face { 
    font-family: 'Karla'; 
    font-weight: 400; 
    font-style: normal; 
    src: ...; 
} 

@font-face { 
    font-family: 'Karla-Bold'; 
    font-weight: 700; 
    font-style: bold; 
    src: ...; 
} 

我相信你需要明确指定字体的权重号码才能正确显示粗体版本。我的问题与你的问题相同,这为我解决了问题。

+0

font-style:bold; - 真的? – comonitos