सेवा के रूप में एक विशेष पायथन स्क्रिप्ट चलाएँ


1

मुझे पायथन 3 स्क्रिप्ट मिल रही है जो वॉटरमार्किंग के उद्देश्य से एक विशेष पारदर्शी पीडीएफ फाइल को दूसरे के ऊपर से ओवरले करेगी।

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

from pdfrw import PdfReader, PdfWriter, PageMerge

ipdf = PdfReader("/users/me/Desktop/meetingminutes.pdf")
wpdf = PdfReader("/users/me/Desktop/private.pdf")

wmark = PageMerge().add(wpdf.pages[0])[0]

for page in ipdf.pages:
    PageMerge(page).add(wmark).render()

PdfWriter().write('/users/me/Desktop/meetingminutes.pdf', ipdf)

मैं आदर्श रूप से फाइंडर में दी गई पीडीएफ फाइल पर राइट क्लिक करने में सक्षम होना चाहूंगा और वॉटरमार्क स्क्रिप्ट को एक सेवा के रूप में लागू कर सकता हूं।

मैंने पहले से ही थोड़ा सा छेड़छाड़ किया है, लेकिन सबसे अधिक मैं अपने दम पर यह पता लगाने में सक्षम हूं कि मुझे स्क्रिप्ट चलाने की जरूरत है क्योंकि यह अभी (मैं अभी) "रन AppleScript" के साथ एक ऑटोमेकर ऐप बना सकता हूं "पहले चरण के रूप में छोटी बूंद।

on run {input, parameters}
    do shell script "/usr/local/bin/python3 /users/me/Desktop/script.py

    return input
end run

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


क्या आपने पढ़ने की कोशिश की है ये पद इतने पर? फिर अपनी स्क्रिप्ट को एकीकृत करें, और ऑटोमेटर स्क्रिप्ट की शुरुआत में इनपुट के लिए पूछें, साथ ही आउटपुट फ़ाइल क्या होनी चाहिए।
bret7600

मैंने अपनी स्क्रिप्ट में "उदाहरण के लिए" "inFile = sys.argv [1]" आदि का उपयोग करने की कोशिश की, लेकिन मुझे हमेशा "IndexError: list index out of range" त्रुटि मिलती है।
William Lombard

आपके द्वारा यहां चिपकाया गया अप्प्सस्क्रिप्ट हैंडलर अधूरा है।
the eels have eyes

जवाबों:


1

ऑटोमेकर में, "रन शैल स्क्रिप्ट" क्रिया का उपयोग करें। आम तौर पर, आप शेल ड्रॉप-डाउन सूची मूल्य को "/ usr / bin / python" पर सेट करेंगे, बिल्ट-इन अजगर 2.7 का उपयोग करने के लिए। हालाँकि, यदि आप एक यूनिक्स शेल का चयन करते हैं, लेकिन सुनिश्चित करें कि आपकी स्क्रिप्ट में "#! / Usr / bin / env python" है, या आपके python3 इंस्टॉलेशन का एक स्पष्ट मार्ग है, तो यह काम करना चाहिए।

यदि आप अन्य ड्रॉप-डाउन सूची "पास इनपुट" को "तर्कों के रूप में" चुनते हैं, तो आप अपने चयनित आइटमों के फ़ाइल नाम sys.argv () से प्राप्त कर सकते हैं।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.