/* * 基本的な出力: * 簡単なテキスト、ベクターグラフィック、画像を出力します。 * * 必要な製品: PDFlib/PDFlib+PDI/PPS 10 * 必要なデータ: 画像データ */ package com.pdflib.cookbook.pdflib.general; import com.pdflib.pdflib; import com.pdflib.PDFlibException; public class starter_basic { public static void main(String argv[]) { /* 必要に応じてファイルの場所を指定する */ String searchpath = "../input"; String outfile = "starter_basic.pdf"; String title = "Starter Basic"; pdflib p = null; String imagefile = "nesrin.jpg"; String optlist; int image; int exitcode = 0; try { p = new pdflib(); p.set_option("searchpath={" + searchpath + "}"); /* load_font()の戻り値を確認する */ p.set_option("errorpolicy=return"); if (p.begin_document(outfile, "") == -1) throw new Exception("Error: " + p.get_errmsg()); p.set_info("Creator", "PDFlib Cookbook"); p.set_info("Title", title); /* 最初のページを始める前に画像をロードし、すべてのページで * 使用できるようにする */ image = p.load_image("auto", imagefile, ""); if (image == -1) throw new Exception("Error: " + p.get_errmsg()); /* 1 ページ目 */ p.begin_page_ext(0, 0, "width=a4.width height=a4.height"); /* テキストを配置するために NotoSerif-Regular フォントと unicode * エンコーディングを使用する。 * そして、unicode テキストを PDFlib に渡すさまざまなオプションの * デモを行う。 */ optlist = "fontname={NotoSerif-Regular} fontsize=24 "; /* プレーンASCIIテキスト */ p.fit_textline("en: Hello!", 50, 700, optlist); /* Unicodeコードポイント */ p.fit_textline("gr: \u0393\u03B5\u03B9\u03AC!", 50, 650, optlist); p.fit_textline("ru: \u041F\u0440\u0438\u0432\u0435\u0442!", 50, 600, optlist); /* PDFlib の文字参照 */ p.fit_textline("es: ¡Hola!", 50, 550, optlist + " charref=true"); p.fit_image(image, 0.0, 0.0, "scale=0.25"); p.end_page_ext(""); /* 2 ページ目 */ p.begin_page_ext(0, 0, "width=a4.width height=a4.height"); /* 塗りつぶし色を設定するさまざまな方法を示す */ /* 赤の長方形 */ p.set_graphics_option("fillcolor=red"); p.rect(200, 200, 250, 150); p.fill(); /* 青の円 */ p.set_graphics_option("fillcolor={rgb 0 0 1}"); p.arc(400, 600, 100, 0, 360); p.fill(); /* 太い灰色の線 */ p.set_graphics_option("fillcolor={gray 0.5}"); p.setlinewidth(10); p.moveto(100, 500); p.lineto(300, 700); p.stroke(); /* * データを一度だけPDFにコピーし、同じ画像ハンドルを使用する。 */ p.fit_image(image, 150.0, 25.0, "scale=0.25"); p.end_page_ext(""); /* 3 ページ目 */ p.begin_page_ext(0, 0, "width=a4.width height=a4.height"); /* 画像をあらかじめ決められた大きさの枠に合わせる(歪みなし) */ optlist = "boxsize={400 400} position={center} fitmethod=meet"; p.fit_image(image, 100, 200, optlist); p.end_page_ext(""); p.close_image(image); p.end_document(""); } catch (PDFlibException e) { System.err.println("PDFlib exception occurred:"); System.err.println("[" + e.get_errnum() + "] " + e.get_apiname() + ": " + e.get_errmsg()); exitcode = 1; } catch (Exception e) { System.err.println(e); exitcode = 1; } finally { if (p != null) { p.delete(); } System.exit(exitcode); } } }