1

Adobe LiveCycle を使用して PDF ドキュメントを作成しました。私が直面している問題は、ドキュメントの特定の位置に書式設定されたテキストを追加する必要があることです。

どうやってやるの?

    overContent.BeginText();
    overContent.SetTextMatrix(10, 400);
    overContent.ShowText("test");

これは、指定された位置に基本的なテキストを追加するだけであり、ドキュメント内で改行、箇条書きなどが必要です。

4

1 に答える 1

2

JavaでiTextを使用していますが、同様の状況にも遭遇しました。フォーマットされていないテキストで単純な改行を挿入しようとしていました。改行文字 (\n) は飛びません。私が思いついた解決策(そしてそれはきれいではありません)は次のとおりです。

// read in the sourcefile
reader = new PdfReader(path + sourcefile);

// create a stamper instance with the result file for output
stamper = new PdfStamper(reader, new FileOutputStream(path + resultfile));

// get under content (page)
cb = stamper.getUnderContent(page);
BaseFont bf = BaseFont.createFont();

// createTemplate returns a PdfTemplate (subclass of PdfContentByte)
// (width, height)
template = cb.createTemplate(500, 350);

Stack linelist = new Stack();
linelist.push("line 1 r");
linelist.push("line 2 r");
linelist.push("line 3 r");
int lineheight = 15;
int top = linelist.size() * lineheight;

for (int i = 0; i < linelist.size(); i++) {
    String line = (String) linelist.get(i);
    template.beginText();
    template.setFontAndSize(bf, 12);
    template.setTextMatrix(0, top - (lineheight * i));
    template.showText(line);
    template.endText();
}

cb.addTemplate(template, posx, (posy-top));
stamper.close();
  1. 行を配列/スタック/リストに分割します
  2. そのリストとsetTextを一度に1行ずつループします

より良い方法があるはずですが、これは私の状況ではうまくいきました(当分の間)。

于 2010-02-25T20:19:48.413 に答える