2017-06-24 18 views
3

dompdfを使用してPDFに変換するページに2つのWebフォントを使用しています。 「私は、私はPDFを生成するとき、H1は「Signika」フォントで表示され、DOMPDFで生成されたPDFのGoogle Webフォント

body { 
    font-family: "Roboto Condensed", sans-serif; 
    [ ... ] 
} 
h1 { 
    font-family:'Signika', Arial, Helvetica, sans-serif; 
    [ ... ] 
} 

のようなCSSルールでそれらを使用

<link href='http://fonts.googleapis.com/css?family=Signika:600|Roboto+Condensed' rel='stylesheet' type='text/css'> 

、しかし:私は、ヘッダーでこれを持っていますRoboto Condensed "はHelveticaやその他の標準的なサンセリフフォントに置き換えられています。

「プレビュー」ファイル(つまり、PDF生成スクリプトに含めるPHPページ)を開くと、「Roboto Condensed」が期待通りに表示されますが、PDFには入りません。しかし、私が書いたように、「Signika」はPDFにあり、それは私にとっては何となく奇妙です。私はまた、pdivliなどのCSSルールに直接フォントフェイスルールを含めるようにしましたが、それは何も変更されません。

どのように私はそれを修正することができますか?


EDIT/ADDITION:それについて考えて

は、2つのフォントの違いはRoboto凝縮し、その名前にスペースを持っているということです。それが問題の原因になるかどうかは疑問です(つまり、dompdfはそのようなフォント名を処理できません)。しかし、私はGoogleサーバーからフォントを取得している間は変更できません。

答えて

1

私は解決策を自分で見つけ:

私は編集で私の質問に追加されていたとして、明らかな理由は、フォントファミリ名「Robotoコンデンス」はDOMPDFはしていないようスペースが含まれていることでした好き。

私は、フォントをダウンロードしFontsquirrelにフォントジェネレータでそれの3つのバージョンを作成し、一緒にこのスタイルシートで、私のサーバー上に置く:

@font-face { 
    font-family: 'roboto_condensedregular'; 
    src: url('robotocondensed-regular-webfont.woff2') format('woff2'), 
     url('robotocondensed-regular-webfont.woff') format('woff'), 
     url('RobotoCondensed-Regular.ttf') format('truetype'); 
    font-weight: normal; 
    font-style: normal; 
} 

その後、私のCSSルールで私はその新しいフォントを使用名前roboto_condensedregular in font-family: roboto_condensedregular, sans-serif;

これはPDFでも動作します。

+0

問題が発生するスペースはないと思います。テストでは、元のサンプルHTMLを使用してそのフォントでレンダリングできました。しかし、あなたが見つけたように、フォントをダウンロードすることは確かに選択肢です。 Dompdfが正しく処理できなかったCSSについて何かがあったのだろうかと思います。 – BrianS

+0

まあ、それは問題を引き起こした - それは私がそれを働かせた変更された唯一のものだった...しかし、ブラウザのスペースの処理に依存するかもしれない... – Johannes

+0

興味深い。どのバージョンのDompdfを使用していますか? 'allow_url_fopen'は本当ですか?カールフォールバックについては何か? – BrianS

関連する問題