iText は、無料のビールのように自由ではなく、言論の自由のように自由です。MPL/LGPL から AGPL への切り替えを回避するために試みたビジネス モデルの詳細については、http://lowagie.com/bumodelsを参照してください。
Q1: 動的 XFA フォームを読み取り専用にする
これは iText の最新バージョンでは簡単ですが、使用している古いバージョンではサポートされていません。http://lowagie.com/itext2を読んで、iText 4.2.0 を使用すべきではない理由を確認してください (私の知る限り、公式リリースでさえありません。単一の iText リリース)。たぶん、あなたは iTextSharp について話しているのでしょう。
Q2: 動的 XFA フォームのフラット化
動的な XFA フォームをフラット化する場合は、2 つのオプションがあります。Adobe LiveCycle ES を使用するか (腕と脚の費用がかかります)、iText の XFA Worker を使用します (これは、上に構築されたはるかに安価なクローズド ソース製品です)。 F/OSS iText の)。この製品に費やされたコストと工数を考えると、無料のビールのように無料のソリューションは見つからないと思います。私はそのような製品を知りません。
Q3: XFA フォームが動的かどうかを確認する方法
これについては、私の著書「iText in Action - Second Edition」で説明しています。あなたはすでにソリューションの半分を持っています。条件 1:isXfaPresent()
返す必要がありますtrue
。条件 2:getFields()
空のキー セットが必要です。readFieldnames()
この例のメソッドを参照してください。