<?php
    
/*
	class _MBFPDF extends MBFPDF
	{
		// MBFPDF のサブクラスとして _MBFPDF を宣言
		function Header(){
			$headerTopMargin = 15;
			$headerLeftMargin = 10;
			$innerMargin = 8;
			$headerHeight = 18;
			$headerWidth = 160;
			
			// フォント指定
			$pdf->SetFont(KOZMIN,'B', 14);
		
			// タイトル '診療情報提供書'
			$x = $headerLeftMargin;
			$y = 2;
			$this->SetXY($x, $y);
			$this->Cell($headerWidth, 5, docName(), 0, 0, 'C');
				
			// 宛先
			$x += $innerMargin;
			$y += 15;
			$this->SetFont(KOZMIN,'B', 12);
			$this->SetXY($x, $y);
			$this->Cell($headerWidth, 5, shujii(), 0, 0, 'L');
		
			// 年月日
			$this->SetFont(KOZMIN,'B', 10);
			$this->SetXY($x, $y);
			$this->Cell($headerWidth-15, 5, entryDate(),0,0,'R');
	
			// コンテンツ記述枠を描画
			$x = $headerLeftMargin;
			$y += 10;
			$this->Rect($x, $y, $headerWidth, 200);
			
			if (($this->PageNo() == 1) && hasPatientInfo()){
				// 氏名不要のページや２ページ目以降ではこのヘッダー部分は表示されない
				
				// 氏名、性別
				$x += $innerMargin;
				$y += 5;
				$this->SetXY($x, $y);
				$this->Cell($headerWidth, 5, shimei(), 0, 0, 'L');

 
				// 年令・生年月日
				$rightX = $headerLeftMargin+$headerWidth/2+14;
				$this->SetFont(KOZMIN,'B', 10);
				$this->SetXY($rightX, $y);
				$this->Cell($headerWidth, 5, birthday(), 0, 0, 'L');
			
				// 住所
				$y += 6;
				$this->SetXY($x, $y);
				$this->Cell($x, 5, jyuusho(), 0, 0, 'L');
				
				// 電話
				$this->SetXY($rightX, $y);
				$this->Cell($headerWidth, 5, denwa(), 0, 0, 'L');
				
				// 患者情報を表示しない場合
				// ヘッダー罫線のみ描画
				$x = $headerLeftMargin;
				$y += 10;
				$this->Line($x + 8, $y, $x + $headerWidth - 8, $y);
			}
			
			// Line break
			$this->Ln(15);
		}
	}
	
    function footer($obj){
        $footerTopMargin = 15;
        $footerLeftMargin = 10;
        $footerHeight = 22;
        $footerWidth = 160;
        
        // フォント指定
        $this->SetFont(KOZMIN,'B', 10);
        
        //Go to 1.5 cm from bottom
        $this->SetY(-30);
        
        // フッター内容
        $x = $footerLeftMargin + 8;
        $y = $this->GetY() + 2;
        $this->SetXY($x, $y);
        $this->SetFont(KOZMIN,'B', 12);
        $st = convert($obj, 'hospitalName');
        $this->Cell($footerWidth, 10, $st, 0,0,'L');
        $this->SetXY($footerLeftMargin + $footerWidth/2 + 10, $y);
        // 住所
        $y += 6;
        $this->SetFont(KOZMIN,'B', 10);
        $this->SetXY($x, $y);
        $this->Cell($footerWidth, 10, facilityAddress(), 0,0,'L');
        // 電話
        $y += 6;
        $this->SetXY($x, $y);
        $this->Cell(35, 10, facilityPhone(), 0,0,'L');
        // FAX
        $this->Cell(35, 10, facilityFAX(), 0,0,'L');
        
        if ($this->PageNo() == 1){
            // １ページ目のみ「医師サイン」あり
            $x = $footerLeftMargin + $footerWidth/2 + 20;
            $this->SetY(-30);
            $y = $this->GetY() + 2;
            $this->SetXY($x, $y);
            $this->SetFont(KOZMIN,'B', 10);
            $this->Cell(30, 10, "医師サイン", 0,0,'L');
            // ページ数の印字なし
        } else {
            // ２ページ目以降は「医師サイン」なし
            // ページ数を印字
            $this->SetY(-30);
            $y = $this->GetY() + 16;
            $this->SetXY($footerLeftMargin, $y);
            $this->SetFont(KOZMIN,'B', 8);
            $pageNum = 'Page '.$this->PageNo();
            $this->Cell($footerWidth, 5, $pageNum, 0, 0,'R');
        }
    }
     */
    
    function convert($obj, $name){
        // JSON から文字を取り出して返す
        return mb_convert_encoding($obj[$name], "SJIS", "UTF-8");
    }

	
    define('FPDF_FONTPATH','/Applications/MAMP/htdocs/FPDF/fpdf153/font/');
	require('../FPDF/fpdf153/mbfpdf.php');
	require("./printLib.php");
	
    $value = $_GET['value']; $value = stripslashes($value);
    $printObj = json_decode($value, true);

	$pageWidth = 160;			// 左右カラム合わせた外枠全体の幅
	$leftMargin = 10;			// 画面左端からの左カラムまでのマージン
	$innerMargin = 8;			// 枠から文章行頭までのマージン
	$rowHeight = 5;				// １行の高さ
	
	$pdf = new MBFPDF('P', 'mm', array(180, 256)); // ##
	
	// 文書中のフォント設定
	$pdf->AddMBFont(KOZMIN ,'SJIS');
    
	if (strlen($printObj['isSmallFont']) > 0){
		$pdf->SetFont(KOZMIN,'B', 9);
		$rowHeight = 4;
	} else {
		$pdf->SetFont(KOZMIN,'B', 10);
		$rowHeight = 6;
	}
	
	// header() や footer() はコンテンツ印刷時に自動的に挿入される
	$pdf->SetTopMargin(30);
	$pdf->SetAutoPageBreak(true, 35); // 下端から 35 の距離で改ページ
	
	// コンテンツの印刷
    $pdf->Open();
	$pdf->AddPage();
	
    $x = $leftMargin + $innerMargin;
	$pdf->SetX($x);
	$w = $pageWidth - $innerMargin * 2;
    
    /////////////////////////////////
    ///// HEADER ////////////////////
    $headerTopMargin = 15;
    $headerLeftMargin = 10;
    $innerMargin = 8;
    $headerHeight = 18;
    $headerWidth = 160;
    
    // フォント指定
    $pdf->SetFont(KOZMIN,'B', 14);
    
    // タイトル '診療情報提供書'
    $x = $headerLeftMargin;
    $y = 2;
    $pdf->SetXY($x, $y);
    $pdf->Cell($headerWidth, 5, convert($printObj,'documentName'), 0, 0, 'C');
    
    // 宛先
    $x += $innerMargin;
    $y += 15;
    $pdf->SetFont(KOZMIN,'B', 12);
    $pdf->SetXY($x, $y);
    $pdf->Cell($headerWidth, 5, convert($printObj,'addressee'), 0, 0, 'L');
    
    // 年月日
    $pdf->SetFont(KOZMIN,'B', 10);
    $pdf->SetXY($x, $y);
    $pdf->Cell($headerWidth-15, 5, convert($printObj,'timestamp'),0,0,'R');
	
    // コンテンツ記述枠を描画
    $x = $headerLeftMargin;
    $y += 10;
    $frameTop = $y;
    $pdf->Rect($x, $y, $headerWidth, 200);
    
    $hasPatientInfo = convert($printObj,'hasPatientInfo');
    if (($pdf->PageNo() == 1) && (strlen($hasPatientInfo) > 0)){
        // 氏名不要のページや２ページ目以降ではこのヘッダー部分は表示されない
        
        // 氏名、性別
        $x += $innerMargin;
        $y += 5;
        $pdf->SetXY($x, $y);
        $name = convert($printObj,'patientName');
        $sex = convert($printObj,'sex');
        $pdf->Cell($headerWidth, 5, "氏名： $name 様 ( $sex )", 0, 0, 'L');

        // 年令・生年月日
        $rightX = $headerLeftMargin+$headerWidth/2+14;
        $pdf->SetFont(KOZMIN,'B', 10);
        $pdf->SetXY($rightX, $y);
        $age = convert($printObj,'age');
        $birthDate = convert($printObj,'birthDate');
        $pdf->Cell($headerWidth, 5, "年令：$age 才 ( $birthDate 生 )", 0, 0, 'L');

        // 住所
        $y += 6;
        $pdf->SetXY($x, $y);
        $patientAddress = convert($printObj,'patientAddress');
        $pdf->Cell($x, 5, "住所：$patientAddress", 0, 0, 'L');
        
        // 電話
        $pdf->SetXY($rightX, $y);
        $patientPhone = convert($printObj,'patientPhone');
        $pdf->Cell($headerWidth, 5, "電話：$patientPhone", 0, 0, 'L');

        // 患者情報を表示しない場合
        // ヘッダー罫線のみ描画
        $x = $headerLeftMargin;
        $y += 10;
        $pdf->Line($x + 8, $y, $x + $headerWidth - 8, $y);
    }
    
    // Line break
    $pdf->Ln(15);

    
    /////////////////////////////////
    ///// CONTENTS //////////////////
    $x = $headerLeftMargin + $innerMargin;
    $y = $pdf->GetY();
    
    $pdf->SetXY($x, $y);
	$pdf->MultiCell($w, $rowHeight, convert($printObj, 'greetings'), 0, 'L');
    
	$pdf->SetX($x);
	$pdf->MultiCell($w, $rowHeight, convert($printObj, 'contents'), 0, 'L');
    
    
    /////////////////////////////////
    ///// FOOTER ////////////////////
    $footerTop = 197;
    $footerTopMargin = 15;
    $footerLeftMargin = 10;
    $footerHeight = 22;
    $footerWidth = 160;
   
    // フォント指定
    $pdf->SetFont(KOZMIN,'B', 10);
    
    //Go to 1.5 cm from bottom
    $pdf->SetY($footerTop);
    
    // フッター内容
    $x = $footerLeftMargin + 8;
    $y = $pdf->GetY() + 2;
    $pdf->SetXY($x, $y);
    $pdf->SetFont(KOZMIN,'B', 12);
    $pdf->Cell($footerWidth, 10, convert($printObj,'hospitalName'), 0,0,'L');
    $pdf->SetXY($footerLeftMargin + $footerWidth/2 + 10, $y);
    // 住所
    $y += 6;
    $pdf->SetFont(KOZMIN,'B', 10);
    $pdf->SetXY($x, $y);
    $pdf->Cell($footerWidth, 10, convert($printObj,'hospitalAddress'), 0,0,'L');
    // 電話
    $y += 6;
    $pdf->SetXY($x, $y);
    $phone = "電話：".convert($printObj,'hospitalPhone');
    $pdf->Cell(35, 10, $phone, 0,0,'L');
    // FAX
    $x = $pdf->GetX() + 3;
    $pdf->SetX($x);
    $fax = "FAX：".convert($printObj,'hospitalFAX');
    $pdf->Cell(35, 10, $fax, 0,0,'L');
    
    $pdf->SetY($footerTop);
    if ($pdf->PageNo() == 1){
        // １ページ目のみ「医師サイン」あり
        $x = $footerLeftMargin + $footerWidth/2 + 20;
        $y = $pdf->GetY() + 2;
        $pdf->SetXY($x, $y);
        $pdf->SetFont(KOZMIN,'B', 10);
        $pdf->Cell(30, 10, "医師サイン", 0,0,'L');
        
        // ページ数の印字なし
        
        // コンテンツ記述枠を描画
//        $x = $headerLeftMargin;
 //       $y = $frameTop;
//        $pdf->Rect($x, $y, $headerWidth, 200);
    } else {
        // ２ページ目以降は「医師サイン」なし
        // ページ数を印字
        $y = $pdf->GetY() + 16;
        $pdf->SetXY($footerLeftMargin, $y);
        $pdf->SetFont(KOZMIN,'B', 8);
        $pageNum = 'Page '.$pdf->PageNo();
        $pdf->Cell($footerWidth, 5, $pageNum, 0, 0,'R');
        
        // コンテンツ記述枠を描画
//        $x = $headerLeftMargin;
//        $y = $frameTop;
//        $pdf->Rect($x, $y, $headerWidth, 200);
    }
    
	$pdf->Output(); // $pdf->Output("docMaker.pdf","I"); では具合が悪い

?>