SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

haruPDFで日本語フォントを使う例

haruPDFに組み込まれているフォントは、名前を指定するだけで使うことができる。

組み込まれている日本語フォントは、MS-Mincyo、MS-Gothic、MS-PMincyo、MS-PGothic。フォントファイルを用意したりする必要はない。

知らないと気づかないポイントは、HaruDoc::useJPFonts()、HaruDoc::useJPEncodings()を使うこと。

エンコードの指定と引数に渡す日本語の文字コードはいろいろな組み合わせができるのでお試しあれ。

どうもUTF-8は渡せないようなので、機種依存文字を使いたいときはSHIFT_jisにして渡すしかないような気がします。

サンプルコード(UTF-8で保存)

<?php
/**
* HaruPdfで日本語フォントを使う例
*/

$pdf = new HaruDoc;
$pdf->useJPFonts();
$pdf->useJPEncodings();

//pageを用意
$page = $pdf->addPage();

//文字出力開始
$page->beginText();

$insFont = $pdf->getFont('MS-Gothic', "90ms-RKSJ-H");
$page->setFontAndSize($insFont, 20);
$page->textOut(40, 780, mb_convert_encoding("ようこそ ABC ①② 髙 ", 'SJIS-win', 'UTF-8'));

$insFont = $pdf->getFont('MS-Mincyo', "EUC-H");
$page->setFontAndSize($insFont, 20);
$page->textOut(40, 700, mb_convert_encoding("あえいうえおあお ", 'eucjp-win', 'UTF-8'));

$insFont = $pdf->getFont('MS-PMincyo', "90ms-RKSJ-H");
$page->setFontAndSize($insFont, 30);
$page->textOut(40, 620, mb_convert_encoding("ようこそ HaruPDF!①②髙", 'SJIS-win', 'UTF-8'));

$insFont = $pdf->getFont('MS-PGothic', "90ms-RKSJ-H");
$page->setFontAndSize($insFont, 10);
$page->textOut(40, 600, mb_convert_encoding("UTF-8には対応してないのかな?", 'SJIS-win', 'UTF-8'));
$page->textOut(40, 590, mb_convert_encoding("SJIS-winに対応してるまぁよし ", 'SJIS-win', 'UTF-8'));

//文字出力終了
$page->endText();

//ついでなので、線描いてみます
$page->moveTo(100, 100);
$page->lineTo(200, 100);
$page->stroke();

$page->setLineWidth(5.0);
$page->moveTo(200, 200);
$page->lineTo(200, 400);
$page->stroke();

//ファイルとして保存するのもよい
//こうしてブラウザに返すのもよい
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="haru.pdf"');
$pdf->output();

関連するメモ

コメント