0

PDF ドキュメントの非常に小さなスペースに非常に長い文字列を追加する方法を見つける必要があります。

iTextSharpを使用しています。私はすでにコメント注釈 (バルーン) を追加しようとしましPdfAnnotation.CreateText()たが、それらの見た目/動作が気に入らなかったのです。ページが重くなりすぎ(ページごとに多くのコメントがありました)、それらの動作は多くの点で奇妙でした(アドビに感謝します)。

今、ページの「チャンク」にいくつかの簡単なツールチップを追加するか、javascript を使用してメッセージボックスをポップアップすることを考えていました (ここに示されているように: http://www.codehacker.com/ITEXTSHARP/chap15.aspx# )。しかし、非常に残念なことに、Acrobat (?) はそのような状況で Unicode 文字をサポートしていないようです。たとえば、私はこれを行います:

var javascript = new PdfAnnotation(
    w, 200f, 550f, 300f, 650f,
    PdfAction.JavaScript("app.alert('" + "Αρνάκι άσπρο και παχύ!" + "');\r", w));
chunk.SetAnnotation(javascript);

...そして、最良の場合、ユーザーがチャンクをクリックすると意味不明なメッセージボックスがポップアップします。

上記のコードでUnicodeを受け入れられるようにするための設定、または私が望むことを行う別の方法はありますか?


編集:

私は今これを見ました: https://stackoverflow.com/a/163065/964053 そして私はそのように私のコードを変更しようとしました:

var javascript = new PdfAnnotation(
    w, 200f, 550f, 300f, 650f,
    PdfAction.JavaScript((char)0xFEFF + "app.alert('" + "Αρνάκι άσπρο και παχύ!" + "');\r", w));
chunk.SetAnnotation(javascript);

しかし、何も変わらないようです...


EDIT2: 8進表現を使用(\141)しても、どちらも役に立たないようです...


EDIT3: これは、ダブルクリックするまでうまくいくようですが、内容のサイズに基づいてツールチップのサイズ自体を作成する必要があります:

var lToolTip = PdfFormField.CreatePopup(
    w, new Rectangle(tc.Left, tc.Bottom, tc.Right, tc.Top), val, true);
chunk.SetAnnotation(lToolTip);

提供された四角形は、まったく使用されていないようです...何かアイデアはありますか? PdfFormField.CreatePopup() が何を作成するのかはわかりませんが、マウスをその上に置くとポップアップが表示される小さなマークがページに表示されます。

4

1 に答える 1

1

私はあなたの編集にちょっと戸惑っています.何があなたにとってうまくいき、何がうまくいかないのかはっきりしていませんが、JavaScriptのユニコードの問題に関して: javaScript() メソッドには2つのバージョンがあることを知っていますか?

見るjavaScript(java.lang.String, com.itextpdf.text.pdf.PdfWriter, boolean)

boolean値を追加するtrueと、JavaScript 文字列は Unicode として解釈されます。これで問題が解決しない場合は、この回答を削除します。質問を明確にする (無関係な部分を切り取る) 場合は、別の試みを行います。

于 2013-05-25T08:19:41.073 に答える