2011-11-09 16 views
7

मैंका मेल पीडीएफ: सुधारा पेज नंबर के साथ मूल बुकमार्क का उपयोग

gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=book.pdf -f front-matter.pdf fulltext-0.pdf fulltext-1.pdf back-matter.pdf 

उपयोग कर रहा हूँ पीडीएफ दस्तावेजों की एक श्रृंखला से एक भी पीडीएफ दस्तावेज़ बनाने के लिए। मैं सामग्री की एक नई बनाई गई तालिका शामिल करने जा रहा था और इसे pdfmark mechanism का उपयोग करके शामिल कर रहा था। फिर मैंने देखा कि मूल फ़ाइलों में पहले से ही उनके पास बुकमार्क हैं - हालांकि उन्हें मूल पृष्ठ संख्याओं के संदर्भ में संदर्भित किया गया है, न कि संयुक्त दस्तावेज़ में।

मैं दो संभावित समाधान ढूंढ रहा हूं। मूल बुकमार्क निकालें या मूल बुकमार्क का इस्तेमाल करते हैं, लेकिन किसी तरह अपने पेज संदर्भ अद्यतन ...

उत्तर

4

जैसा कि अक्सर मामला है, किसी को इससे पहले कि आप एक ही पथ चला गया है ...

unfolding disasters यह बहुत ही समस्या का a solution बाहर काम किया है। उनके python script pdf-merge.py ने पहले को अपने dump_data स्विच के साथ सभी पीडीएफमार्क जानकारी पुनर्प्राप्त करने के लिए आमंत्रित किया। इसके बाद यह प्रत्येक मर्ज किए गए दस्तावेज़ के लिए पृष्ठों की कुल संख्या का ट्रैक रखता है और गणित को पीडीएफमार्क निर्देश में नए पीडीएफ दस्तावेज से पहले सभी पीडीएफ दस्तावेजों के पेज गणना की कुल संख्या द्वारा पीडीएफमार्क निर्देश में ऑफ़सेट करने के लिए करता है। तो यह करीब है लेकिन केनएस के 2-पास दृष्टिकोण के समान नहीं है। यह पहले pdftk का उपयोग करके बुकमार्क खोजता है और फिर सही पृष्ठ संख्याओं के साथ एक नई बुकमार्क फ़ाइल बनाता है। यह मूल पीडीएफमार्क निर्देश को चालू करने का भी प्रबंधन करता है (जिसे आमतौर पर जीएस द्वारा नोप में संरक्षित किया जाएगा)। मैं नाटक नहीं करूंगा कि मैं समझता हूं कि आखिरी हिस्सा कैसे काम करता है ...

हालांकि, स्क्रिप्ट को मुझे अंतिम लेखन से पहले बुकमार्क फ़ाइल को ट्वीव करने के विकल्प सहित सभी की ज़रूरत है। ट्रेवर किंग के लिए बहुत साफ और टोपी टिप।

+0

आप इस स्क्रिप्ट का उपयोग कैसे करते हैं? मुझे कुछ त्रुटियां मिलती हैं। – Bernhard

+0

@ बर्नहार्ड किस प्रकार की त्रुटियां – DrSAR

+0

इन्हें पसंद है: http://pastebin.com/kjMgqCc1 जहां मैं बस 'pdf-merge.py * .pdf' – Bernhard

2

सामान्य pdfwrite में पता नहीं है आप फ़ाइलों को जोड़कर कर रहे हैं, तो यह पर बुकमार्क और अन्य 'मेटाडाटा' जानकारी को बरकरार रखता है धारणा है कि आप इसे आउटपुट में चाहते हैं।

हालांकि, जब आप पीडीएफ फाइलों को जोड़ रहे हैं, तो जानकारी को संरक्षित नहीं किया जाएगा, क्योंकि दूसरी और बाद की फ़ाइलों के लिए पृष्ठ संख्या गलत होगी।

तो आपको 2-पास दृष्टिकोण की आवश्यकता है, पहले सभी फ़ाइलों को मर्ज करें, बुकमार्क को छोड़ दें, फिर मर्ज किए गए फ़ाइल को 'कन्वर्ट करें' और सही बुकमार्क सेट करने के लिए pdfmarks जोड़ें।

वर्तमान में बुकमार्क को संरक्षित करने के लिए कोई विकल्प नहीं है (पीडीएफआरआईटी के साथ)। मुझे लगता है कि आपको यह प्राप्त करने के लिए Ghostscript पीडीएफ दुभाषिया पोस्टस्क्रिप्ट फ़ाइलों को संशोधित करने की आवश्यकता होगी। आप -DDOPDFMARKS = झूठी सेटिंग करने का प्रयास कर सकते हैं, लेकिन मुझे संदेह है कि यह काम करेगा।

+0

मैंने आपकी -DDOPDFMARKS = झूठी कोशिश की लेकिन जैसा कि आपने संदेह किया, उसने कुछ नहीं किया। – DrSAR