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

PDF フォームの出力

JAVA コード


暗号化され、Web 上で速く表示され "Fast Web View" として知られている線形化されたフォームフィールドを含んだ PDF を出力します。
JavaScript には現在の日付をフィールドに自動的に表示することを、"ページを開く"アクションに割り当てています。

使用するソフトウェア:PDFlib/PDFlib+PDI/PPS 7 もしくはそれ以上
使用するデータ:無し


import java.io.*;
import com.pdflib.pdflib;
import com.pdflib.PDFlibException;

public class starter_webform
{
  public static void main (String argv[])
  {
    pdflib p = null;
    String optlist;
    int font, action;
    double llx=150, lly=550, urx=350, ury=575;

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

    /* JavaScriptは自動的にフィールドの中に日付を入れます */
    String js =
      "var d = util.printd(\"mm/dd/yyyy\", new Date());" +
      "var date = this.getField(\"date\");" +
      "date.value = d;";

    try {
      p = new pdflib();

      p.set_parameter("SearchPath", searchpath);

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

      /* 所有者のパスワードの変更を防ぎます */
      optlist = "linearize masterpassword=pdflib permissions={nomodify}";

      if (p.begin_document("starter_webform.pdf", optlist) == -1)
        throw new Exception("Error: " + p.get_errmsg());

      p.set_info("Creator", "PDFlib starter sample");
      p.set_info("Title", "starter_webform");

      optlist = "script={" + js + "}";
      action = p.create_action("JavaScript", optlist);

      optlist = "action={open=" + action + "}";
      p.begin_page_ext(595, 842, optlist);

      font = p.load_font("HeiseiMin-W3", "UniJIS-UCS2-H", "");

      if (font == -1)
        throw new Exception("Error: " + p.get_errmsg());

      p.setfont(font, 24);

      p.fit_textline("日付:", 125, lly+5, "position={right bottom}");

      /* tooltipは、フィールドからはみ出したテキストとして使われます */
      optlist =
        "tooltip={日付(自動的に入力されます)} " +
        "bordercolor={gray 0} font=" + font;
      p.create_field(llx, lly, urx, ury, "date", "textfield", optlist);

      lly-=100; ury-=100;
      p.fit_textline("名前:", 125, lly+5, "position={right bottom}");

      optlist =
        "tooltip={名前を入力してください} " +
        "bordercolor={gray 0} font=" + font;
      p.create_field(llx, lly, urx, ury, "name", "textfield", optlist);

      p.end_page_ext("");

      p.end_document("");

    } catch (PDFlibException e){
      System.err.print("PDFlib exception occurred:\n");
      System.err.print("[" + e.get_errnum() + "] " + e.get_apiname() +
        ": " + e.get_errmsg() + "\n");
    } catch (Exception e) {
      System.err.println(e.getMessage());
    } finally {
      if (p != null) {
        p.delete();
      }
    }
  }
}
JAVA1.5.0/PDFlib 7.0.0
(Dec 18, 2006)










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




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