2014-01-19 48 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