フォームを含むpdfがあります。データベースからデータを取得し、フォームのフィールドに自動的に入力するクラスを作成しようとしています。
私はすでに ITextSharp を試しましたが、PDF では問題なく動作しますが、その価格は予算外です。PDFをサーバーに保存するのではなく、クラスからStreamオブジェクトを返すことができるように、PDFをインポートし、データを設定し、できればストリームにPDFを保存できる無料のPDFパーサーが必要です。
このpdfリーダーを見つけましたが、動作しません。Null 参照エラーが多く、それらを「修正」しようとしても、フィールドが見つかりませんでした。
そのため、ドキュメントにはPDFを操作できると書かれているため、PdfBoxに移行しましたが、例が見つかりません。ここに私がこれまでに持っているコードがあります。
var document = PDDocument.load(inputPdf);
var catalog = document.getDocumentCatalog();
var form = catalog.getAcroForm();
form.getField("MY_FIELD").setValue("Test Value");
document.save("some location on my hard drive");
document.close();
問題はcatalog.getAcroForm()
、null を返しているため、フィールドにアクセスできないことです。PdfBox を使用してフィールド値を変更し、元に戻す方法を知っている人はいますか?
編集:
私はこの例を見つけました。これは私がやっていることのほとんどです。私のアクロフォームがpdfboxでnullになっているだけです。itextsharp はそれをうまく引き出すことができるので、そこにあることはわかっています。