लिनक्स में पीडीएफ को कैसे डिस्टिल / रिस्टार्ट करें


14

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

मैं "डिस्टिल" पीडीएफ को प्रिंट करने के लिए एक मृत-निश्चित प्रारूप में "रास्ता" ढूंढ रहा हूं। या तो पीडीएफ को सरल बनाने / इस बिंदु पर सामान्य करने के द्वारा कि कोई भी रेंडर इसे सही ढंग से प्रस्तुत करेगा, या बस पीडीएफ में प्रत्येक पृष्ठ को 600dpi रेखापुंज छवि बनाकर। (मैं पीडीएफ को अलग-अलग रेखापुंज छवियों में विभाजित कर सकता हूं और उन्हें मैन्युअल रूप से संयोजित कर सकता हूं, लेकिन मुझे कुछ स्क्रिप्ट योग्य चाहिए।)

आउटपुट फ़ाइल का आकार मायने नहीं रखता है, जब तक यह प्रिंट होना निश्चित है, इसमें ए 4 पेपर आकार (या मूल) और 300 ~ 600 डीपीआई रिज़ॉल्यूशन है।


अगर प्रिंटर पोस्टस्क्रिप्ट का समर्थन कर रहा है तो शायद pdf2ps मदद कर सकता है।
फ्रलान

यह एक पोस्टस्क्रिप्ट प्रिंटर माना जाता है, लेकिन यह समर्थन पीडीएफ की तुलना में भी बदतर है (और यह यूएसबी स्टिक से पीएस प्रिंट नहीं करेगा)।
Sampo

जवाबों:


23

फोंट को रूपरेखा ( इस प्रश्न और pstoedit सहित ) के रूप में प्रस्तुत करने के कुछ विकल्पों का असफल प्रयास करने के बाद , मैंने इमेजमैगिक का उपयोग करके पीडीएफ को आसानी से rasterized रूप में बदलने का एक तरीका निकाला:

convert -density 600 +antialias input.pdf output.pdf

यह एक पीडीएफ बनाता है जो 600 डीपीआई पर प्रस्तुत किया गया है, जिसमें एंटीलिया बंद हो गया है (उस संकल्प पर अनावश्यक)।

आउटपुट फाइलें बहुत बड़ी हैं (एक 8-पृष्ठ दस्तावेज़ के लिए ~ 30 एमबी) और प्रिंट करने के लिए बहुत धीमी है, लेकिन तब तक काम करना चाहिए जब तक कि सामग्री को प्रस्तुत करने के लिए प्रिंटर के पास पर्याप्त मेमोरी हो।


1
हाँ! मैंने इसे बड़ी सफलता के लिए अपनी पीडीएफ में परतों को समतल करने के लिए उपयोग किया। + एंटीलियास आवश्यक नहीं था क्योंकि हमारे पास केवल छवियां थीं (इससे कोई फर्क नहीं पड़ा) और मैंने संकल्प को 150 तक गिरा दिया क्योंकि यह इतना स्थान लेने के बिना संग्रह करने के लिए काफी अच्छा लग रहा था। धन्यवाद!
mlissner

2
ध्यान दें कि convertआपके द्वारा भरे गए फ़ॉर्म की सामग्री को संरक्षित नहीं किया जा सकता है। (मैं यह सुनिश्चित करने के लिए एक पीडीएफ को रिस्टोर करना चाहता था कि फॉर्म कंटेंट हर जगह एक जैसे दिखें, विशेष रूप से यह कि वे हर पीडीएफ व्यूअर द्वारा पहली बार में प्रदर्शित होंगे।) फॉर्म कंटेंट को संरक्षित करने के लिए, evince(या जो भी हो) दस्तावेज़ को "फ़ाइल में" प्रिंट करने के लिए आपने जो फ़ॉर्म भरा था) - यह एक और पीडीएफ है जहां फॉर्म सामग्री वास्तव में नियमित पाठ का हिस्सा बन गई है। फिर आप अपनी आवश्यकताओं के आधार पर इस नए पीडीएफ को फिर से तैयार कर सकते हैं।
बालू

ध्यान दें कि +antialiasयह बंद करने ( -antialias) को बंद करने के बजाय ( ) पर एंटीअलियाजिंग करता है ।
xiii1408

नहीं, +antialiasantialiasing को निष्क्रिय करता है: imagemagick.org/script/command-line-options.php?#antialias
Sampo

1
इस कार्य को करने के लिए मुझे इमेजमैगिक ( stackoverflow.com/questions/42928765/… ) को ट्विस्ट करने की आवश्यकता थी ।
स्टीवसॉन्ग

1

Imagemagick का उपयोग करना, मेरे अनुभव में, उच्च संकल्पों और / या बड़ी फ़ाइलों के साथ स्थिर नहीं है। कई प्रिंटर 1200 डीपीआई और ऊपर कर सकते हैं, इसलिए रैस्टराइज़्ड फ़ाइल में समान रिज़ॉल्यूशन होना चाहिए। एक बेहतर उपाय यह है कि pdf2djvu का उपयोग किया जाए, जो अधिक तेज़, अधिक मजबूत हो, और यहां तक ​​कि आकार के साथ फाइलें भी बनाता है जो अक्सर मूल पीडीएफ को 1200 या 2400 डीपीआई पर प्रतिद्वंद्वी करता है। इन फ़ाइलों को ओकुलर या ईवसन का उपयोग करके देखा और मुद्रित किया जा सकता है।

उदाहरण:

pdf2djvu -d 2400 file.pdf > rastered.djvu

1

मुझे लगता है कि यह करने के लिए मेरा पसंदीदा तरीका है:

  1. पीडीएफ फाइल को छवियों की एक श्रृंखला में परिवर्तित करने के लिए pdftoppm का उपयोग करें।

    $ pdftoppm source.pdf आउटपुट -png

  2. उन छवियों में से एक पीडीएफ फाइल बनाने के लिए img2pdf का उपयोग करें।

    $ img2pdf * .png -o output.pdf

अच्छी खबर यह है कि आप अपने लिए पूरी प्रक्रिया को स्वचालित करने के लिए एक बैश स्क्रिप्ट बना सकते हैं।

यहां एक बैश स्क्रिप्ट है जो एक निर्देशिका के भीतर सभी पीडीएफ फाइलों को डिस्टिल करेगा और एक नई निर्देशिका "मूल" में मूल को संरक्षित करेगा।

#!/bin/bash

mkdir "originals";
for filename in ./*.pdf; do
    pdftoppm "$filename" output -png
    mv "$filename" ./originals
    img2pdf *.png "-o" "$filename"
    rm *.png
done

क्रेडिट: img2pdf उत्तर और पीडीएफ़टॉप उत्तर और बैश स्क्रिप्ट सहायता: 1 और 2

(साइड नोट) आप प्रयोग करके img2pdf स्थापित कर सकते हैं:

$ sudo apt स्थापित img2pdf


-1

एक और विकल्प कुछ इस तरह के माध्यम से छवियों में परिवर्तित करने के लिए है

pdfimages

मैन पेज से, "Pdfimages, पोर्टेबल पिक्समैप (PPM), पोर्टेबल बिटमैप (PBM), या JPEG फ़ाइलों के रूप में एक पोर्टेबल डॉक्यूमेंट फॉर्मेट (PDF) फ़ाइल से छवियों को बचाता है। Pdfimages पीडीएफ फाइल पीडीएफ-फाइल, स्कैन या अधिक पेजों, और को पढ़ता है। प्रत्येक छवि के लिए एक PPM, PBM, या JPEG फ़ाइल लिखता है, image-root-nnn.xxx, जहां nnn छवि संख्या है और xxx छवि प्रकार (.ppm, .pbm, .jpg) है। "

फिर पीडीएफ में वापस पीडीऍफ़ में बदलने के लिए pdftk का उपयोग करें

अंत में, इस फाइल को प्रिंट करें। जाहिर है, अहम सवाल यह है कि इसे कैसे लिपिबद्ध किया जाए।

आप उपयोगकर्ताओं के लिए किसी प्रकार के साधारण वेबपृष्ठ के माध्यम से इसे स्वचालित कर सकते हैं। अंत में, वे कनवर्ट की गई फ़ाइल का प्रिंट आउट लेते हैं और आपके पास एक उच्च प्रदर्शन और वर्कआउट प्रिंटआउट होना चाहिए?


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