स्वचालित गणना फ़ील्ड iText के साथ काम नहीं करते हैं

मेरे पास एक इंटरैक्टिव पीडीएफ फॉर्म है जिसमें कुल क्षेत्र शामिल है, वे फ़ील्ड स्वचालित रूप से पूरा करते हैं जब अन्य फ़ील्ड उपयोगकर्ताओं द्वारा भरे जाते हैं, और यह मैन्युअल रूप से बहुत अच्छी तरह से काम करता है। लेकिन जब मैं जावा के साथ iText का उपयोग करके इसे प्रोग्रामेटिक रूप से भरता हूं, तो सामान्य एक बहुत अच्छी तरह से भरता है लेकिन स्वचालित गणना वाले लोग काम नहीं करते हैं और शून्य दिखाते हैं।

static String book = "myForm.pdf";
static String bookstamp = "myFormTest.pdf";
PdfReader reader = new PdfReader (book); 
PdfStamper stamper = new PdfStamper (reader, new FileOutputStream (String.format (bookstamp))); 
stamper.getAcroFields ();
stamper.setField ("ca50", "15000");
stamper.getAcroFields() ;
stamper.setField ("ca30", "150");
stamper.close ();
0
क्या आपके पास कुछ कोड है?
जोड़ा लेखक kmas, स्रोत
आप अपनी पोस्ट संपादित कर सकते हैं। ;)
जोड़ा लेखक kmas, स्रोत

1 उत्तर

पीडीएफ में क्षेत्र मूल्यों की स्वचालित गणना पीडीएफ में जावास्क्रिप्ट के माध्यम से होती है। कुछ घटनाओं के मामले में (उदा। फ़ील्ड का मूल्य बदल गया या खोए गए फ़ील्ड का फोकस) यह जावास्क्रिप्ट निष्पादित किया गया है और फ़ील्ड मान को नए गणना में सेट किया गया है।

iText, दूसरी तरफ, कोई जावास्क्रिप्ट नहीं चलाता है। IText में केवल पीडीएफ के उन हिस्सों को बदल दिया गया है जिन्हें आप स्पष्ट रूप से बदलते हैं, दुष्प्रभाव वांछित नहीं हैं।

इस प्रकार, iText के साथ इसे संपादित करने के बाद अपने पीडीएफ को खोलने पर उचित रूप से पुनः गणना किए गए फ़ील्ड दिखाने के लिए, आपको पीडीएफ खोलने पर फ़ील्ड की पुन: गणना को भी ट्रिगर करना चाहिए।

यदि आप पीडीएफ फ़ाइल स्वयं ही प्रदान करते हैं, तो आप दिखा सकते हैं कि यह कैसे करें।

PS: You can trigger re-calculation when the document is opened by adding

stamper.addJavaScript("this.calculateNow();");
reader.removeUsageRights();

से पहले

stamper.close ();

दुर्भाग्य से यह दस्तावेज़ की रीडर-सक्षम करने को अक्षम कर देगा।

0
जोड़ा
ठीक है, धन्यवाद, यह बहुत स्पष्ट और तर्क है mfdgi.gov.dz /Serie%20G%20n50%20V1.1.pdf यहां पीडीएफ का लिंक है जिस पर मैं काम कर रहा हूं।
जोड़ा लेखक user3032668, स्रोत
बहुत बहुत धन्यवाद एमकेएल: डी यह पूरी तरह से काम करता है, और मुझे रीडर-सक्षम करने की आवश्यकता नहीं है।
जोड़ा लेखक user3032668, स्रोत
कुछ जावास्क्रिप्ट काम-चारों ओर जोड़ा गया जो पाठक-सक्षम को मारता है, हालांकि। क्या आपके उपयोग-मामले में रीडर-सक्षम होना आवश्यक है?
जोड़ा लेखक mkl, स्रोत
महान! कृपया ध्यान रखें कि जावास्क्रिप्ट इंजन के बिना अन्य पीडीएफ प्रसंस्करण अनुप्रयोगों को गणना मूल्यों के बारे में पता नहीं है।
जोड़ा लेखक mkl, स्रोत