पीडीएफ फाइलों को क्रॉप करने के लिए कमांड लाइन टूल


101

मैं पीडीएफ फाइल को खोलने के लिए एक ओपन सोर्स कमांड लाइन टूल की तलाश कर रहा हूं जैसे हम एडोब एक्रोबेट प्रो में कर सकते हैं। मैंने PdfTk, ImageMagick, PyPDF, और GhostScript की कोशिश की है - अब तक कोई सफलता नहीं मिली है।


क्या आप बता सकते हैं कि आप Adobe Acrobat pro के साथ किस तरह की फसल कर सकते हैं? क्योंकि मेरे पास यह नहीं है और इसलिए यह नहीं बता सकता कि आप क्या देख रहे हैं।
xubuntix

एडोब एक्रोबेट प्रो में हम पीडीएफ को क्रॉप करने के लिए मार्जिन कंट्रोल का उपयोग कर सकते हैं। हम फसल के ऊपर, नीचे, दाएं और बाएं के लिए मूल्य प्रदान कर सकते हैं
राकेश

जवाबों:


124

मेरा सुझाव है कि आप PDFcrop पर एक नज़र डालें

यदि आप 5, 10, 20, और 30 pt (अंक) के साथ बाएं, ऊपर, दाएं और नीचे मार्जिन के साथ एक पीडीएफ फसल करना चाहते हैं, तो चलाएं

pdfcrop --margins '5 10 20 30' input.pdf output.pdf

टर्मिनल में। वास्तव में कुछ दूर फसल के लिए, फसल के तर्क में नकारात्मक मूल्यों का उपयोग करें। उदाहरण के लिए,

pdfcrop --margins '-50 -50 -50 -50' input.pdf output.pdf

बाएं, ऊपर, दाएं, नीचे (इस क्रम में) से 50 पीटी की फसल।

यदि आप केवल कमांड चलाते हैं pdfcrop input, तो यह शून्य मार्जिन के साथ इनपुट-क्रॉप.पीडीएफ नामक एक फाइल को आउटपुट करेगा । मुझे यह बहुत उपयोगी लगता है जब दस्तावेजों में पीडीएफ चित्रण शामिल हैं।

कई फ़ाइलों को काट रहा है

दुर्भाग्य से, pdfcrop समय पर कई फ़ाइलों को क्रॉप नहीं कर सकता है। हालाँकि ऐसी स्क्रिप्ट लिखना आसान है जो स्क्रिप्ट में स्थित फ़ोल्डर में सभी pdfs को क्रॉप करेगी।

एक नई खाली फ़ाइल बनाएं, और उसे कॉल करें something.sh। इसे टेक्स्ट एडिटर से खोलें और निम्नलिखित डालें:

#!/bin/bash
for FILE in ./*.pdf; do
  pdfcrop "${FILE}"
done

इसे सहेजें, और बंद करें। फिर फ़ाइल पर राइट क्लिक करें, गुण> अनुमतियों पर जाएं और फ़ील्ड जांचें कार्यक्रम के रूप में फ़ाइल निष्पादित करने की अनुमति दें । अब संवाद बंद करें। स्क्रिप्ट को डबल क्लिक करके चलाएँ और टर्मिनल में रन चुनें । और नए, शून्य मार्जिन प्रत्यय के साथ सभी pdfs के संस्करण काटी -Crop अब फ़ोल्डर में प्रिंट किया जाएगा। यदि आप मार्जिन या अन्य चीजें चाहते हैं, तो आप निश्चित रूप से स्क्रिप्ट खोल सकते हैं और बाद में तर्क जोड़ सकते हैं pdfcrop


ध्यान दें कि नकारात्मक मार्जिन को निर्दिष्ट करने के बजाय, कोई भी उपयोग कर सकता है --bbox "<left> <bottom> <right> <top>"। यह नीचे मेरे जवाब में वर्णित फसल क्षेत्र को निर्धारित करने के लिए दृष्टिकोण का उपयोग करने की अनुमति देता है ।
bluenote10

क्या पेज नंबर बताने की संभावना है (जिसे फसली करने की आवश्यकता है)?
LK

मुझे डर है कि यह सब या कुछ भी नहीं है। pdfcrop --helpउपलब्ध विकल्पों को सूचीबद्ध करता है। मैं वहाँ कुछ भी नहीं देख सकता है जो पृष्ठों की एक श्रृंखला को निर्दिष्ट करने की अनुमति देगा।
Rasmus

7
PDFCrop के आउटपुट के आकार की तुलना इसके इनपुट से करें, तो ऐसा लगता है कि PDFcrop केवल बाउंडिंग बॉक्स को संशोधित करता है। यह डेटा को दूर नहीं करता है। तो यह दृष्टिकोण पीडीएफ को छोटा करने, या जानकारी छिपाने के लिए अनुपयुक्त होगा।
init_js

जादू की तरह! यहां तक ​​कि मार्जिन के साथ पीडीएफ की जरूरत है!
जोजो

36

रासमस के लिए धन्यवाद, आप टेक्सक्लाइव-एक्स्ट्रा-बर्तन पैकेज से pdfcrop स्थापित कर सकते हैं:

sudo apt-get install texlive-extra-utils

फिर पीडीएफ फसल कमांड का उपयोग करके पीडीएफ फाइलों को क्रॉप करें:

pdfcrop input.pdf output.pdf

--helpअधिक अद्भुत मापदंडों को देखने के लिए उपयोग करें--margins

pdfcrop --margins 5 input.pdf output.pdf

पृष्ठ के प्रत्येक पक्ष से 5 बीपी के साथ कौन सी फसल पीडीएफ


1
माप है bp, जो इससे थोड़ा अलग है ptTex.stackexchange.com/questions/8260/… देखें ।
16

2
मेरे लिए pdfcrop ने फ़ाइल का आकार 300x (7MB से 2GB तक) बढ़ाया। मुझे gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS="/ebook" -sOutputFile=output2.pdf output.pdfबाद में करना पड़ा , जिसने फ़ाइल का आकार तय किया।
19

17

आप बस घोस्टस्क्रिप्ट का उपयोग करके पीडीएफ फाइलों को भी क्रॉप कर सकते हैं। मैंने प्रक्रिया को सरल बनाने के लिए एक छोटी सी पटकथा लिखी है ( इस उत्तर से प्रेरित ):

#!/bin/bash

if [ $# -lt 5 ]
then
  echo "Usage: `basename $0` <pdf-file> <x_min> <x_max> <y_min> <y_max>"
  echo "Notes:"
  echo " - all coordinates are absolute; no calculation of width/height necessary"
  echo " - use 'gv' to determine the coordinates"
  exit 65
fi

file="$1"
xmin="$2"
xmax="$3"
ymin="$4"
ymax="$5"

base="${file%.*}"
outfile="${base}_cropped.pdf"

echo "writing to: $outfile"

gs \
  -o $outfile \
  -sDEVICE=pdfwrite \
  -c "[/CropBox [$xmin $ymin $xmax $ymax] /PAGES pdfmark" \
  -f $file

क्रॉपिंग के लिए निर्देशांक निर्धारित करने के लिए, मैं उपयोग करता हूं gv, जो घोस्टस्क्रिप्ट के समान इकाइयों का उपयोग करके माउस कर्सर के निर्देशांक को प्रिंट करता है। उदाहरण के लिए, यहां मैं x / y के लिए न्यूनतम निर्देशांक निर्धारित करता हूं (ऊपरी बाएं कोने में मान):

crop1

अब अधिकतम निर्देशांक:

crop2

और अंत में, मैं स्क्रिप्ट का pdf_crop_by_coordinates.sh test.pdf 45 429 38 419निर्माण करता हूं, test_cropped.pdfजो इस तरह दिखता है:

नतीजा

हालांकि pdfcropगुणवत्ता और शुद्धता के मामले में घोस्टस्क्रिप्ट समाधान की तुलना कैसे की जाती है, इसका मुझे कोई अंदाजा नहीं है ।


15

जब मैं pdftk के साथ कुछ नहीं कर सकता, तो अगली जगह मैं PDFjam है , जो कि pdfpages LaTeX पैकेज के लिए एक कमांड-लाइन रैपर है (इसलिए आपको इसकी आवश्यकता भी है और एक TeX distro स्थापित है)। इसका उपयोग करने के तरीके के बारे में मदद के लिए, मैं नियमित सहायता स्क्रीन की सलाह देता हूं:

pdfjam --help

जैसा कि मैन पेज विरल है और वेब पेज उदाहरणों पर केंद्रित है।

PDF क्रॉप करने के लिए, आपको जिस कमांड की आवश्यकता है वह कुछ इस प्रकार है:

pdfjam --keepinfo --trim "10mm 15mm 10mm 15mm" --clip true --suffix "cropped" input.pdf

यह नामक एक फ़ाइल आउटपुट करेगा input-cropped.pdf। ट्रिम्स के आदेश के अनुसार छोड़ दिया जाना चाहिए, नीचे, दाएं, ऊपर, \includegraphicsसे graphicx

PDFcrop के साथ इसकी तुलना कैसे की जाती है, इसका अंदाजा लगाने के लिए, मैंने हाल ही में एक काफी फैंसी पीडीएफ क्रॉप किया था। मेरा मूल 675 kB था, PDFjam के माध्यम से मेरा क्रॉप्ड वर्जन 1.2 एमबी था, जबकि पीडीएफक्रॉप के माध्यम से क्रॉप किया गया संस्करण 4.5 एमबी था। जबकि पीडीएफजैम और पीडीएफक्रॉप दोनों ने एम्बेडेड हाइपरलिंक्स और बुकमार्क को छीन लिया, --keepinfoविकल्प के साथ पीडीएफजाम ने दस्तावेज गुणों (जैसे शीर्षक, लेखक, विषय) को संरक्षित किया।


1
नोट: यह वास्तव में पीडीएफ से ऑफ-स्क्रीन बनने वाली सामग्री को नहीं हटाता है, केवल इसे छुपाता है। शीर्ष स्कोर में उत्तर पर @init_js की टिप्पणियों के समान ही।
Jan 25ankowski


3

यह आपकी मदद कर सकता है।
यह उबंटू और जीवन के नए संस्करण के अनुसार है। यह मास्टर पीडीएफ संपादक है । आप इसे फसल का उपयोग कर सकते हैं, कुछ सामान जोड़ सकते हैं, आदि।

उदाहरण:
यह इससे पहले है कि यह पहले है यह ctrl + k के बाद है यहाँ छवि विवरण दर्ज करें



2

आप इस पृष्ठ से एक pypdf स्क्रिप्ट का उपयोग कर सकते हैं । लेकिन इस स्टैकएक्सचेंज प्रश्न के उत्तर में , कई विकल्प भी प्रतीत होते हैं।


मैं नहीं छोड़ पा रहा हूं कि बाएं शीर्ष दाएं निचले पैरामीटर क्या हैं। वे अंक, इंच, सेंटीमीटर हैं?
राकेश

@ राकेश: मापदंडों की व्याख्या के लिए मेरा जवाब देखें और उन्हें आसानी से कैसे निर्धारित करें।
bluenote10

2

PdfCropMargins कार्यक्रम एक कमांड लाइन आवेदन स्वचालित रूप से पीडीएफ फाइलों के हाशिये फसल है।

यह प्रोग्राम या तो घोस्टस्क्रिप्ट प्रोग्राम या सिस्टम पर स्थापित किए जा रहे pdftoppm प्रोग्राम (और लोकेबल) पर निर्भर करता है। और थ्रेशोल्ड 191 का उपयोग करके बाउंडिंग बॉक्स खोजने के लिए पीआईएल के साथ पेज इमेज का विश्लेषण करें।

का उपयोग कर स्थापित करें

पाइप स्थापित करें pdfCropMargins

का उपयोग कर चलाएं

पीडीएफ-फसल-मार्जिन -v -s -u your-file.pdf

मदद के लिए

पीडीएफ-फसल-मार्जिन -एच | अधिक

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