php TFPDF でファイルを生成しているのですが、

フォントを埋め込まない方法を教えて下さい。

サブセットも埋め込みたくないと考えています。

TCPDF ではなく、TFPDF です。

これと同じ様な事は出来ないでしょうか。
$pdf->setFontSubsetting(false);

宜しくお願いします。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2017/02/01 02:18:26
  • 終了:2017/02/08 02:20:03

回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4584ベストアンサー獲得回数19242017/02/01 19:26:40

ポイント100pt

tFPDF is a version of FPDF, which supports UTF-8 and font-subsetting.

GitHub - rev42/tfpdf: tFPDF is a version of FPDF, which supports UTF-8 and font-subsetting.

とあります。
そもそも tFPDF には、「フォント埋め込みをしない」という機能が無いと思いますので、tFPDF を使うならソースをいじるしかないと思います。

https://github.com/rev42/tfpdf/blob/master/src/tFPDF.php
ソースを見てみると、FPDF の 1.7 を改変したらしいことが分かります。

ベースとなった FPDF の最新は、1.81 (実質 1.8.1) らしいのですが、1.7 のソースと比較すると UTF-8 とフォント埋め込みに対応するために追加・変更したことが分かります。

ざっとソースをながめただけですが、

  • 2059行目の _putfonts メソッドを呼んでいるところをコメントアウトしちゃう(乱暴か?)
  • 1849~1963行目の _putfonts メソッド内の TTF を処理しているところをコメントアウトしちゃう

# 行番号は tFPDF 1.24 に基づきます

TCPDF のソースも軽くながめてみたんですが、setFontSubsetting(false) をしても、PDF の Font オブジェクトを全く埋め込まない、というわけではなさそうなので、FPDF → tFPDF で追加されたコードのうち、フォント埋め込みの処理だけを削っちゃうのが良いんじゃないかな、という気がします。

# 試してなくて済みません


もしかして、ここから tFPDF にたどりついたんでしょうか。
http://qiita.com/y_irabu/items/23e67ad92e19256cde4e

でなければ、UTF-8 対応が必要ないなら FPDF + japanese.php で、というのもあるかと思ったのですが。

id:worldtravel

ありがとうございます。

教えて頂いた通り試したのですが、
どちらも、文字が何も表示しなくなってしまいました。

UTF-8 は使いたいのです。
また、fontのライセンスに関して、万一にも問題にはしたくないのです。

ですので、サブセットも含め、一切埋め込みはしたくないのです。

日本語や英語のpdfを作る際は mbfpdf.php を使っており、全く埋め込みはなしで出来ました。
しかし、他の言語(中国語、タイ語など)は mbfpdf.php では無理なようでしたので、
tFPDFを使いました。

ところが、出来上がったファイルをチェックしたら
フォントが埋め込まれている事に気がついたのです。

2017/02/02 00:08:25
id:worldtravel

こちらを解決するのは難しそうなので、
フォントでの解決を試みます。

ライセンスの質問を出したので、
もしご存知でしたら、教えて頂ければ幸いです。

ありがとうございました。

2017/02/02 14:05:47

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません