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);
}
  













   SQLの窓    create:2006/11/26  update:2018/02/23   管理者用(要ログイン)





フリーフォントツール

SQLの窓ツール

SQLの窓フリーソフト

写真素材

一般ツールリンク

SQLの窓

フリーソフト

JSライブラリ