मैं आपके लिए रूपांतरण करने वाले किसी भी उपकरण के बारे में नहीं जानता। आप निश्चित रूप से इसे करने में सक्षम होना चाहिए, लेकिन यह थोड़ा काम कर सकता है। मैं मूल प्रक्रिया को रेखांकित करूँगा। आपको ओपन सोर्स कमांड लाइन उपयोगिताओं pdftk
और djvused
(DjVuLibre का हिस्सा) की आवश्यकता होगी। ये आपके पैकेज मैनेजर (GNU / Linux) या उनकी वेबसाइटों (Windows, OS X) से उपलब्ध हैं।
चरण 1: फ़ाइल पाठ में कनवर्ट करें
सबसे पहले, डीजेवीयू फाइल को पीडीएफ में बदलने के लिए (बुकमार्क के बिना) किसी भी टूल का उपयोग करें।
मान लीजिए कि फ़ाइलों को बुलाया जाता है filename.djvu
और filename.pdf
।
चरण 2: डीजेवीयू की रूपरेखा निकालें
अगला, इस तरह से एक फ़ाइल के लिए डीजेवीयू रूपरेखा डेटा का उत्पादन:
djvused "filename.djvu" -e 'print-outline' > bmarks.out
यह एक फ़ाइल है जो क्रमबद्ध पेड़ प्रारूप में डीजेवीयू दस्तावेजों के बुकमार्क को सूचीबद्ध करता है। वास्तव में यह सिर्फ एक SEXPR है , और आसानी से पार्स किया जा सकता है। प्रारूप इस प्रकार है:
file ::= (bookmarks
<bookmark>*)
bookmark ::= (name
page
<bookmark>*)
name ::= "<character>*"
page ::= "#<digit>+"
उदाहरण के लिए:
(bookmarks
("bmark1"
"#1")
("bmark2"
"#5"
("bmark2subbmark1"
"#6")
("bmark2subbmark2"
"#7"))
("bmark3"
"#9"
...))
चरण 3: डीजेवीयू की रूपरेखा को पीडीएफ मेटाडेटा प्रारूप में रूपांतरित करें
अब, हमें इन बुकमार्क को पीडीएफ मेटाडेटा द्वारा आवश्यक प्रारूप में बदलने की आवश्यकता है। इस फ़ाइल में प्रारूप है:
file ::= <entry>*
entry ::= BookmarkBegin
BookmarkTitle: <title>
BookmarkLevel: <number>
BookmarkPageNumber: <number>
title ::= <character>*
तो हमारा उदाहरण बनेगा:
BookmarkBegin
BookmarkTitle: bmark1
BookmarkLevel: 1
BookmarkPageNumber: 1
BookmarkBegin
BookmarkTitle: bmark2
BookmarkLevel: 1
BookmarkPageNumber: 5
BookmarkBegin
BookmarkTitle: bmark2subbmark1
BookmarkLevel: 2
BookmarkPageNumber: 6
BookmarkBegin
BookmarkTitle: bmark2subbmark2
BookmarkLevel: 2
BookmarkPageNumber: 7
BookmarkBegin
BookmarkTitle: bmark3
BookmarkLevel: 1
BookmarkPageNumber: 9
मूल रूप से, आपको बस SEXPR पेड़ पर चलने के लिए एक स्क्रिप्ट लिखने की ज़रूरत है, स्तर का ध्यान रखें, और सही प्रविष्टि में नाम, पृष्ठ संख्या और प्रत्येक प्रविष्टि के स्तर को आउटपुट करें।
चरण 4: पीडीएफ मेटाडेटा निकालें और परिवर्तित बुकमार्क्स में बंटवारा करें
एक बार जब आप परिवर्तित सूची प्राप्त कर लेते हैं, तो आपकी परिवर्तित पीडीएफ फाइल से पीडीएफ मेटाडेटा आउटपुट करें:
pdftk "filename.pdf" dump_data > pdfmetadata.out
अब, फ़ाइल खोलें और शुरू होने वाली लाइन ढूंढें:
NumberOfPages:
इस लाइन के बाद परिवर्तित बुकमार्क डालें। नई फ़ाइल को इस रूप में सहेजेंpdfmetadata.in
चरण 5: बुकमार्क के साथ पीडीएफ बनाएं
अब हम इस मेटाडेटा को शामिल करते हुए एक नई पीडीएफ फाइल बना सकते हैं:
pdftk "filename.pdf" update_info "pdfmetadata.in" output out.pdf
फ़ाइल out.pdf
आपके पीडीएफ की एक कॉपी होनी चाहिए, जो डीजेवीयू फ़ाइल से आयातित बुकमार्क के साथ हो।
j.split('#')[1]
साथ दिया(int(re.findall(r'\d+', j.split('#')[1])[0])+1)
और इसने बहुत अच्छा काम किया। डेबियन जेसी की जरूरत:sudo apt-get install pdftk djvulibre-bin python-pip ruby ruby-dev libmagickwand-dev; sudo pip install sexpdata; sudo gem install iconv pdfbeads