5

The Flying Saucer Projectを使用して HTML ファイルを PDF 形式に変換します。これは、繰り返し情報を含む文書です - 建物とその住所、それらを要素と呼びましょう。ドキュメントの最後に、インデックスを作成する必要があります。各インデックス エントリには、要素が追加されたページを参照するページ番号が必要です。1 ページに収まる要素の数はさまざまです。

ドキュメント インデックスを作成するにはどうすればよいですか? または、ライブラリが特定のタイプの HTML 要素を PDF ドキュメントに追加している間、どのように通知を受け取ることができますか?

4

2 に答える 2

8

これを試して:

CSSで

ol.toc a::after {  content: leader('.') target-counter(attr(href), page);}

HTMLで

<h1>Table of Contents</h1>
<ol class='toc'>
<li><a href=\"#chapter1\">Loomings</a></li>
<li><a href=\"#chapter2\">The Carpet-Bag</a></li>
<li><a href=\"#chapter3\">The Spouter-Inn</a></li>
</ol>

<div id="chapter1">Loomings</div>
于 2015-01-28T13:26:45.087 に答える
1

考えられる答えを見つけました。org.xhtmlrenderer.render.BlockBoxあなたはクラスで遊び始めなければなりません。メソッドpublic void layout(LayoutContext c, int contentStart)は、PDFドキュメント内の任意のHTML要素を適切に配置するために使用されます。このメソッドは、要素を数回繰り返します。最後の反復の後、有効なページ番号が設定されます。

たとえばクラス属性を使用して、インデックスを作成する要素にマークを付けると、次のコードを使用してページ番号を取得できます。

String cssClass = getElement().getAttribute("class");
if(!cssClass.equals("index")) {
    int pageNumber = c.getRootLayer().getPages().size();
    /* ... */
}
于 2010-10-11T14:19:42.993 に答える