PDFを生成するとき、私のfont-family
属性がCSSに適用されました。 Verdanaと言う代わりに、Times New Roman。を使用するため、私のCSSは次のようになります。
.sub-header {
font-size: 1.4rem;
text-transform: uppercase;
font-family: NeutraText-Book !important;
padding-bottom: 1.5rem;
}
PDFは次のように生成されます。
$pdf = PDF::loadHTML($view);
return $pdf->stream();
必要なフォントを設定するにはどうすればよいですか?
PDFドキュメントは、Helvetica、Times-Roman、Courier、Zapf-Dingbats、およびSymbol(すべてWindows ANSIエンコーディングを使用)を内部的にサポートしています。 dompdfは、PDFに事前にロードされているか、dompdfにアクセス可能で、CSS @font-face
ルールで参照されている限り、参照されているフォントを埋め込みます。タイプ設定に使用されるフォントメトリックを生成するための順序。
dompdfは、基礎となるR&OS PDF class:Type 1(.pfb)およびTrueType(.ttf))と同じフォントをサポートします。ただし、フォントメトリック(.afm/.ufm)が利用可能です。バンドルされたPHPベースのphp-font-libは、フォントのロードとサブセットのサポートを提供します。
フォントをロードするプロセスは、ニーズとサーバーアクセスによって異なります。フォントをロードするには、次の3つの方法があります。
CSS @ font-faceルールを使用して、実行時にフォントをロードします
コマンドラインアクセスは必要ありません。ロードしたいフォントがオンラインで利用可能であれば、CSS経由で簡単にロードできます。
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: normal;
src: url(http://themes.googleusercontent.com/static/fonts/opensans/v8/cJZKeOuBrn4kERxqtaUH3aCWcynf_cDxXwCLxiixG1c.ttf) format('truetype');
}
コマンドラインからdompdf/load_font.phpを使用してください
コマンドラインにアクセスできる場合、フォントのロードは次のように簡単です。
[php] load_font.php "NeutraText-Book" /path/to/neutratext.ttf
パラメーターなしでコマンドを実行して、ヘルプテキストを表示します。ただし、すぐにパラメーターは次のとおりです。フォントの名前、通常のフォントファイル、太字フォントファイル、斜体フォントファイル、太字斜体フォントファイル
付属の管理サイトでdompdf/www/fonts.phpを閲覧します
自明( sample )。行う必要があるのは、管理者のユーザー名/パスワードの組み合わせを変更したことを確認することだけです
注:load_font.phpおよび管理サイトは、dompdf 0.7.0からデフォルトで含まれません
Dompdf wiki( nicode How-To 、 フォントと文字エンコーディングについて )およびその他のソースからの適応。
私は同様の問題を抱えており、2日間ソリューションを探していました...新しいバージョンでは、受け入れられた答えはもう機能しません。
@ jay-bienvenuの答えは正しいです。 DomPDFの新しいバージョンにはすべてが含まれているわけではなく、ドキュメントも非常に貧弱です。
だからあなたはする必要があります:
load_font.phpをダウンロードして、プロジェクトのルートディレクトリに配置します:curl -o load_font.php https://raw.githubusercontent.com/dompdf/utils/master/load_font.php
次に、エディターでload_font.phpを開き、autoload.inc.phpへの正しいパス、たとえばrequire_once 'lib/dompdf/autoload.inc.php';
コマンドラインを開き、プロジェクトのルートフォルダーに移動し、登録するフォントの名前とTFFファイルへのパス(例:php load_font.php SourceSansPro ./pathToYourFolder/lib/dompdf/SourceSansPro-Regular.ttf ./pathToYourFolder/lib/dompdf/SourceSansPro-Bold.ttf
これでフォントがインストールされました。通常はhtmlのWebフォントとして使用するように使用できます。
<html>
<head>
<meta http-equiv="Content-Type" content="charset=utf-8" />
<style type="text/css">
@page {
margin: 0;
}
* { padding: 0; margin: 0; }
@font-face {
font-family: "source_sans_proregular";
src: local("Source Sans Pro"), url("fonts/sourcesans/sourcesanspro-regular-webfont.ttf") format("truetype");
font-weight: normal;
font-style: normal;
}
body{
font-family: "source_sans_proregular", Calibri,Candara,Segoe,Segoe UI,Optima,Arial,sans-serif;
}
</style>
</head>
<body>
Your code here ....
</body>
</html>
phpでPDFを作成するには:
require_once 'lib/dompdf/autoload.inc.php';
use Dompdf\Dompdf;
// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml($html, 'UTF-8');
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4');
$dompdf->set_option('defaultMediaType', 'all');
$dompdf->set_option('isFontSubsettingEnabled', true);
// Render the HTML as PDF
$dompdf->render();
[〜#〜] edit [〜#〜]:dompdfを使用してカスタムフォントを適用する方法に関するブログ投稿を作成しました。詳細: https://www.blog.lab21.gr/using-domdpf-create-pdf-php
Dompdfの フォントと文字エンコーディングについて は、フォントユーティリティは含まれていますが、それを取得して実行する方法を教えてくれません。方法は次のとおりです。
load_font.php をプロジェクトのルートディレクトリにダウンロードします。 curl -o load_font.php https://raw.githubusercontent.com/dompdf/utils/master/load_font.php
テキストエディター(vimなど)でload_font.phpを開きます。変化する require_once "autoload.inc.php";
からrequire_once "vendor/autoload.php";
登録するフォントの名前とTFFファイルへのパスを使用してユーティリティを実行します。例えば: php load_font.php 'Brush Script MT' https/fonts/brush-script-mt.ttf
このコマンドの使用方法の詳細については、 load_font.php のコードをお読みください。
フォントをDomPDFにロードする必要があります。詳細については、 this pag eを確認してください。
上記のBriansの回答に感謝しますが、私の場合は、「dompdf/www/fonts.php」を使用してフォントをインストールするという1つのオプションのみが機能しました。
含まれている管理サイトのdompdf/www/fonts.phpにブラウズしてフォントをインストールしました。 ( http://yoursite.com/sites/all/modules/print/lib/dompdf/www/fonts.php のようなものになります)
ページの下部に移動し、リンクをクリックします
_[Authenticate to access this section][1]
_
「dompdf_config.custom.inc.phpでパスワードを変更する必要があります」という警告が表示されます。
ここで、もう一度_[Authenticate to access this section][2]
_をクリックすると、ユーザー名とパスワードを要求されます。手順1で指定したユーザーのユーザー名とパスワードを入力します。
ブラウザで同じfonts.phpパスを再度参照すると、ページの下部に新しいフォントのインストールセクションがあります(画像で確認できます)、(ただし、最初にrockwell.ttfファイルとrockwell.afmファイルをfontsフォルダーに移動してから、ここにインストールしました)
目的のフォントttfファイルを選択してインストールします。インストールされ、インストールされたフォントで表示されましたが、うまくいきませんでした。そのため、新しいフォント用に.afmファイルを作成する必要がありました(ここではロックウェルフォントを使用したい)
rockwell.afmファイルを作成する手順。 1
これをdompdfの他の14種類のネイティブフォントのように行いましたが、これがどの程度受け入れられるかわかりません。しかし、それは私のために働いた。やりたかっただけです。
PHPファイルでdompdfのネイティブフォント名を見つけた場所にロックウェルフォントを追加しました
Dompdf/include/dompdf.cls.phpファイルの_public static $native_fonts
_配列に「ロックウェル」を追加しました
それでおしまい。このように私のためにrockwell.afmファイルを生成しました
使用したいフォントファミリを使用します
_ body {
font-family: 'rockwell';
font-size:10;
}
_
特定のフォントファミリでpdfを生成するには、dompdfライブラリを使用する必要があります。
$html ='<!doctype html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>';
$html.='</head><body>';
$html.="<style>
@font-face { font-family: 'Roboto Regular'; font-weight: normal; src: url(\'fonts/Roboto-Regular.ttf\') format(\'truetype\'); }
@font-face { font-family: 'Roboto Bold'; font-weight: bold; src: url(\'fonts/Roboto-Bold.ttf\') format(\'truetype\'); }
body{ font-family: 'Roboto Regular', sans-serif; font-weight: normal; line-height:1.6em; font-size:17pt; }
h1,h2{ font-family: 'Roboto Bold', sans-serif; font-weight: bold; line-height:1.2em; }
</style>";
$html.='test <br>
<span style="font-family:\'Open Sans\'"> test </span> <br> ';
$html.= '</body></html>';
$dompdf = new Dompdf\Dompdf();
$dompdf->load_html($html,'UTF-8');
$dompdf->set_paper('A4', 'portrait');
$dompdf->render();
$dompdf->stream();