ฉันต้องการค้นหาความแตกต่างระหว่างสองฟิลด์โดยใช้ JavaScript ใน iText
ฉันสามารถหาผลรวมได้โดยใช้โค้ดด้านล่าง:
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 เพื่อที่มันจะถูกลบออกจากผลรวม 1 แม้ว่าวิธี AF จะยังคงเป็น 'SUM'
แต่นั่นไม่ได้ผล
ดูเหมือนว่าโค้ดง่าย ๆ ด้านล่างจะทำงานได้:
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); }");