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

PDF/Xの出力

JAVAコード

PDF/Xに準拠したファイルを出力します。

使用するソフトウェア:PDFlib/PDFlib+PDI/PPS 7 もしくはそれ以上
使用するデータ:フォントファイル、イメージファイル、ICC profile


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

public class starter_pdfx
{
  public static void main (String argv[])
  {
    /* データファイルの場所です。必要なように適合させます */
    String searchpath = "../data";

    pdflib p = null;
    String imagefile = "nesrin.jpg";

    int font, image, spot, icc;

    try {
      p = new pdflib();

      p.set_parameter("SearchPath", searchpath);

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

      if (p.begin_document("starter_pdfx.pdf", "pdfx=PDF/X-3:2002") == -1)
        throw new Exception("Error: " + p.get_errmsg());

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

      /* ICCプロファイルを必要としない標準出力意図
       * (例えば SWOP printing )の一つを使えます。

         p.load_iccprofile("CGATS TR 001", "usage=outputintent");

       * しかし、もしICCか Lab colorを使うとき、
       * 出力意図のICCプロファイルをロードしなければいけません。
       */
      if (p.load_iccprofile("ISOcoated.icc", "usage=outputintent") == -1)
      {
        System.err.print("Error: " +  p.get_errmsg() + "\n");
        System.err.print("ICC profileパッケージを"
                         + "インストールしてください。"
                         + "www.pdflib.com to run the "
                         + "PDF/X starter sample.\n");
        p.delete();
        System.exit(2);
      }

      p.begin_page_ext(595, 842, "");

      /* 埋め込まれたフォントはPDF/Xを要求します */
      font = p.load_font("LuciduxSans-Oblique", "unicode", "embedding");

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

      p.setfont(font, 24);

      spot = p.makespotcolor("PANTONE 123 C");
      p.setcolor("fill", "spot", spot, 1.0, 0.0, 0.0);
      p.fit_textline("PDF/X-3:2002 starter", 50, 700, "");

      /* RGBは ICCプロファイルの必要条件よりも劣化したものを映し出します。
       * よってsRGBを使います。
       */
      icc = p.load_iccprofile("sRGB", "");
      image = p.load_image("auto", imagefile, "iccprofile=" + icc);

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

      p.fit_image(image, 0.0, 0.0, "scale=0.5");

      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)










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