<?php

define
('PATH_CMaps''/usr/local/pdflib7/resource/cmap');

function 
to_utf8($s) {
  return 
mb_convert_encoding($s"utf-8""euc-jp");
}

$text "PDFlib 7 の新しいテーブル作成機能では、複雑なテーブルを自動的に作成することができます。\nこの機能を利用することによりテーブルのセルの内容を元に自動的にテーブルを調整するため、プログラマは手間の掛かる行や列の設定を手動で行う必要が無くなります。\nまた、テーブルは複数の列やページに分割可能です。\nテーブルのセルには1行/複数行の文字列、画像、PDF のページを入れることができ、また境界線の色、背景色、セルの区切りなど、色々なオプションを設定できます。";

$p PDF_new();

PDF_set_parameter($p"SearchPath"PATH_CMaps);
PDF_set_parameter($p"errorpolicy""return");

// Acrobat 5, 6, 7, 8 で読めるようにする場合、1.4 を指定します。
// Acrobat 6, 7, 8 で読めるようにする場合、1.5 を指定します。
// Acrobat 7, 8 で読めるようにする場合、1.6 を指定します。
// Acrobat 8 のみで読めるようにする場合、1.7 を指定します。
//   ※compatibility オプションのデフォルト値は 1.6 です。
if (PDF_begin_document($p"""compatibility=1.5") == 0) {
    die(
"Error: " PDF_get_errmsg($p));
}

PDF_begin_page_ext($p595842"");

/* UnicodeエンコーディングとしてUTF-8を設定 */
PDF_set_parameter($p"textformat""utf8");

/* (1) シンプルなテキストフロー */
$tf PDF_create_textflow($pto_utf8($text), "fontname=KozGoPro-Medium fontsize=10 encoding=UniJIS-UCS2-H");
if (
$tf == 0) {
  echo 
PDF_get_errmsg($p);
  exit;
}
PDF_fit_textflow($p$tf50700200600"");
PDF_delete_textflow($p$tf);

/* (2) _boxfullのサンプル */
$tf PDF_create_textflow($pto_utf8($text), "fontname=KozGoPro-Medium fontsize=10 encoding=UniJIS-UCS2-H");
$y 700;
while (
PDF_fit_textflow($p$tf450$y550$y-40"") == "_boxfull") {
    
$y -= 100;
}
PDF_delete_textflow($p$tf);

/* (3) 様々なオプション(一例) */
$options "leftindent=15 rightindent=10 parindent=10 alignment=justify leading=140% fontname=KozGoPro-Medium fontsize=10 encoding=UniJIS-UCS2-H textwarning=true";
$tf PDF_create_textflow($pto_utf8($text), $options);
PDF_fit_textflow($p$tf50450350350"");
PDF_delete_textflow($p$tf);

/* (4) インラインマクロのサンプル */
$text "<macro {
H1 {leftindent=15 rightindent=10 alignment=center fontname=KozGoPro-Medium encoding=UniJIS-UCS2-H fontsize=12}
Body {leftindent=15 rightindent=10 alignment=justify fontname=KozMinProVI-Regular fontsize=8 encoding=UniJIS-UCS2-H}
}>
<&H1>マクロサンプル
<&Body>PDFlib 7 の新しいテーブル作成機能では、複雑なテーブルを自動的に作成することができます。\nこの機能を利用することによりテーブルのセルの内容を元に自動的にテーブルを調整するため、プログラマは手間の掛かる行や列の設定を手動で行う必要が無くなります。\nまた、テーブルは複数の列やページに分割可能です。\nテーブルのセルには1行/複数行の文字列、画像、PDF のページを入れることができ、また境界線の色、背景色、セルの区切りなど、色々なオプションを設定できます。"
;

$options "leftindent=15 rightindent=10 parindent=10 alignment=justify leading=140% fontname=KozGoPro-Medium fontsize=8 encoding=UniJIS-UCS2-H textwarning=true";

$tf PDF_create_textflow($pto_utf8($text), $options);
PDF_fit_textflow($p$tf5025035050"");
PDF_delete_textflow($p$tf);

PDF_end_page_ext($p"");

PDF_end_document($p"");

$buf PDF_get_buffer($p);
header("Content-Type: application/pdf");
header("Content-Length: " strlen($buf));
header("Content-Disposition: inline; filename=textflow_sample.pdf");
print 
$buf;

PDF_delete($p);
?>