5

मैं एक गैर-इंटरैक्टिव प्रक्रिया लिखने की कोशिश कर रहा हूं जो पीडीएफ प्रिंट करता है, और मुझे विंडोज सर्वर पर इसे कैसे बनाया जाए इस बारे में सलाह चाहिए 2008 (और विस्टा/7)।गैर-इंटरैक्टिव प्रक्रिया (विंडोज सेवा, निर्धारित कार्य, आदि) से WinServer 2008 में प्रिंटिंग पीडीएफ

पहले, हमारे पास एक निर्धारित कार्य था (यह निर्धारित करने के लिए सेट किया गया था कि उपयोगकर्ता खाता लॉग ऑन था या नहीं) जो निर्देशिका के अंदर सभी पीडीएफ प्रिंट करेगा। (एक अलग प्रक्रिया पीडीएफ को निर्देशिका में ले जायेगी।) रनटाइम पर, यह पीडीएफ प्रिंट करने के लिए एक और प्रक्रिया (या तो एडोब रीडर या फॉक्सिट रीडर) को स्पिन करेगा। एडोब रीडर और फॉक्सिट रीडर दोनों में मूक प्रिंटिंग की सुविधा है, इसलिए उपयोगकर्ता के लिए डिफ़ॉल्ट प्रिंटर पर सब कुछ भेजा जाएगा कि निर्धारित कार्य के रूप में चलाया गया था। कोई यूआई कभी उत्पन्न नहीं हुआ था, और सभी फाइलों को बिना छेड़छाड़ के मुद्रित किया जाएगा। यह सर्वर 2008 पर सर्वर 2003.

प्रक्रिया अब काम नहीं करता पर काम किया मैं पूरी तरह यकीन नहीं है, लेकिन मेरा मानना ​​है कि इस के साथ सत्र 0 अलगाव करना होता है। मैं यह साबित नहीं कर सकता। हालांकि, मैं कह सकता हूं कि प्रक्रिया निर्धारित समय के रूप में कार्य करती है जब "उपयोगकर्ता लॉग इन होने पर ही चलाएं"। अब, यह काम करता है, यह उपयोगकर्ता को मशीन में लॉग इन करने के लिए मजबूर करता है, और इस प्रकार मेरी आवश्यकताओं को पूरा नहीं करता है। (मेरा पहला सुराग this previous question में था।)

मैं यह निर्धारित नहीं कर सकता कि मैं इस पर आगे कैसे बढ़ सकता हूं। क्या मेरी आवश्यकताओं को पूरा करने का कोई तरीका है?

कुछ नोट:

हर समाधान मैंने देखा है एक लॉग इन हुए प्रयोक्ता के क्रेडेंशियल्स का उपयोग किया जा रहा है। ऊपर दिए गए प्रश्न को देखें - सूचीबद्ध समाधान लॉग-इन उपयोगकर्ता के टोकन को पकड़ने और प्रोग्राम चलाने के लिए इसका उपयोग कर रहा है। (GetCurrentUserToken() प्रक्रिया को देखें - लौटाया गया मूल्य बाद में एपीआई कॉल CreateProcessAsUser() में उपयोग किया जाता है।)

मेरी वर्तमान प्रक्रिया उत्पन्न होती है, जैसा कि मैं बता सकता हूं, कोई यूआई नहीं। मैंने प्रोमॉन का उपयोग करके सत्यापित किया है कि पाठक प्रक्रिया (एडोब या फॉक्सिट) सही ढंग से प्रिंट करने लगती है और प्रिंट ड्राइवर को कोई समस्या दिखाई देती है। इसका प्रिंट-टू-फाइल ड्राइवर का उपयोग करने के प्रयास से बैक अप लिया जाता है - प्रिंट-टू-फाइल ड्राइवर तीन दृश्य चरणों में चलता है और दूसरे को शुरू किए बिना सभी फ़ाइलों के लिए स्पष्ट रूप से पहले समाप्त करता है। तो सत्र 0 अलगाव प्रिंटर ड्राइवर को कैसे प्रभावित करता है? यह मेरे लिए अस्पष्ट है। (The best documentation I can find on the subject केवल उल्लेख करता है कि प्रिंटर ड्राइवर प्रभावित हो सकते हैं, भले ही प्रिंट स्पूलर सत्र 0 में चलता है।

विंडोज सेवा के रूप में प्रिंटिंग कभी भी काम नहीं करती है, भले ही प्रक्रिया में 'डेस्कटॉप के साथ बातचीत करने की अनुमति दें' चेक की गई हो।

बोल्ड टेक्स्ट को ब्लीर-प्रेरक दीवार-ऑफ-टेक्स्ट प्रभाव का सामना करने के लिए जोड़ा गया।

+0

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

उत्तर

0

एक्रोबैट-रीडर के बजाय फॉक्सिट रीडर का उपयोग करने का प्रयास करें। फॉक्सिट रीडर विंडोज 2008 और उससे ऊपर में भी GUI- कम/कमांडलाइन निष्पादन का समर्थन करता है!

प्रिंटिंग भी संभव है, लेकिन जब भी आप प्रिंटबॉज चलाते हैं तो आपको सत्र 0 में प्रिंटर जोड़ना होगा (या जांचना होगा)।

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