सबसे पहले, यहां पोस्ट किए गए सभी के लिए धन्यवाद।
मेरे पास pdfScale नामक छोटी सी लिपि है जो यहां पोस्ट किए गए उत्तरों के हिस्सों को अवशोषित करती है। तो मैंने अपने 2 सेंट वापस पोस्ट करने का फैसला किया। मैं कर्ट और टिम के उत्तरों के मिश्रण का थोड़ा सा उपयोग कर रहा हूं। हालांकि टिम के समान ही है।मैं कुछ दिनों के लिए इस के साथ खेला और यहाँ तरीकों यहां पोस्ट पर मेरे आंशिक निष्कर्ष यह है है
सेट कागज -sPAPERSIZE
- आसान के साथ नाम के आधार पर आकार सिर्फ कागज का नाम (उदाहरण के लिए पारित करने के लिए। ए 4)
- 100% सही अंक आकार का निर्माण नहीं कर सकते हैं
- फ्लिप मई लैंडस्केप <> पोर्ट्रेट
PS-अंक -dDEVICEWIDTHPOINTS
में सेट पेपर आकार, -dDEVICEHEIGHTPOINTS
- खुद
- You need to know the sizes in Points
- इतना आसान नहीं यकीन है कि आप आकार आप अंक में चाहते
- आप चौड़ाई < फ्लिप कर सकते हैं> ऊंचाई प्राप्त करता है इसके चारों ओर स्क्रिप्ट करने के लिए, क्योंकि आपको अंक में नए पेज आकार की आवश्यकता होगी और यदि आप लैंडस्केप/पोर्ट्रेट का पता लगाना चाहते हैं तो स्रोत के पेज आकारों की भी आवश्यकता होगी।
- आप कस्टम परिभाषित कागजात भी सेट कर सकते हैं (किसी भी आकार को आप वास्तव में चाहते हैं)।
- मैं
-dDEVICEWIDTH
, -dDEVICEHEIGHT
का उपयोग लंबे, बिंदु संस्करण के बजाय कर रहा था, लेकिन वे दोनों एक ही चीज़ (दोनों अंक प्राप्त करते हैं) प्रतीत होते हैं।
क्योंकि मेरी पार्टी स्क्रिप्ट हो रही स्रोत पृष्ठ आकार के पहले से ही सक्षम है और मैं विचार पसंद आया कस्टम पृष्ठ आकार सेट करने के लिए सक्षम होने के लिए, मैं अंक में पृष्ठ आकार की स्थापना पर ध्यान केंद्रित करने का फैसला किया। मैंने अपनी स्क्रिप्ट में नामों और आकारों के साथ पहले से ही GS Paper Sizes भी शामिल किया था। तो वह जानकारी प्राप्त करना भी आसान था।
-dFIXEDMEDIA
का उपयोग करना दोनों मामलों पर जरूरी प्रतीत होता है, जैसा कि पहले बताया गया था।
तो यह कि मेरे दृष्टिकोण चला गया है (एक पटकथा तरह से)
- प्राप्त स्रोत पीडीएफ पृष्ठ आकार (फ्लिप पता लगाने के लिए)
- जाओ अंक में लक्ष्य के पृष्ठ आकार (उदा। ए 4> 595x842)
- चेक वे एक ही अभिविन्यास या अंक के साथ लक्ष्य फ्लिप यदि आवश्यक हो तो
- भागो जी एस या फ़्लिप अंक
जब मैं ऑटो-रोटेशन समस्या को ठीक करने का प्रयास कर रहा था, I found this other Kurt response। यह -dAutoRotatePages
का उपयोग करने के बारे में है। बस यहां अपने उत्तर का एक हिस्सा कॉपी करें:
-dAutoRotatePages=/None
- प्रत्येक पृष्ठ के अभिविन्यास को बनाए रखता है;
-dAutoRotatePages=/All
- "बहुमत निर्णय" के आधार पर सभी पृष्ठों (या कोई नहीं) को घुमाता है;
-dAutoRotatePages=/PageByPage
- अलग-अलग पृष्ठों को स्वत: घुमाता है।
मेरी स्क्रिप्ट PageByPage
पर डिफ़ॉल्ट है लेकिन यह समायोज्य है। यह मेरे परीक्षणों में अच्छी तरह से काम किया। -dAutoRotatePages
का उपयोग पृष्ठ आकार को पूर्व-फ़्लिप करने की आवश्यकता को कम करने के लिए प्रतीत होता है, भले ही यह वही बात न हो। मैंने दोनों विकल्प रखे।
मेरा छोटा ऐप मूल रूप से पीडीएफ स्केल करने के लिए बनाया गया था (पेज आकार को बदले बिना)। तब मैंने अब एक या दूसरे को करने की कार्यक्षमता को जोड़ा। हालांकि मैं अभी भी एक ही जीएस कॉल में ऐसा नहीं कर सका।
यही वह है जिसे मैं आकार बदलने के लिए बुला रहा हूं, वास्तविक मूल्यों में चर बदल रहा हूं। यह PageByPage
ऑटो रोटेशन के साथ ए 4 पोर्ट्रेट आकार के लिए है:
gs \
-q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dSAFER \
-dCompatibilityLevel="1.5" -dPDFSETTINGS="/printer" \
-dColorConversionStrategy=/LeaveColorUnchanged \
-dSubsetFonts=true -dEmbedAllFonts=true \
-dDEVICEWIDTHPOINTS=595 -dDEVICEHEIGHTPOINTS=842 \
-dAutoRotatePages='/PageByPage' \
-dFIXEDMEDIA -dPDFFitPage \
-sOutputFile='../myOutputFile.pdf' \
-f '../input.pdf'
कृपया ध्यान दें कि मैं भी -dFIXEDMEDIA
और -dPDFFitPage
उपयोग कर रहा हूँ। चूंकि यह फ़िट-टू-पेज है, मेरी स्क्रिप्ट का दूसरा भाग आकार बदलने के बाद पीडीएफ के अंदर सामग्री को स्केल करने के लिए आसान हो सकता है (विशेष रूप से यदि पीडीएफ का अनुपात बहुत बदल गया है)। और यही कारण है कि मैं हमेशा अपनी स्क्रिप्ट (मिश्रित मोड में) में आकार बदलने के बाद स्केलिंग चलाता हूं।
पेपर नाम का उपयोग करते समय अंश की समस्याओं के बारे में, मैं एमएम/इंच से अंक तक रूपांतरण को गोल करने से पहले मेरे साथ ऐसा कर रहा था। जब मैंने उन्हें गोल करना शुरू किया, तो वे हमेशा एक की जरूरत महसूस करते हैं। अजीब लगता है कि जीएस हालांकि उन मूल्यों को मंजिल करेगा।
तो मेरा निष्कर्ष यह है कि कठिन हिस्सा बोर्ड को विभिन्न आकारों और उन्मुखताओं के साथ विभिन्न दस्तावेजों पर काम करने के लिए एक समाधान ढूंढना है। मुझे अभी भी यकीन नहीं है कि मैं उचित समाधान का उपयोग कर रहा हूं। लेकिन उपयोगकर्ता को फ्लिप डिटेक्शन और जीएस ऑटो-रोटेशन बदलने की अनुमति देकर मुझे कम से कम ज्यादातर मामलों का समाधान होने की उम्मीद है।
मैंने प्रक्रिया में अधिकांश कोड का पुनर्निर्माण भी किया है और अब इसे पढ़ने में काफी आसान है। यदि आप इस तरह के कार्य को स्वचालित करना चाहते हैं तो इसे जांचने के लिए उपयोगी हो सकता है। इसके अलावा बस पैमाने के लिए उपयोगी/पीडीएफ़ का आकार बदलने के रूप में अच्छी तरह निश्चित रूप से:
https://github.com/tavinus/pdfScale
पुनश्च: pdfScale अपनी मूल on this StackOverflow thread है।
उत्तर के लिए धन्यवाद, मैंने पहले से ही -dPDFFITPAGE तर्क का उपयोग किया है और यह काम नहीं कर रहा है। – Matt
पीडीएफ इनपुट को स्केल करने के तरीके हैं (बदसूरत वाले), लेकिन आमतौर पर इसकी आवश्यकता नहीं होती है। क्या आप देखने के लिए एक उदाहरण फ़ाइल साझा कर सकते हैं? – KenS
@ मैट: मुझे लगता है कि अगर आप '-dFIXEDMEDIA' स्विच जोड़ते हैं तो यह काम करेगा ... –