PHP による PDF の処理


  必要なファイル




結論から言うと、3つのファイルが必要で、一部変更する必要があります。

1) FPDF : 全ての基本ライブラリ(日本語が使えない)

2) japaneze.php : 上記サイトにある日本語を使用する為の拡張コード

3) FPDI : さらに、PDF の読み込みを実現した拡張ライブラリ(このままでは日本語が使えない)


上記よりダウンロードして、一つのディレクトリに以下のように保存して、php.ini の include_path に設定します。
include_path に設定できない場合は、このディレクトリの中でプログラムを作るか、各ファイル内の 相対パスを
変更する必要があります

  

[decoders]
   ascii85.php
   lzw.php
wrapper_functions.php
fpdf.php
fpdf_tpl.php
fpdi.php
fpdi_pdf_parser.php
japanese.php
pdf_context.php
pdf_parser.php
  

  japanese.php を変更

require('fpdi.php'); で fpdi を参照するようにし、
PDF_Japanese extends fpdi で、fpdi を元にしてから クラスを定義します

  

<?php
require('fpdi.php');

// ここには、配列が定義されています

class PDF_Japanese extends fpdi
{
  

  実行サンプルコード

  

<?php
# **********************************************************
# 外部ファイル
# **********************************************************
require_once( "conf.php" );
require_once( "common.php" );
require_once( "db.php" );
# 上記は、Webアプリ用の共通コードです

# 以下が PDF 用です。
require_once( "japanese.php");

# DB アクセス用のインスタンスを作成
$SQL = new DB( );

# PDF アクセス用のインスタンス作成
$pdf = new PDF_Japanese();
# Shift_JIS を使用する為に必要
$pdf->AddSJISFont();

# PDF を読み込んでページ数を得る
$pagecount = $pdf->setSourceFile("pdfdoc.pdf");
# ページ番号より ID を取得する
$tplidx = $pdf->ImportPage(1);

# ページを追加
$pdf->AddPage();
# フォントの属性を指定する。この環境で使用できる日本語は SJIS のみ
# 2番目は スタイル( bold 等 ) , 3番目は ポイントによるサイズ
$pdf->SetFont('SJIS','',18);
# テンプレート(既存のPDFページ) の属性を指定する( 90 は幅 )
$pdf->useTemplate($tplidx,10,10,90);

# 位置指定による書き出し( 通常は改行は自動で出力する )
$pdf->Text( 20, 15, "読み込んだPDFに日本語を表示しています" );

# 新しいページを追加
$pdf->AddPage();
# 画像をロード
$pdf->Image( "lightbox.jpg", 30,20 );

#データベースの処理
$Target = DBEnclose( 'v所属別支給額合計表\', $conf_db_type );

$Query = ApplyValue( "../main.sqltxt", TRUE );
$Column = $SQL->QueryEx( $Query . $Cond );
$nRow = 1;
while ( $Column ) {
	$pdf->Write( 8,$Column[0]);
	$pdf->Write( 8, " " );
	$pdf->Write( 8, $Column[1]);
	$pdf->Ln( 8 );
	$Column = $SQL->QueryEx( );
	$nRow++;
	if ( $nRow > 20 ) {
		$nRow = 1;
		$pdf->AddPage();
	}
}

# PDF を ブラウザに出力
$pdf->Output();
# 入力して PDF ファイルを閉じる
$pdf->closeParsers();

# DB の接続解除
$SQL->Close();

?>
  

  マニュアルリンク

英文ですと、Web で見れます。
日本語版は、同サイトでダウンロードできます。

FPDI は英文ですが、こちらから

  フォントの変更について

KozMinPro-Regular-Acro は、通常存在しないのでデフォルトが使用されています。

以下を指定して変更できます

1) MSPMincho
2) MSMincho
3) MSPGothic
4) MSGothic

これ以外にもクライアントに存在するフォントであれは指定する事ができます。

  

function AddSJISFont($family='SJIS')
{
	//Add SJIS font with proportional Latin
	$name='KozMinPro-Regular-Acro';
	$cw=$GLOBALS['SJIS_widths'];
	$CMap='90msp-RKSJ-H';
	$registry=array('ordering'=>'Japan1','supplement'=>2);
	$this->AddCIDFonts($family,$name,$cw,$CMap,$registry);
}
  

以下、フォント指定用
  

function AddSJISFont($font='MSMincho',$family='SJIS')
{
	//Add SJIS font with proportional Latin
	$name=$font;
	$cw=$GLOBALS['SJIS_widths'];
	$CMap='90msp-RKSJ-H';
	$registry=array('ordering'=>'Japan1','supplement'=>2);
	$this->AddCIDFonts($family,$name,$cw,$CMap,$registry);
}
  




yahoo  google  MSDN  MSDN(us)  WinFAQ  Win Howto  tohoho  ie_DHTML  vector  wdic  辞書  天気 


[phpVarious]
CCBot/2.0 (https://commoncrawl.org/faq/)
24/12/09 07:51:59
InfoBoard Version 1.00 : Language=Perl

1 BatchHelper COMprog CommonSpec Cprog CprogBase CprogSAMPLE CprogSTD CprogSTD2 CprogWinsock Cygwin GameScript HTML HTMLcss InstallShield InstallShieldFunc JScript JScriptSAMPLE Jsfuncs LLINK OldProg OracleGold OracleSilver PRO PRObrowser PROc PROconePOINT PROcontrol PROftpclient PROjscript PROmailer PROperl PROperlCHAT PROphp PROphpLesson PROphpLesson2 PROphpLesson3 PROphpfunction PROphpfunctionArray PROphpfunctionMisc PROphpfunctionString PROsql PROvb PROvbFunction PROvbString PROvbdbmtn PROvbonepoint PROwebapp PROwin1POINT PROwinSYSTEM PROwinYOROZU PROwindows ProjectBoard RealPHP ScriptAPP ScriptMaster VBRealtime Vsfuncs a1root access accreq adsi ajax amazon argus asp aspSample aspVarious aspdotnet aw2kinst cappvariety centura ckeyword classStyle cmaterial cmbin cmdbapp cmenum cmlang cmlistbox cmstd cmstdseed cmtxt cs daz3d db dbCommon dbaccess dnettool dos download flex2 flex3 flex4 framemtn framereq freeWorld freesoft gimp ginpro giodownload google hdml home hta htmlDom ie9svg install java javaSwing javascript jetsql jquery jsp jspTest jspVarious lightbox listasp listmsapi listmsie listmsiis listmsnt listmspatch listmsscript listmsvb listmsvc memo ms msde mysql netbeans oraPlsql oracle oracleWiper oraclehelper orafunc other panoramio pear perl personal pgdojo pgdojo_cal pgdojo_holiday pgdojo_idx pgdojo_ref pgdojo_req php phpVarious phpguide plsql postgres ps r205 realC realwebapp regex rgaki ruby rule sboard sc scprint scquest sdb sdbquest seesaa setup sh_Imagick sh_canvas sh_dotnet sh_google sh_tool sh_web shadowbox shgm shjquery shvbs shweb sjscript skadai skywalker smalltech sperl sqlq src systemdoc tcpip tegaki three toolbox twitter typeface usb useXML vb vbdb vbsfunc vbsguide vbsrc vpc wcsignup webanymind webappgen webclass webparts webtool webwsh win8 winofsql wmi work wp youtube