Tag:PDF ( 5 Posts)

WooCommerce PDF Invoices & Packing Slips日本語対応(フォント追加)

自分のハンドメイド作品の販売サイトを作ろうと、WooCommerceプラグインを使って準備をしています。
ちょっと格好つけて納品書とかPDFで出力したいなと思い、よいプラグインはないかなぁと探しているとWooCommerceにインボイス・納品書PDF出力をつけられるプラグイン見つけました!

めっちゃ便利でよくできてるプラグインなんですが、なんと日本語フォントに対応していない…。

調べるとプラグインのサイトにフォントの追加方法があったので日本語フォントを追加する作業をしてみました。

参考:Using custom fonts
 

1.プラグインフォルダ内のテンプレートフォルダを使用中のテーマファイルにコピーする

wp-content/plugins/woocommerce-pdf-invoices-packing-slips/templates/Simple
↓コピー
/wp-content/themes/使用中のテーマフォルダ/woocommerce/pdf/Simple-Custom
 

2.コピーしたフォルダ内にfontsフォルダを作成して使用したいフォントファイルを入れる

/wp-content/themes/使用中のテーマフォルダ/woocommerce/pdf/Simple-Custom/fonts
に無料で使える日本語フォントのIPAexフォントを入れました。

今回ゴシック体だけを使用するので、fontsフォルダにipaexg.ttfだけ入れました。
 

3.style.cssで使用したいフォントを指定する。

/wp-content/themes/使用中のテーマフォルダ/woocommerce/pdf/Simple-Custom/style.cssに
下記のように使用したいフォントについて追記します。

/* Load font */
@font-face {
    font-family: 'ipaexg';
    font-style: normal;
    font-weight: normal;
    src: local('ipaexg'), local('ipaexg'), url(<?php echo $this->get_template_path(); ?>/fonts/ipaexg.ttf) format('truetype');
}
@font-face {
    font-family: 'ipaexg';
    font-style: normal;
    font-weight: bold;
    src: local('ipaexg'), local('ipaexg'), url(<?php echo $this->get_template_path(); ?>/fonts/ipaexg.ttf) format('truetype');
}


その下にあるbodyのフォント指定を変更します。
body {
font-family: 'ipaexg','Open Sans', sans-serif;
}

これで日本語部分も正常に表示されるようになりました!

IPAmj明朝フォントでスペースが文字になるとき(TCPDFでPDF出力時)

戸籍統一文字などに含まれる6万字の漢字を収録したフリーのフォントIPAmj明朝フォント
ありがたく使わせていただいております。
これがフリーで使えるなんて、本当にすごいことです。

TCPDFにこのフォントを追加し、氏名を出力した際に姓と名の間に「全角スペース」を入れていたのですが、それがほかの文字に置き変わってPDF出力されてしまいました。

例えばこのような感じです。
大阪 太郎 様⇒大阪の太郎の様、大阪ー太郎ー様

解決策は単純でした。
全角スペースを半角スペースにするだけで、正常にスペースとして出力されました。

それだけ!

TCPDFでMulticellの正確な行数を取得する方法

久しぶりにはまりました。
TCPDFを使ってPDFを出力する際に、複数のMulticellの高さを合わせるために、
各セルの行数から最大値を取得したかったのですが、
TCPDFで用意されていたgetNumLines()getStringHeight()を使ってセルの行数や高さを取得すると何故か数値が安定せず。
どうやら改行を含むと正しく数値が取得できないようです。

どうしたものかとググって解決策見つけました!
ありがたやありがたや。
READ MORE

PDF出力にTCPDFを使う。

らPDFの出力にFPDFとMBFPDFというライブラリを利用していたが、
出力するデータの文字コードをShift-JISに変換する必要があって(UTF-8環境)、
JIS第3水準・第4水準あたりの漢字が出力できなかった。

で、人名の出力に利用していたので、困ったなということになって・・・、
UTF-8でPDFを出力できるライブラリがありました。
READ MORE

FPDFで使用するフォントを追加

PHPからPDFファイルを作成するための無料ライブラリFPDFで、
使用するフォントを追加するためのメモ。(日本語対応:MBFPDF使用)

今回は郵便振替の用紙を出力に必要だったのでOCRBフォントを追加する。

●フォントファイルを探す。(OCRB.TTF)

●TTFフォントからafmファイルを生成する。
(ttf2pt1.exeが必要です。ない場合は、下記手順でダウンロードできます。)
  1. FPDFのScriptのページから、Yann Sugereさんの「AddFont」をZIPでダウンロードして、解凍。
  2. Cドライブ直下とか、分かりやすいところ「addfont」フォルダをコピー
  3. addfontフォルダ内にフォントファイルをコピー
  4. コマンドプロンプトを起動して、addfontに移動(cd C:\addfont)
  5. ttf2pt1.exeを実行(ttf2pt1 -b OCRB.TTF OCRB)
  6. これでaddfont内にOCRB.afmが生成される。
●フォントを追加。定義ファイル(mbfpdf.php)を更新する。
(ローカルでPHPが動けばローカルで、PHPがなければサーバーにアップロードして、コマンドを実行。)
  1. fpdf/font/makefontにOCRB.afmをコピー
  2. mkttfdef.phpの13行目を変更($work = "OCRB.afm";)
  3. mkttfdef.phpを実行(php mkttfdef.php)
  4. fpdf/mbfpdf.phpにフォント名を追加(DEFINE("OCRB","OCRB");)
無事、OCRBフォントを追加して使用することができました。

FPDFを導入する際、参考にさせて頂きました。 こちらの記事も気になります。