2011-12-03 8 views
10

मुझे मौजूदा पीडीएफ फ़ाइल लेने और प्रोग्राम के साथ फॉर्म फ़ील्ड की सूची में प्रोग्रामेटिक रूप से भरने की आवश्यकता है और फिर पीडीएफ को उपयोगकर्ता को कभी भी प्रदर्शित किए बिना सहेजें।आईओएस में, आप प्रोग्रामेटिक रूप से पीडीएफ फॉर्म फ़ील्ड कैसे भर सकते हैं?

उदाहरण के लिए, यदि पीडीएफ फ़ाइल में "LastName" नामक फ़ील्ड्स हैं, और "फर्स्टनाम" मैं "फर्स्टनाम" का मान "लुइस" में सेट करना चाहता हूं और फिर फ़ाइल को सहेजना चाहता हूं।

मैं लंबे समय से खोज कर रहा हूं और आईओएस दस्तावेज (और यहां पर अधिकांश प्रश्न) के बाद से शुरू करने के लिए कहां से शुरू करने के लिए कोई मार्गदर्शन नहीं मिल रहा है, इसे संशोधित करने के बजाय पीडीएफ सामग्री प्रदर्शित करने या बनाने की दिशा में तैयार है ।

संपादित करें:
मेरा मुख्य सवाल यह है: यह एक PDF धारा (मैं जानता हूँ कि यह कैसे करना है) खोलने के लिए और एक नया पीडीएफ में प्रत्येक मौजूदा पीडीएफ शब्दकोश आइटम की प्रतिलिपि करना संभव है? मैं एक पीडीएफ में शब्दकोश आइटम लिखने का कोई तरीका नहीं ढूंढ पाया है।

+0

क्या आपने कभी ऐसा करने का तरीका निकाला है? क्या आप साझा करना चाहते हैं कि आप किस चीज के साथ आए थे? – xizor

+0

दुर्भाग्य से, नहीं मैंने नहीं किया है। मैंने अभी फॉर्म फ़ील्ड को खाली कर दिया है और सीधे फाइल में स्ट्रिंग लिखे हैं .... – lnafziger

+0

@lnafziger क्या आप कुछ कोड पोस्ट कर सकते हैं कि आपने स्ट्रिंग को सीधे फाइल में कैसे लिखा है? मैं इस पर काम कर रहा हूं, लेकिन फॉर्म मान को संशोधित करने से फ़ाइल में किसी भी बाइनरी डेटा को खंडित किया जा सकता है। – paulrehkugler

उत्तर

0

यह HTML पृष्ठ के साथ करना आसान होगा। यदि आप एक .pdf स्वरूप के बजाय एक HTML पृष्ठ का उपयोग करना चाहते हैं तो thius आप इसे कैसे करने के बारे में जाना होगा:

[field1 setText:@"Field 1 Text"]; 
[field2 setText:@"Field 2 Text"]; 

NSString *result; 
result = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"$('#field1').val('%@');", field1.text]]; 
result = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"$('#pfield2').val('%@');", field2.text]]; 
result = [webView stringByEvaluatingJavaScriptFromString:@"$('#submitbutton').click();"]; 

आप UITextFields दो UILabels बना सकते हैं या और उन्हें कॉल "field2" और "field2 करने की आवश्यकता होगी "आपकी। एच फाइल में। फिर आप उस फ़ील्ड की आईडी पा सकते हैं जिसे आपको प्रतिस्थापित करने की आवश्यकता है उदा। # field1 और उसके बाद इसे "# field1" रखा है और फिर दूसरे फ़ील्ड के लिए जहां मैंने "# field2" रखा है। पहले से लोड किए गए पृष्ठ के साथ UIWebView भी होना चाहिए। के बाद यह कोड का उपयोग किया जाना चाहिए UIWebView पृष्ठ लोड किया गया है। हो सकता है कि निम्न कार्य करें:

-(void)webViewDidFinishLoad:(UIWebView *)webView { 

// Insert above code here 

} 

आप शायद जावास्क्रिप्ट की पूरी समझ की जरूरत है अगर आप पूरे फार्म के लिए ऐसा करना चाहते हैं, लेकिन यह आपके लिए प्रारंभ करने चाहिए।

आशा है कि आपकी मदद करता है।

+0

उदाहरणों के लिए धन्यवाद, हालांकि इसे पीडीएफ में होना जरूरी है! – lnafziger

+2

क्या आप एचटीएमएल को पीडीएफ में परिवर्तित नहीं कर सकते? – pixelbitlabs

+1

दुर्भाग्यवश, यह एक मौजूदा, बहुत ही जटिल पीडीएफ है जो नियमित रूप से बदलता है इसलिए मैं कोड में इसे फिर से बनाना (और बनाए रखना) नहीं चाहता (न तो एक वेब पेज के रूप में या फ्लाई पर पीडीएफ बनाना)। – lnafziger

1

मुझे संदेह है कि आईओएस ढांचे में कभी भी कार्यक्षमता होगी। संबंधित जानकारी में से अधिकांश कारण आपको "संशोधित करने के बजाय पीडीएफ सामग्री को प्रदर्शित करने या बनाने की दिशा में तैयार" लगता है, क्योंकि यह है कि उपयोग के अधिकांश मामलों में पीडीएफ कार्यक्षमता की आवश्यकता होगी या आवश्यकता होगी।

आपको एक तृतीय पक्ष लाइब्रेरी ढूंढनी होगी जो पीडीएफ खोल सकता है, एक्रोफॉर्म फ़ील्ड भर सकता है, और उसके बाद पीडीएफ मुद्रित कर सकता है। मैं जावा पर iText का उपयोग करता हूं (सी # के लिए iTextSharp भी है) लेकिन मुझे उद्देश्य-सी के लिए कुछ भी पता नहीं है।

एक बार जब आपको वह लाइब्रेरी मिल जाए, तो आपको इसे अपने प्रोजेक्ट में एकीकृत करना होगा। एसडीके के जो भी संस्करण आप उपयोग कर रहे हैं उसके लिए एसओ पर निस्संदेह कई संबंधित प्रश्न/उत्तर हैं।

+0

इनपुट के लिए धन्यवाद, हालांकि मैं तीसरी पार्टी लाइब्रेरी नहीं चाहता हूं। मैं एक सामान्य समाधान लिखने के लिए आईओएस फ्रेमवर्क फ़ंक्शंस का उपयोग करना चाहता हूं (जब मैं इसे समाप्त करता हूं तो मैं दूसरों के साथ साझा करूंगा)। आईओएस दस्तावेज के माध्यम से पढ़ने के बाद, मुझे पूरा यकीन है कि यह किया जा सकता है, लेकिन उम्मीद है कि जो कोई अधिक परिचित है वह मुझे सही दिशा में इंगित कर सकता है! – lnafziger

+0

शगी मेंढक सही है, सीजीपीडीएफ * एपीआई फॉर्म फ़ील्ड भरने सहित पीडीएफ संशोधन का समर्थन नहीं करता है। – iPDFdev

+2

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

संबंधित मुद्दे