का उपयोग करके रिक्त पृष्ठों को हटाने के लिए पाइथन स्क्रिप्ट, मैं पीपीपीडीएफ का उपयोग करके पीडीपीडीएफ का उपयोग करके पीडीपीडीएफ का उपयोग करके दो अलग-अलग पृष्ठों में विभाजित करने की कोशिश कर रहा हूं, उन्हें सही ढंग से ऑर्डर करें (आमतौर पर मुद्रित सामने और पीछे, इसलिए हर दूसरे पृष्ठ को इसकी आवश्यकता होती है उपपृष्ठों ने अलग-अलग आदेश दिया), और आउटपुट दस्तावेज़ के अंत में परिणामी रिक्त पृष्ठों को हटा दें।पीईपीडीएफ
मैंने पीडीएफ पृष्ठों को काटने और उन्हें पुन: क्रमबद्ध करने के लिए निम्न स्क्रिप्ट लिखी। प्रत्येक पृष्ठ को दो कॉलम और प्रत्येक कॉलम को तीन पृष्ठों में डालता है। मैं अजगर के साथ बहुत अनुभवी नहीं हूं, इसलिए कृपया कुछ भी क्षमा करें जो मैं सही तरीके से नहीं कर रहा हूं।
#!/usr/bin/env python
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
for i in range(0,input.getNumPages(),2):
p = input.getPage(i)
q = copy.copy(p)
r = copy.copy(p)
s = copy.copy(p)
t = copy.copy(p)
u = copy.copy(p)
(x, y) = p.mediaBox.lowerLeft
(w, h) = p.mediaBox.upperRight
p.mediaBox.lowerLeft = (x, 2 * h/3)
p.mediaBox.upperRight = (w/2, h)
q.mediaBox.lowerLeft = (w/2, 2 * h/3)
q.mediaBox.upperRight = (w, h)
r.mediaBox.lowerLeft = (x, h/3)
r.mediaBox.upperRight = (w/2, 2 * h/3)
s.mediaBox.lowerLeft = (w/2, h/3)
s.mediaBox.upperRight = (w, 2 * h/3)
t.mediaBox.lowerLeft = (x, y)
t.mediaBox.upperRight = (w/2, h/3)
u.mediaBox.lowerLeft = (w/2, y)
u.mediaBox.upperRight = (w, h/3)
a = input.getPage(i+1)
b = copy.copy(a)
c = copy.copy(a)
d = copy.copy(a)
e = copy.copy(a)
f = copy.copy(a)
(x, y) = a.mediaBox.lowerLeft
(w, h) = a.mediaBox.upperRight
a.mediaBox.lowerLeft = (x, 2 * h/3)
a.mediaBox.upperRight = (w/2, h)
b.mediaBox.lowerLeft = (w/2, 2 * h/3)
b.mediaBox.upperRight = (w, h)
c.mediaBox.lowerLeft = (x, h/3)
c.mediaBox.upperRight = (w/2, 2 * h/3)
d.mediaBox.lowerLeft = (w/2, h/3)
d.mediaBox.upperRight = (w, 2 * h/3)
e.mediaBox.lowerLeft = (x, y)
e.mediaBox.upperRight = (w/2, h/3)
f.mediaBox.lowerLeft = (w/2, y)
f.mediaBox.upperRight = (w, h/3)
output.addPage(p)
output.addPage(b)
output.addPage(q)
output.addPage(a)
output.addPage(r)
output.addPage(d)
output.addPage(s)
output.addPage(c)
output.addPage(t)
output.addPage(f)
output.addPage(u)
output.addPage(e)
output.write(sys.stdout)
फिर मैं रिक्त पृष्ठों को हटाने के लिए निम्न स्क्रिप्ट का उपयोग करता हूं।
#!/usr/bin/env python
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
for i in range(0,input.getNumPages()):
p = input.getPage(i)
text = p.extractText()
if (len(text) > 10):
output.addPage(p)
output.write(sys.stdout)
समस्या यह प्रतीत होती है कि पृष्ठों को स्पष्ट रूप से फसल कर दिया गया है, पाठ ड्रा आदेश अभी भी वहां हैं। इनमें से कोई भी पृष्ठ स्कैन नहीं किया गया है, इसलिए यदि वे खाली हैं, तो वे वास्तव में खाली हैं। क्या किसी के पास कुछ ऐसे विचार हैं जो मैं अलग-अलग कर सकता हूं या संभवतः रिक्त पृष्ठों को हटाने के लिए एक पूरी तरह से अलग दृष्टिकोण कर सकता हूं? मेरे द्वारा किसी भी सहायता की वास्तव में सराहना की जाएगी।
अपडेट: यदि मैं एक्रोबैट में पहली स्क्रिप्ट का परिणाम खोलता हूं और फिर 'सेव करें ...' का उपयोग करता हूं, तो यह फ़ाइल को ग्राउंड अप से पुनर्निर्माण करता है। फिर जब मैं दूसरी स्क्रिप्ट चलाता हूं तो यह वैसे ही काम करता है जिस तरह से मैं चाहता हूं। मुझे उस स्क्रिप्ट में उपयोग करने के लिए 'सेव ...' में एक्रोबैट की प्रक्रिया को स्क्रिप्ट करने का एक तरीका चाहिए, जिसे एक्रोबैट की आवश्यकता नहीं होती है। – rpeck1682
यह वास्तव में एक उत्तर नहीं है, इसलिए मैं इसे एक टिप्पणी के रूप में पोस्ट करूंगा। एक बार आईओएस ऐप में पूरी चीज डालने की जरूरत थी। मैंने अंत में रिक्त पृष्ठों की संख्या की पहचान करने के लिए सेटिंग के साथ मूल पीडीएफ के उपयुक्त क्षेत्रों को चित्रित करने का सहारा लिया। यह आदर्श नहीं है, लेकिन यह काम करता है। – rpeck1682