SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

フリーのPDF作成ライブラリ – HaruPDF

HaruPDF

PDFLibみたいなもの。
よくできてる。PDFLibの代わりに使える。
無料。日本語OK。
既存のPDFファイルを開いて追記するような処理はまだできない。
Zend_Pdfも日本語が使えるようになってきたが、Zend_Pdfだと日本語フォントが埋め込みになってしまう(ver1.8時点)。日本語を埋め込まないでPDF作成が可能。

インストール(Linux)

libharu が要る → http://libharu.org/

wget http://libharu.org/files/libharu-2.1.0.tar.gz
tar -xvzf libharu-X.X.X.tar.gz
cd libharu-X.X.X
./configure
make
make install

php用インターフェースを PECL から

http://pecl.php.net/package/haru
pecl install haru-0.0.1

peclコマンドを使わない場合はこちらでも。

wget http://pecl.php.net/get/haru-0.0.1.tgz
phpize
./configure --with-haru=/usr/local
make
make install

phpサンプルソース

php側では、php.ini を変更するか、使いたいときにdl(‘haru.so’)する。

<?php
dl('haru.so');

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

$page->beginText();

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

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

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

$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には対応してるみたい " . 'MS-Gothic', 'SJIS-win', 'UTF-8'));

$page->endText();


header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="haru.pdf"');
$pdf->output();

関連するメモ

コメント