PDFlib サンプル集(クックブック)
PDFlib で、UTF-8 フォーマットのテキストを読み、出力するサンプルプログラムです。
/* $Id: process_utf8.java,v 1.8 2013/02/20 10:35:49 stm Exp $
* Process UTF-8 data:
* Read text in the UTF-8 format and output it.
*
* Required software: PDFlib/PDFlib+PDI/PPS 9
* Required data: UTF-8 encoded text file
*/
import java.io.*;
import com.pdflib.pdflib;
import com.pdflib.PDFlibException;
public class process_utf8 {
public static void main(String argv[]) {
pdflib p = null;
String searchpath = "../input";
String infile = "../input/kraxi_paper_planes.utf8";
String outfile = "process_utf8.pdf";
String title = "Process UTF-8";
try {
p = new pdflib();
p.set_option("searchpath={" + searchpath + "}");
/* This means we must check return values of load_font() etc. */
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 + " $Revision: 1.8 $");
int font = p.load_font("Helvetica-Bold", "unicode", "");
if (font == -1)
throw new Exception("Error: " + p.get_errmsg());
p.begin_page_ext(0, 0, "width=a4.width height=a4.height");
/* Read UTF-8 text data from a file line by line */
FileInputStream fis = new FileInputStream(infile);
InputStreamReader isr = new InputStreamReader(fis, "UTF8");
BufferedReader br = new BufferedReader(isr);
int fontsize = 12;
p.set_text_option("font=" + font + " fontsize=" + fontsize);
String line = null;
double xpos = 50;
double ypos = 700;
while ((line = br.readLine()) != null) {
p.fit_textline(line, xpos, ypos, "");
ypos -= fontsize;
}
br.close();
isr.close();
fis.close();
/*
* Convert a UCS-2 string to UTF-8 (this is only to simulate a UTF-8
* data source. You will usually read the UTF-8 data from a file or
* database.)
*/
String text = "Kraxi Paper Planes, Inc.\u00AE";
byte[] utf8 = text.getBytes("UTF-8");
/* Convert the string back from UTF-8 to UCS-2 */
text = new String(utf8, "UTF-8");
/*
* In non Unicode capable languages use the "textformat" parameter
* to notify the PDFlib text output functions to process strings as
* UTF-8 strings.
*
* p.set_option("textformat=utf8");
*/
/* Output the text */
p.fit_textline(text, 50, 750, "font= " + font + " fontsize=14");
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();
}
}
}
}
(Apr 3, 2007 - Feb 20, 2014)