問題タブ [itext7]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - xmlworker が iText 7 コアにありません
JavaでiText 7を使用しようとしています。HTML/XHTML を PDF に変換したい。
には存在xmlworker.jar
しないようiText 7 core
です。
iText 7 の代替品は何ですか?
解決策はありますか?
itext - itext 7 で動作するようにコードを変更する方法
次のコードは、iText 5 で適切に動作します。
iText 7 の正しい構文は何ですか?
iText 7 に関する例とドキュメントはどこにありますか?
itext7 - itext 7 の PageSize
iText 7 の PageSize の静的値は ISO の「A」サイズのみですが、5 にはやや趣のある四分の一とペンギンのサイズを含む約 52 の値がありました。
これは永続的な状態になるのでしょうか、それともある時点で含まれますか? 必要なサイズの Rectangle を作成できることはわかっていますが、これは常に紙を失うのに役立ちます...
itext7 - itext 7を使用して列番号を決定するにはどうすればよいですか
itext 7 とその ColumnDocumentRenderer を使用してドキュメントを作成しました。最後の列にテキストを強制したいと思います。「最後の列」とは、たとえば、ColumnDocumentRenderer で 3 つの列を持つように定義された単一のページがあるが、テキストの列が 1 つしかない場合でも、列 3 に強制値を含める必要があることを意味します。したがって、私がいる列番号を知り、列を強制的に分割するメカニズムが必要になると思います(解決策を前提として、他の人は高く評価しています)。StackOverflow はこれを質問の形式で求めているため、(a) これらのメカニズムは何ですか? (b) 代替アプローチとは?
質問iText を使用してテキスト挿入ポイントを次の列にスキップするにはどうすればよいですか? 明らかに同様の質問をしますが、どうやらitextの以前のリリースを使用しているようです。私が見つけることができるColumnTextはありません。
助けてくれてありがとう。
java - iText7 は古い BouncyCastle ライブラリを参照します
OK、iText (7) および BouncyCastle (154) jar ファイルに対してコンパイルされたテスト Java プログラムを実行しようとしています。signDetached 関数を呼び出すときに OCSP 応答を追加しようとするまで、すべてが問題なく動作します。
私のコードは基本的に、iText Web サイトの次のコードです。
必要に応じて証明書とパスワードの詳細を置き換えました。すべて正常にコンパイルされますが、実行すると Java コードが次のエラーで失敗します。
スレッド「メイン」の例外 java.lang.NoClassDefFoundError: com.itextpdf.signatures.OcspClientBouncyCastle.getEncoded(OcspClientBouncyCastle.java:148) の org.bouncycastle.ocsp.RevokedStatus com.itextpdf.signatures.PdfSigner.signDetached(PdfSigner.java) :510) DECSignHello.DoSign(DECSignHello.java:314) で DECSignHello.main(DECSignHello.java:125) 原因: java.lang.ClassNotFoundException: org.bouncycastle.ocsp.RevokedStatus at java.net.URLClassLoader.findClass( URLClassLoader.java:600) の java.lang.ClassLoader.loadClassHelper(ClassLoader.java:777) の java.lang.ClassLoader.loadClass(ClassLoader.java:750) の sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java) :326) at java.lang.ClassLoader.loadClass(ClassLoader.java:731) ... 4 つ以上
OcspClientBouncyCastle
もう少し深く掘り下げると、iText7 が、はるかに古い BouncyCastle 実装 (151 より前のもの - このクラスを含むバージョンをまだ正確に特定していない) のクラス ファイルを参照するという Java クラスを使用していることがわかります。参照しているクラスはorg.bouncycastle.ocsp.RevokedStatus
. 問題の原因となっているコードは次のとおりです。
status instanceof org.bouncycastle.ocsp.RevokedStatus
の 148 行目OcspClientBouncyCastle.java
。151以降のBouncyCastle jarファイルには存在しません...
同じ iText クラスファイルは、他のすべての BouncyCastle 関連OcspClientBouncyCastle.java
のパスにある新しい BouncyCastle クラスも使用しているように見えるため、2 つの異なる BouncyCastle 実装を使用しているように見えます。org.bouncycastle.cert.ocsp.*
少なくとも私にはそう見えます。
OcspClientBouncyCastle.java
サービスプロバイダーから無効な OCSP 応答を受け取ったとき (失効した証明書を使用してテストしているため、予期されていた)、ソースコードによって参照されているクラスがクラスパスに見つからないため、OCSP テストが失敗する原因となっています。トラップできないエラーですべてが失敗します。
これで、次のように 154 BouncyCastle 実装の有効なクラスを使用して手動で OCSP 検証を行うことで、いわばこれを回避できます。
等々...
ただし、iText7関数 ( OCSP クライアント パラメーターのPdfSigner.signDetached
パスとインスタンス)を使用するとすぐに、コードが呼び出され、「古い」クラスが使用されます。OcspClientBouncyCastle
OcspClientBouncyCastle.java
クラスパスに古い(まだ特定されていない)BouncyCastle jarファイルを含めることで、そのエラーを回避できると思いますが、それは非常に雑然としたソリューションのようです。
ファイルを編集しOcspClientBouncyCastle.java
て誤った関数を修正し、BouncyCastle 関数の新しい実装を使用することもできますが、それもやり過ぎのようです。
私はコマンドラインで AIX 環境で作業していることに言及する必要があります。したがって、Java 開発ツール/環境はありませんvi
。クラスパスを (コンパイルおよび実行時に) 手動で構築し、ksh シェル スクリプトを使用してコードを実行しています。
結局のところ、私の質問はこれだと思います: iText がOcspClientBouncyCastle
このようにクラスを実装する合理的な理由を誰か思いつくことができますか?
私はこのフォーラムの長年のフォロワー/ユーザーですが、何かを投稿するのはこれが初めてです。私の「質問」の範囲はかなり広いので、前もってお詫び申し上げます。
サンプルコードは次のとおりです。
itext7 - 現在のページ位置で IText 7 を使用して PdfFormField を追加するにはどうすればよいですか
次の Scala コード スニペットを使用して、ページの特定の場所に PdfFormField を追加することができました。
ただし、できるようにしたいのは、挿入したページの最後の段落の後に追加することです。(つまり、このフィールドは直後に来ます)。適切な長方形を導き出す方法はありますか、それとももっと簡単な方法はありますか? ありがとう