कमांड लाइन से pdf पेज साइज़ को कैसे क्वेरी करें?


35

स्क्रिप्टिंग के लिए मुझे एक पीडीएफ फाइल (मिमी में) के पृष्ठ आयाम प्राप्त करने की आवश्यकता है।

pdfinfo बस इसे 'pts' में प्रिंट करता है, जैसे:

Page size:      624 x 312 pts

मुझे क्या उपयोग करना चाहिए?

या जो भी इकाई 'पीटीएस' है - वैसे भी मैं उन्हें परिवर्तित करना चाहता हूं ...


2
विकिपीडिया पर बिंदु
Mat

आप किस पृष्ठ का आकार चाहते हैं? कानूनी आकार बाहरी आवरण? पत्रक का आकार "यह पृष्ठ जानबूझकर रिक्त है"? अक्षर का आकार दोगुना है?
इग्नासियो वाज़केज़-अब्राम्स

जवाबों:


31

'पीटीएस' इकाई का उपयोग pdfinfoपोस्टस्क्रिप्ट बिंदु को दर्शाता है। एक पोस्टस्क्रिप्ट बिंदु एक इंच और 72 डॉट प्रति इंच के रिज़ॉल्यूशन के संदर्भ में परिभाषित किया गया है:

1990 के दशक से 1980 के दशक में, पारंपरिक बिंदु डेस्कटॉप प्रकाशन बिंदु (यह भी पोस्टस्क्रिप्ट बिंदु कहा जाता है) है, जो इंच करने के लिए 72 बिंदुओं के रूप में परिभाषित किया गया था द्वारा का स्थान ले लिया गया था ( 1 अंक = 1/72 इंच = 25.4/72 मिमी = 0.352 ¯7 मिमी [≙ 0.3528 मिमी ])।

मैनुअल के लिए gvहोता है आम कागज प्रारूपों की एक सूची पोस्टस्क्रिप्ट अंक में निर्दिष्ट।


1
आम कागज प्रारूपों पर: pdfinfoकभी-कभी मुझे कागज प्रारूप (जैसे Page size: 595.28 x 841.89 pts (A4)) देता है - मुझे आश्चर्य है कि अगर यह ऐसा करता है तो पृष्ठ आकार की सूची के बारे में पता चलता है?
njsg

2
एक बिंदु वास्तव में 0.352777777 ... मिमी है, इसलिए 0.3528 मिमी एक करीब सन्निकटन है।
cjm

15

सबसे आसान तरीका नहीं है, लेकिन दिया imagemagickऔर unitsआप भी उपयोग कर सकते हैं

$ identify -verbose some.pdf | grep "Print size" 
Print size: 8.26389x11.6944

पृष्ठ का आकार इंच में खोजने के लिए (यह कई परिणाम प्राप्त कर सकता है यदि पीडीएफ विभिन्न आयामों का उपयोग करता है) और फिर संख्याओं को इस तरह परिवर्तित करें:

$ units -t '8.26389 inch' 'mm'
  209.90281

मतलब कि 8.26 इंच 209.9 मिमी (मैंने इसके लिए एक ए 4 पीडीएफ का इस्तेमाल किया)।


1
जब मैं identifyOS XI पर एक पीडीएफ कोई आउटपुट नहीं मिलता है।
डेविड मोल्स

बहुत देर हो चुकी है, लेकिन identify
इमेजमैजिक की

6

एक ही समस्या के पार आया और निम्नलिखित समाधान पर आया। मुझे इस बात की जानकारी नहीं थी कि पीडीएफ फाइल कैसे बनाई जाती है। मैंने सिर्फ दो खाली पीडीएफ फाइलों की तुलना अलग-अलग पेज साइज से की है।

ऐसा लगता है कि pdfs में "<<" और ">>" के बीच सभी प्रकार के गुण हैं। मैंने पाया कि पृष्ठ आकार की जानकारी सादे पाठ में है और इसे एक साधारण रेगेक्स खोज के साथ पाया जा सकता है।

यह सभी pdfs के लिए सही हो सकता है या नहीं भी हो सकता है, लेकिन यह उन सभी पर काम करता है जो मुझे विभिन्न स्रोतों से मिल सकते हैं।

संबंधित भाग A4 पृष्ठ के आकार के लिए इनमें से किसी को भी देख सकता है:

/MediaBox [0 0 595 842]
/MediaBox[0 0 595 842]
/MediaBox[ 0 0 595.32 841.92]

इसका मतलब है [0 0 चौड़ाई ऊंचाई] तो यह निकालने के लिए मेरा सुपर लंगड़ा लेकिन काम करने वाला समाधान है:

cat test.pdf | egrep -ao "/MediaBox ?\[ ?[0-9]+ [0-9]+ [0-9]+(\.[0-9]+)? [0-9]+(\.[0-9]+)?\]" | head -1

बस अपनी फ़ाइल में test.pdf बदलें।


1
ध्यान दें कि इसके द्वारा लौटाए गए मान "पॉइंट्स" में हैं मिमी नहीं, पिक्सेल या इंच
14

0

मैंने सीधे मिमी की गणना करने के लिए मैक्सचलेपिग्स उत्तर का उपयोग किया:

$ pdfinfo test.pdf | grep "Page size" | grep -Eo '[-+]?[0-9]*\.?[0-9]+' | awk -v x=0.3528 '{print $1*x}'

यह भी एलेक्स Knaufs जवाब के साथ काम करता है, लेकिन पहचान pdfinfo की तुलना में अधिक समय लेता है और इमेजमैगिक की आवश्यकता होती है, उल्टा यह है कि आप इसे कई फ़ाइलों के लिए उपयोग कर सकते हैं (यानी एक निर्देशिका में सीडीडीई करके और उपयोग करके *.pdf):

$ identify -verbose some.pdf | grep "Print size" | grep -Eo '[-+]?[0-9]*\.?[0-9]+' | awk -v x=25.4 '{print $1*x}'

दूसरी grepकमांड को दो बिंदु / इंच मान मिलते हैं। मुझे पूरा यकीन है कि आप grep regex को छोड़ सकते हैं और इसे सीधे awk के साथ कर सकते हैं लेकिन मैं इसका पता नहीं लगा सकता।

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