import java.io.*;
import com.pdflib.pdflib;
import com.pdflib.PDFlibException;
public class starter_block
{
public static void main (String argv[])
{
/* データファイルの場所です。必要なように適合させます */
String searchpath = "../data";
pdflib p = null;
double width, height;
String infile = "boilerplate.pdf";
int i, page, indoc, blockcount;
String optlist;
try {
p = new pdflib();
p.set_parameter("SearchPath", searchpath);
/* load_font()等からの戻り値を調べなければいけないことを
* 表しています。
*/
p.set_parameter("errorpolicy", "return");
if (p.begin_document("starter_block.pdf", "") == -1)
throw new Exception("Error: " + p.get_errmsg());
p.set_info("Creator", "PDFlib starter sample");
p.set_info("Title", "starter_block");
/* PDFが含まれている各ブロックを開きます */
indoc = p.open_pdi_document(infile, "");
if (indoc == -1)
throw new Exception("Error: " + p.get_errmsg());
/* 初めのページを開きます */
page = p.open_pdi_page(indoc, 1, "");
if (page == -1)
throw new Exception("Error: " + p.get_errmsg());
width = p.pcos_get_number(indoc, "pages[0]/width");
height = p.pcos_get_number(indoc, "pages[0]/height");
p.begin_page_ext(width, height, "");
/* 読み込みページを出力ページ上に配置します */
p.fit_pdi_page(page, 0, 0, "");
blockcount =(int) p.pcos_get_number(indoc,
"length:pages[0]/PieceInfo/PDFlib/Private/Blocks");
if (blockcount == 0)
throw new Exception("Error: " +infile +
"does not contain any PDFlib blocks");
/* ページ上の全てのブロックをループします */
for (i = 0; i < blockcount; i++)
{
String blockname;
String blocktype;
/* 最初のページ上の$i番目のブロックの名前とタイプを取得します。
* (テキスト/イメージ/PDF の一つ)
*/
blockname = p.pcos_get_string(indoc,
"pages[0]/PieceInfo/PDFlib/Private/Blocks[" + i + "]/Name");
blocktype = p.pcos_get_string(indoc,
"pages[0]/PieceInfo/PDFlib/Private/Blocks[" + i + "]/Subtype");
/* 全てのテキストブロックを視覚化します */
if (blocktype.equals("Text"))
{
optlist =
"fontname=Helvetica encoding=unicode " +
"fillcolor={rgb 1 0 0} " +
"bordercolor={gray 0} linewidth=0.25";
/* 中身としてブロック名を簡単に使います */
if (p.fill_textblock(page, blockname, blockname, optlist)== -1)
System.err.println("Warning: " + p.get_errmsg());
}
}
p.end_page_ext("");
p.close_pdi_page(page);
p.end_document("");
p.close_pdi_document(indoc);
} 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();
}
}
}
}
|