2015-11-10 5 views
11

का उपयोग करके पीडीएफ फॉर्म भरें मैं रूबी का उपयोग करके पीडीएफ को प्रोग्रामेटिक रूप से भरने की कोशिश कर रहा हूं। पीडीएफ क्षेत्रों है कि पाठ दर्ज किए जाने की अनुमति देने के होते हैं:रूबी

screenshot of pdf fields

मैं पिछले pdf_form मणि के माध्यम से pdftk का उपयोग करने में सफलता मिली है, लेकिन यह इस विशेष पीडीएफ में फ़ील्ड्स नहीं मिल रहा है:

$ pry 
[1] pry(main)> require 'pdf_forms' 
=> true 
[2] pry(main)> pdftk = PdfForms.new('/usr/local/bin/pdftk') 
=> #<PdfForms::PdftkWrapper:0x007fece7af6d98 @options={}, @pdftk="/usr/local/bin/pdftk"> 
[3] pry(main)> pdftk.get_field_names('designation.pdf') 
=> [] 

मैं रूबी का उपयोग करके पीडीएफ कैसे भर सकता हूं?

+0

मैं ओपी में आपके लिंक से वास्तविक पीडीएफ फ़ाइल प्राप्त करने में सक्षम नहीं प्रतीत होता। क्या आपको पता है कि दस्तावेज़ में आपके पास किस प्रकार का पीडीएफ फॉर्म है?कई अलग-अलग प्रकार हैं और यह विशेष रूप से असमर्थित हो सकता है। –

+0

ने इसे आजमाया नहीं है लेकिन आप https://github.com/abevoelker/pdf_ravager [नोट: केवल Jruby] – Nimir

+0

पीडीएफ में एक शुद्ध एक्सएफए फॉर्म (एक्सएफए फॉर्म पीडीएफ विनिर्देश का हिस्सा नहीं हैं और इसलिए, , सार्वभौमिक रूप से समर्थित नहीं है)। – mkl

उत्तर

5

pdf-form मणि केवल द्वारा उत्पन्न पीडीएफ के लिए काम करेगा Adobe Acrobat। का पालन करें इस issue

अपने पीडीएफ में सुनिश्चित करें, आपको Adobe Acrobat के माध्यम से पाठ क्षेत्र बनाया

+0

पीडीएफटीके स्थापना एल कैपिटन 10.11 –

+0

पर विफल हो गई है यहां विस्तृत करें: https://gist.github.com/jvenator/9672772a631c117da151#gistcomment-1607813 – rylanb

3

मुझे डर है कि आप JRuby और नीली लपटें उपयोग करने के लिए मजबूर किया जा सकता हूँ। मैंने अतीत में समान चीजें की हैं और iText परिष्कृत पीडीएफ फाइलों के साथ काम करने के लिए सबसे अच्छी उपलब्ध लाइब्रेरी प्रतीत होती है।

http://www.mikeperham.com/2011/02/15/filling-out-pdf-forms-with-jruby/

5

pdftk GCJ का उपयोग कर संकलित iText का एक शक्तिशाली पुराने संस्करण से ज्यादा कुछ नहीं है। पीडीएफटीके का उपयोग करके फॉर्म भरना तब तक संभव है जब फॉर्म में एक्रोफॉर्म तकनीक का उपयोग करके परिभाषित फ़ील्ड शामिल हों। यह उस फ़ॉर्म का मामला नहीं है जिसका आप उल्लेख कर रहे हैं। मैं iText RUPS में प्रपत्र खोल दिया है और यह मैं क्या देख जब मैं फार्म टैब के अंदर देखो है:

enter image description here

आप /Fields सरणी में देखते हैं? यह खाली है: []। इसका मतलब है कि पीडीएफटीके भरने के लिए कुछ भी नहीं है। फिर फॉर्म कहां है?

फॉर्म एक्सएमएल फॉर्म आर्किटेक्चर (एक्सएफए) का उपयोग करके वर्णित है। ऐसे कई सॉफ्टवेयर उत्पाद नहीं हैं जो एक एक्सएफए फॉर्म भर सकते हैं। बिल्ली, कई पीडीएफ दर्शक नहीं हैं जो आपको फॉर्म देखने की अनुमति देते हैं।

    Adobe सॉफ्टवेयर
  1. : के लिए उदाहरण एडोब

    enter image description here

    मैं दो उत्पाद लाइनों है कि अपनी जरूरतों को पूरा कर सकते हैं के बारे में पता: उदाहरण के लिए, इस जब मैं अपने ब्राउज़र में फॉर्म को खोलने मैं क्या देख रहा है लाइवसाइकल ईएस।

  2. iText सॉफ़्टवेयर: आप XML को इंजेक्ट करके iText के AGPL संस्करण के साथ फ़ॉर्म भर सकते हैं (How can I set XFA data in a static XFA form in iTextSharp and get it to save? देखें); आप iText के XFA वर्कर के साथ फ़ॉर्म को फ़्लैट कर सकते हैं (How can I flatten a XFA PDF Form using iTextSharp? देखें)।

iText समूह के मुख्य कार्यकारी अधिकारी होने के नाते, मैं iText उपयोग करने के लिए (यदि आप pdftk उपयोग कर रहे हैं आप एक पुराने संस्करण का उपयोग कर रहे पहले से ही वैसे भी) की सलाह देते हैं। iText जावा लाइब्रेरी के रूप में उपलब्ध है, इसलिए JRuby का उपयोग करना आपकी आवश्यकता को पूरा करने का सबसे अच्छा मौका है।

एक और विकल्प एक्सएफए प्रौद्योगिकी की बजाय एक्रोफॉर्म प्रौद्योगिकी के आधार पर फॉर्म को पूरी तरह से एक रूप में फिर से डिजाइन करना होगा।