मेरे पास एक पीडीएफ में, पोस्टस्क्रिप्ट के रूप में प्रदान किए गए पृष्ठों को प्रदर्शित करने के लिए एक बश फ़ंक्शन है:
function psman () {
man -t "$@" | ps2pdf - /tmp/manpage.pdf
evince /tmp/manpage.pdf
}
( अद्यतन करें : मैंने परिधीय जटिलताओं को डायनामिक रूप से अस्थायी फ़ाइल नाम बनाने और 'nohup' का उपयोग करके छीन लिया
यह ठीक काम करता है। उपयोग में इसके स्क्रीनशॉट के लिए, देखें https://www.tartley.com/postscript-formatted-man-pages ।
अपने स्वयं के संपादन के लिए, मैंने टेंपफाइल्स का उपयोग किए बिना इसे लागू करने का प्रयास किया। उदाहरण के लिए, प्रक्रिया प्रतिस्थापन का उपयोग कर:
$ evince <(man -t ls | ps2pdf - -)
यह काम नहीं करता है। एवियन अपने GUI में एक त्रुटि प्रदर्शित करता है:
Unable to open document "file:///dev/fd/63".
PDF document is damaged
क्यूं कर? बिना किसी इंटरमीडिएट फाइल को जनरेट किए मैं पीडीएफ कैसे बना और देख सकता हूं?
उपरोक्त त्रुटि संदेश गुम या खाली फ़ाइलों के लिए दिखाए जाने वाले संदेशों की तुलना में भिन्न है, इसलिए यह बस ऐसा नहीं है।
अद्यतन करें: अधिक जानकारी प्राप्त करने के लिए, मैंने more ls ’के साथ more इवियर्स’ को बदलने की कोशिश की:
$ ls -l <(man -t ls | ps2pdf - -)
lr-x------. 1 jhartley jhartley 64 Aug 23 08:59 /dev/fd/63 -> pipe:[196475]
जहां रंग बिरंगे कपड़े हैं:
/dev/fd/63'ORPHAN' के रूप में (एक सांकेतिक लिंक जो कि एक बिना फ़ाइल वाली फ़ाइल की ओर इशारा करता है), औरpipe:[196475]'मिसिंग' के रूप में (एक प्रतीकात्मक लिंक द्वारा इंगित की गई कोई भी फ़ाइल)
तो हो सकता है कि ईविल को सिर्फ एक फ़ाइल की ओर इशारा करते हुए एक लिंक दिया जा रहा है जो मौजूद नहीं है? इसकी नक़ल करने के लिए, मैंने एक प्रतीकात्मक लिंक बनाया, जो एक बिना किसी फ़ाइल की ओर इशारा करता है, फिर इसे 'इवन' के साथ खोला। लेकिन ऊपर दिए गए 'पीडीएफ क्षतिग्रस्त है' संदेश के बजाय, यह मुझे "ऐसी कोई फ़ाइल या निर्देशिका नहीं देता है।"
अद्यतन करें: मुझे लगता है कि ORPHAN / MISSING फाइलिंग एक लाल हेरिंग है। मैं एक ही साधारण प्रक्रिया प्रतिस्थापन करते समय एक ही ORPHAN / MISSING सिम्कल देखता हूं:
$ ls -l <( echo 123 )
और उसी का उपयोग करते हुए man|ps2pdt पाइपलाइन ठीक काम करता है जब प्रक्रिया प्रतिस्थापन खिलाया जाता है diff:
$ diff <(man -t ls | ps2pdf - - | tr "\0" "0") <(man -t ls | ps2pdf - - | tr "\0" "0")
248c248
< /ID [<95A81B38FAE8E6FE3C899586A1DEE861><95A81B38FAE8E6FE3C899586A1DEE861>]
---
> /ID [<2F9164BD9265C8540A4A8E7068076344><2F9164BD9265C8540A4A8E7068076344>]
(यहां मैंने पीडीएफ आउटपुट में अशक्त / शून्य वर्णों को समाप्त करने के लिए पाइपलाइनों में to ट्र ’’ जोड़ा है, जिससे फाइलों को द्विआधारी के बजाय पाठ के रूप में माना जाएगा।)
तो, सारांश में, मुझे नहीं पता कि मुझे ऊपर "पीडीएफ क्षतिग्रस्त है" त्रुटि क्यों है। मेरा लक्ष्य, समझ के अलावा, रास्ते में किसी भी फाइल को उत्पन्न किए बिना उत्पन्न पीडीएफ को देखना है।
evince <( cat man-ls.pdf ) त्रुटियों के बिना खुलता है, 4 पृष्ठ (सही संख्या) प्रदर्शित करता है, लेकिन सभी पृष्ठ रिक्त हैं। जैसे यह आंशिक रूप से फ़ाइल को सफलतापूर्वक पढ़ता है, लेकिन फिर कुछ बिंदु पर विफल रहा है।