パーソナルビジネスソフトとお役立ち情報のサイト
PDFlib
COOKBOOK - PDFlib サンプルプログラム

PDF タグの出力

PHP コード

更新やアクセスがしやすい構成情報があるドキュメントを出力します。

使用するソフトウェア:PDFlib/PDFlib+PDI/PPS 7
使用するデータ:無し(プログラム内で作られるダミーテキスト)


<?php 
  /* データファイルの場所です。必要なように適合させます */
  $searchpath = "../data/";

  $p = new PDFlib();

  # load_font()等からの戻り値を調べなければいけないことを表しています
  $p->set_parameter("errorpolicy", "return");

  $p->set_parameter("SearchPath", $searchpath);

  /* "lang"は有力なドキュメント言語を含んでいます */
  if ($p->begin_document("", "tagged=true lang=en") == 0) {
    die("Error: " . $p->get_errmsg());
  }

  $p->set_info("Creator", "PDFlib starter sample");
  $p->set_info("Title", "starter_tagged");

  /* テキストの間にスペースを自動的に作ります */
  $p->set_parameter("autospace", "true");

  /* 最初の構成要素をドキュメント構成ルートの結果 (=0)
   * として開きます。
   */
  $id = $p->begin_item("P", "Title = {Simple Paragraph}");

  $p->begin_page_ext(0, 0, "width=a4.width height=a4.height");

  $font = $p->load_font("HeiseiMin-W3", "Ext-RKSJ-H", "");
  if ($font == 0) {
    die("Error: " . $p->get_errmsg());
  }
  $p->setfont($font, 24.0);

  $p->show_xy("ようこそ!Tagged PDF へ!", 50, 700);
  $p->continue_text("このPDFはとてもシンプルな");
  $p->continue_text("ドキュメント構造です。");

  $p->end_item($id);

  /* ページナンバーは人工物として作られます。
   * よって、Acrobatのページを更新した時に反映されないでしょう。
   */
  $id_artifact = $p->begin_item("Artifact", "");
  $p->show_xy("ページ 1", 250, 100);
  $p->end_item($id_artifact);

  $p->end_page_ext("");

  $p->end_document("");

  /* PDFデータをバッファから取り出す */
  $buf = $p->get_buffer();
  $len = strlen($buf);

  /* httpヘッダを生成する */
  header("Content-type: application/pdf");
  header("Content-Length: $len");
  header("Content-Disposition: inline; filename=starter_block.pdf");
  
  print $buf;

  $p->delete();

?>
PHP5.1.2/PDFlib 7.0.0
(Dec 6, 2006)










■データファイルには「使用するデータ」と「CMap データ」が含まれます。




■「PDF 出力」はライセンスを取得されていない方がテストした結果と同様になるように、ライセンスキーを適用しない状態で出力したものです。そのため、「www.pdflib.com」スタンプが表示されていますが、ライセンスキーを適用すると表示されません。