2011-09-27 11 views
11

मैं एक प्रिंट कंपनी के लिए एक घर के डेवलपर हूं।क्या इंडिज़िन जावास्क्रिप्ट के साथ एक वेब सेवा कॉल करना संभव है?

हम प्रिंटिंग के लिए दस्तावेज़ बनाने के लिए एडोब इंडिज़िन सीएस 3 और सीएस 5 का उपयोग करते हैं।

मैंने एडोब एक्स्टेंस्क्रिप्ट में एक स्क्रिप्ट बनाई है जो एक इंडिज़िन दस्तावेज़ बनाता है और कुछ बुनियादी रूपांतरणों को संभालता है जब ग्राहक स्वयं ऐसा करने में विफल रहता है।

मैंने इस स्क्रिप्ट को लिखने के लिए जावास्क्रिप्ट का उपयोग किया।

क्या ऐसी स्क्रिप्ट के माध्यम से वेब सेवा को कॉल करना संभव है?

यदि हां, तो कैसे?

यदि नहीं, तो डेस्कटॉप से ​​वेब सेवा को कॉल करने का सबसे अच्छा तरीका क्या होगा?

धन्यवाद।

+1

कृपया रचनात्मक आलोचना छोड़ दें कि यह कैसे कम करने से पहले यह एक बुरा सवाल है। मैं अपेक्षाकृत नया हूं और आसानी से मदद की तलाश कर रहा हूं, जितना संभव हो सके मेरे प्रश्न पूछने की कोशिश कर रहा हूं। – story

+0

... क्या आप किसी डेस्कटॉप प्रकाशन दस्तावेज़ से ws को कॉल करने के बारे में बात कर रहे हैं? – vector

+0

अनिवार्य रूप से, हां। मुझे एडोब इंडिज़िन सीएस 3 - सीएस 5 के भीतर से एक डब्ल्यूएस कॉल करने की ज़रूरत है, हालांकि स्क्रिप्ट को कॉल करने के लिए योजना को तब तक खोलने की आवश्यकता नहीं है जब स्क्रिप्ट को बुलाया जाए। – story

उत्तर

4

नहीं और हाँ।

नहीं, इनडिज़ीन को स्क्रिप्ट से वेब सेवा कॉल करने के लिए कोई रास्ता नहीं है (afaik)। यह बहुत संभव है और अक्सर इनडिज़ीन प्लगइन से किया जाता है (आप मनमानी सी ++ कोड निष्पादित कर सकते हैं ताकि आप जो कुछ भी कर सकें)। हालांकि, यह सीखने के लिए एक पूरी तरह से अलग जानवर है।

हां, लाइब्रेरी का उपयोग करके एक्स्टेंडस्क्रिप्ट से करना संभव है। तो मूल रूप से आपकी स्क्रिप्ट डेटा प्राप्त करने के लिए वेब सेवा को कॉल करेगी (शायद इनडिज़ीन या दस्तावेज़ से प्राप्त पैरामीटर का उपयोग करके) और फिर ऑपरेशन करने के लिए लौटाए गए मानों को अन्य इनडिज़ीन स्क्रिप्ट फ़ंक्शंस में भेजें।

एक मूल नमूना here पाया जा सकता है जो 'Extendables' का उपयोग करता है।

संपादित करें: चूंकि कुछ भ्रम प्रतीत होता है: दस्तावेज स्क्रिप्ट चलाने वाले नहीं हैं और बहुत ही कम ही उन्हें शामिल करते हैं। स्क्रिप्ट एक इनडिज़ीन विशिष्ट जावास्क्रिप्ट प्रारूप (.jsx) में सहेजी जाती हैं और इनडिज़ीन स्क्रिप्टिंग इंजन द्वारा व्याख्या की जाती हैं।

+0

मैं भाषणहीन हूं। यह एक्स्टेंडेबल्स लाइब्रेरी शानदार है। मुझे ठीक इसी की आवश्यकता थी। धन्यवाद! अगर मैं कर सकता तो मैं एक से अधिक बार प्लस करूंगा। – story

+1

एक्स्टेंडिबल्स पोर्कि बन गए हैं: http://porky.io/ – Ben

+0

@ बेन, पोर्क पर टिप के लिए धन्यवाद। संक्षेप में कोडबेस को देखकर, मुझे नहीं लगता कि पोर्क एक्सटेन्डेबल्स था। वे कुछ सामान्य कार्यक्षमता साझा कर सकते हैं, लेकिन वे अलग-अलग संरचित होते हैं और कभी-कभी विभिन्न उद्देश्यों को पूरा करते हैं। पोर्कि कुछ अतिरिक्त के साथ विस्तारक के लिए एक (वेब) डीबी कनेक्टर दिखता है। Extendables कुछ अतिरिक्त के साथ ExtendScript के लिए एक परीक्षण ढांचा है। – David

0

... शायद यदि आप दस्तावेज़ से पीडीएफ बनाने के लिए इनडिज़ीन का उपयोग करते हैं। पीडीएफ में आप शायद कर सकते हैं। लेकिन कच्चे इनडिज़ीन दस्तावेज़ से शायद नहीं। मैं यह भी वोट दूंगा कि आप इसे खोलने से पहले दस्तावेज़ से जेएस चलाने में सक्षम नहीं होंगे। मैं इनडिज़ीन विशेषज्ञों के साथ इसे लेने का सुझाव दूंगा। मैं उत्सुक हूं हालांकि आप इसके साथ क्या करेंगे क्योंकि मुझे याद है कि आईडी आपको दस्तावेज़ में अंतःक्रियाशीलता प्रदान करने देती है। यदि आपको अपना उत्तर कहीं और मिलता है तो कृपया वापस पोस्ट करें।

+0

जेएस?फिर हाँ, आप शायद सोच सकते हैं कि क्या आप डॉक्टर में पूरी jQuery lib शामिल कर सकते हैं :-), अजाक्स कॉल करें। – vector

+0

हम्म, मुझे भी आश्चर्य है। यह दिलचस्प होगा। – story

+0

इसे आज़माएं, देखें कि क्या होता है। स्वयं स्वरूपण समाचार पत्र :-) – vector

6

Extendables पहले ही उल्लेख किया गया था:

Extendables

यह jQuery नहीं है, बजाय इसे InDesign स्क्रिप्टिंग के लिए एक पुस्तकालय है।

सबसे पूर्ण चर्चा Rorohiko's blog पर एक अच्छी सीधी आगे उदाहरण के साथ मिलती है।

+0

धन्यवाद, यह बेहद सहायक था। उत्कृष्टता के लिए +1। – story

0

Extendables के अलावा, वहाँ 2 वैकल्पिक विकल्प हैं:

एडोब ब्रिज/Bridgetalk

एडोब सूट के विशिष्ट संस्करणों के लिए नहीं कह सकते हैं, लेकिन आप का उपयोग करें या हो सकता है अगर एडोब ब्रिज/Bridgetalk , आप एडोब के क्रॉस ऐप संचार और एचटीपीकनेक्शन क्लास का उपयोग ब्रिज (एसडीके दस्तावेज़ के अनुसार) के लिए उपलब्ध कर सकते हैं, और HTTP अनुरोध करने के लिए इनडिज़ीन कॉल ब्रिज और परिणाम को वापस डिज़ाइन में पास कर सकते हैं।

मेरे पास इनडिज़ीन के लिए विशिष्ट उदाहरण नहीं है, लेकिन यहां कुछ इलस्ट्रेटर के लिए है। मुझे लगता है कि यह आसानी से इनडिज़ीन बंदरगाह होगा।

https://gist.github.com/daluu/2d9dec72d0863f9ff5a7

https://gist.github.com/mericson/6509997

मेक वेब सेवा ExtendScript

को बाह्य और इंटरफ़ेस कॉल एडोब के पटकथा एपीआई इंजन सख्ती से ExtendScript/Javascript नहीं है। आप COM/VBScript (विंडोज़ पर) या एप्पलस्क्रिप्ट (मैक पर) से स्क्रिप्ट एपीआई का भी उपयोग कर सकते हैं, जो इनडिज़ीन के लिए बाहरी निष्पादित करता है लेकिन एपीआई के माध्यम से इनडिज़ीन के साथ बातचीत करता है।

विंडोज के लिए, COM द्वारा, मेरा मतलब है कि COM का समर्थन करने वाली कोई भी भाषा है, इसलिए यह केवल डिफ़ॉल्ट VBScript नहीं है (पाइथन, पर्ल, PHP, जावा, .NET, यहां तक ​​कि माइक्रोसॉफ्ट जेस्क्रिप्ट भी हो सकता है - कमांड लाइन के लिए जावास्क्रिप्ट का उनका संस्करण/डेस्कटॉप/आदि।)।

किसी भिन्न इंजन पर स्क्रिप्ट एपीआई का उपयोग करके, आप अन्य भाषा (वीबीस्क्रिप्ट, एप्पलस्क्रिप्ट इत्यादि) से बाहरी रूप से वेब सेवा कॉल करते हैं, फिर परिणाम स्क्रिप्ट एपीआई कॉल (COM/एप्पलस्क्रिप्ट में) के माध्यम से एक्स्टेंडस्क्रिप्ट में पास करते हैं। application.doScript ('विस्तारित कोड स्निपेट यहां') (या doJavascript) जहां एक्स्टेंस्क्रिप्ट स्निपेट के लिए, एक छोटा स्निपेट हो सकता है जो एक्स्टेंडस्क्रिप्ट का उपयोग करता है जिसमें वास्तविक जेएसएक्स फ़ाइल शामिल करने के लिए शामिल है, तो उसे विस्तार सेवा फ़ंक्शन/विधि को कॉल करें, इसे वेब सेवा परिणाम पास करें तर्क के रूप में।

इस तकनीक (वेब ​​सेवा कॉल भाग को कवर नहीं) समाधान में से कुछ में यहाँ वर्णित है का एक उदाहरण:

Is it possible to execute JSX scripts from outside ExtendScript?

1

तुम भी AppleScript या VB ओएस के आधार पर फोन और कुछ का उपयोग कर सकते कमांड लाइन यूटिलिटी जैसे सीआरआरएल अपने webservice को कॉल करने के लिए। इसके अलावा आप रोरोइको से एक मुफ्त स्क्रिप्ट प्राप्त करने के लिए यूआरएल प्राप्त करने का प्रयास कर सकते हैं जो एक्स्टेंडस्क्रिप्ट के अंदर वेब संचार को आसान बनाता है।

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