iText で JavaScript を使用して 2 つのフィールドの違いを見つけたいと思います。
以下のコードを使用して、それらの合計を見つけることができます。
PdfStamper stamperResult = new PdfStamper(readersectionResult, new FileOutputStream(RESULT_NEW));
stamperResult .addJavaScript("var nameField = this.getField(\"total\");"+ "nameField.setAction(\"Calculate\",'AFSimple_Calculate(\"SUM\",\"total1\", \"total2\")')");
上記のコード スニペットで行ったのと同様に、「AFSimple_Calculate」を使用して違いを見つける方法はありますか?
編集ありがとう!あなたの提案を試しましたが、何らかの理由でうまくいかないようです。
stamperResult.addJavaScript(" var total1 = this.getField(\"value1\"); var total2 = this.getField (\"value2\"); var subtr = this.getField(\"total\"); subtr.value = total1.value - total2.value;");
改行をスペースで区切り、右エスケープ文字を追加しました。
AFメソッドを使用した減算に別のロジックを使用することも考えていました:このように
stamperResult.addJavaScript("var nameField = this.getField(\"total\");"+ "nameField.setAction(\"Calculate\",'AFSimple_Calculate(\"SUM\",\"total1\", \"-total2\")')");
上記のコードでは、合計 2 に -(負の値) を追加しようとしていたため、AF メソッドはまだ「SUM」ですが、合計 1 から減算されます。
しかし、それはうまくいきません。
以下の簡単なコードはうまくいくようです:
stamperResult.addJavaScript("var nameField = this.getField('total');" +
"nameField.setAction('Calculate'," +
"'subtract()');" +
"" +"function subtract(){this.getField('total').value
= (this.getField('total_1').value -this.getField('total_2').value); }");