एक .pdf को pandoc के साथ एक .pdf में बदलें


19

मैं pandoc (मैं GNU / लिनक्स का उपयोग कर रहा हूं) का उपयोग करके मेल द्वारा प्राप्त एक .docx को एक सही पीडीएफ में बदलने की कोशिश कर रहा हूं।

मेरे पास वर्ण एन्कोडिंग से संबंधित एक त्रुटि है:

$ pandoc file.docx -o file.pdf
pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream

मैंने एन्कोडिंग की पहचान करने की कोशिश की:

$ file -i file .docx 
file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary

मैं थोड़ा हैरान charset=binaryहूं (मुझे उम्मीद थी charset=iso8859-15)। हालाँकि मैंने वैसे भी .docx को utf8 में बदलने की कोशिश की है और यह काम नहीं कर रहा है:

 $ iconv -t utf-8 file.docx
P!      $iconv: séquence d'échappement non permise à la position 16

मुझे पंडोक प्रलेखन से कमांड लाइन के साथ एक ही त्रुटि है :

iconv -t utf-8 file.docx | pandoc | iconv -f utf-8

मैं इसे कैसे परिवर्तित कर सकता हूँ। Docx को pandoc के साथ pdf में?


आप ज़मज़ार का उपयोग क्यों नहीं करते हैं - एक बार के लिए ... मुझे अपना काम संपादित करने के लिए किंग्सॉफ्ट का उपयोग करना होगा, हालांकि उत्तरी अमेरिका में इसका उपयोग करना शायद गैरकानूनी है ...
Wilf

मैं ध्वज iconvका उपयोग करके एक स्रोत वर्ण सेट प्रदान करने का सुझाव देता हूं -f। उदाहरण के लिए, iconv -f ISO-8859-15 -t utf-8 file.docxकाम कर सकते हैं। कोई विचार नहीं है कि एक .docx फ़ाइल का प्रारूप क्या है, हालाँकि।
derobert

@wilf मैंने कोशिश की। आउटपुट सही नहीं है (सामान्य रूप से, ज़मज़र अपना काम बहुत अच्छी तरह से करता है लेकिन इस फाइल के लिए नहीं)।
पीपी

1
@wilf धन्यवाद (पंडोक इतना शक्तिशाली है कि कभी-कभी मैं भूल जाता हूं कि इसकी सीमाएं हैं)।
ppr

2
@derobert: iconvकिसी .docxफ़ाइल पर सीधे काम करने की संभावना नहीं है। iconvमानता है कि इसका इनपुट कुछ निर्दिष्ट या अनुमानित प्रारूप में एक पाठ फ़ाइल है। एक .docxफ़ाइल वास्तव में एक ज़िप फ़ाइल (एक संपीड़ित संग्रह) है जिसमें (ज्यादातर) xml फाइलें हैं। आपके पास निश्चित रूप से कुछ किस्मत हो सकती है .docxफ़ाइल को खोलना , iconvघटक फाइलों पर चलना , और फिर सब कुछ फिर से एक नए में बदलना .docx, लेकिन मैं इस पर काम नहीं करूंगा। एक बात के लिए, दस्तावेज़ की वास्तविक सामग्री वाली xml फ़ाइल इसके एन्कोडिंग को निर्दिष्ट करती है: encoding="UTF-8"उदाहरण के लिए।
कीथ थॉम्पसन

जवाबों:


16

यहाँ प्रलेखन में , .docxएक संगत इनपुट के रूप में सूचीबद्ध नहीं है :

पंडोक एक मार्कअप प्रारूप से दूसरे में परिवर्तित करने के लिए एक हास्केल पुस्तकालय है, और एक कमांड-लाइन टूल है जो इस पुस्तकालय का उपयोग करता है। यह मार्कडाउन और (उपसमूह) टेक्सटाइल, reStructuredText, HTML, LaTeX, MediaWiki markup, Haddock markup, OPML और DocBook पढ़ सकता है; और यह कर सकते हैं लिखने सादा पाठ, markdown, reStructuredText, एक्सएचटीएमएल, एचटीएमएल 5, LaTeX (बीमर स्लाइड शो सहित), संदर्भ, आरटीएफ, OPML, DocBook, OpenDocument, ODT, वर्ड docx, जीएनयू Texinfo, MediaWiki मार्कअप, EPUB (v2 या v3 ), फिक्शनबुक 2, टेक्सटाइल, ग्रॉफ मैन पेज, Emacs ऑर्ग-मोड, AsciiDoc और Slidy, Slideous, DZSlides, rev.js या S5 HTML स्लाइड शो। यह उन सिस्टमों पर भी पीडीएफ आउटपुट उत्पन्न कर सकता है जहां LaTeX स्थापित है।

कुछ और कोशिश करें, जैसे लिब्रे ऑफिस जो docx कर सकते हैं, aslong के रूप में आप कुछ प्रारूपण त्रुटियाँ कोई आपत्ति नहीं है -।

संपादित करें:

विवरण अब कहता है कि पंडोक अब वर्ड DOCX (साथ ही साथ DocBook और कुछ अन्य प्रारूपों) से पढ़ने का समर्थन करने लगता है:

पंडोक एक मार्कअप प्रारूप से दूसरे में परिवर्तित करने के लिए एक हास्केल पुस्तकालय है, और एक कमांड-लाइन टूल है जो इस पुस्तकालय का उपयोग करता है। यह मार्कडाउन और (सबसेट्स) टेक्सटाइल, reStructuredText, HTML, LaTeX, MediaWiki markup, TWiki markup, Haddock markup, OPML, Emacs Org-mode, DobBook, txt2tags, EPUB और Word docx पढ़ सकता है ; और यह लिख सकता हैसादा पाठ, मार्कडाउन, reStructuredText, XHTML, HTML 5, LaTeX (बीमर स्लाइड शो सहित), ConTeXt, RTF, OPML, DocBook, OpenDocument, ODT, Word Tocx, GNU Texinfo, MediaWiki markup, DokuWiki markup, Haddock markup, EPF या v3), फिक्शनबुक 2, टेक्सटाइल, ग्रॉफ मैन पेज, Emacs ऑर्ग-मोड, AsciiDoc, InDesign ICML, और स्लीडी, स्लाइडस, DZSlides, Rev.js या S5 स्लाइड स्लाइड शो। यह उन सिस्टमों पर भी पीडीएफ आउटपुट उत्पन्न कर सकता है जहां LaTeX स्थापित है।


जैसा कि @evilsoup ने सुझाव दिया, यह काम कर सकता है:

cd /DIRECTORY/WITH/FILE/IN && libreoffice --headless --convert-to html 'FILE.docx' && pandoc 'FILE.html' -o 'FILE.pdf'

हां, आप libreoffice कमांड का उपयोग कर सकते हैं --outdir, लेकिन html आउटपुट हमेशा इस तरह से काम नहीं करता है ...

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


उम .... शब्द डॉक्स आपके उद्धृत पाठ में वहीं है (ओपनडिक्यूमेंट और ओडीटी के ठीक बाद)। उस ने कहा, डॉक्स अभी भी एक अच्छी तरह से प्रलेखित प्रारूप नहीं है और इसलिए, खुली दुनिया में वास्तविक अनुकूलता है .... धब्बेदार, हम कहेंगे, और लिबरऑफिस के लिए आपका सुझाव (प्रारूपण अंतर के साथ ) अच्छा है।
सुपरमैजिक डेस

@SuperMagic - यह है, बिट में यह लिख सकता है ... इसे आसान बनाने के लिए इसे हाइलाइट किया गया।
विल्फ डे

1
यदि आप वास्तव में एक पैंडॉक-शैली (वास्तव में LaTeX- निर्मित) पीडीएफ चाहते हैं, तो आप docx को html में परिवर्तित करने के लिए लिब्रे ऑफिस का उपयोग भी कर सकते हैं, और फिर मूल दस्तावेज़ बनाने वाले व्यक्ति की योग्यता के आधार पर pandoc के इनपुट के रूप में उपयोग कर सकते हैं, आपको <BR>HTML से s का एक गुच्छा निकालने की आवश्यकता हो सकती है )।
evilsoup

1
OSX पर, निष्पादन योग्य को सॉफ़िस कहा जाता है और इसे /Applications/LibreOffice.app/contents/MacOS/bin में पाया जा सकता है। अधिक विवरण यहां पाया जा सकता है: ask.libreoffice.org/en/question/12084/…
टिम

2
पंडोक अब प्रलेखन में एक समर्थित प्रारूप के रूप में वर्ड डॉक को सूचीबद्ध करता है।
क्लेडोक्स

12

यह अभी भी Google खोजों पर आता है इसलिए मैं इसे रिकॉर्ड पर रखना चाहता था: जब यह प्रश्न पूछा गया था तो पंडोक डॉक्स नहीं पढ़ सकता था (त्रुटि बाइनरी फ़ाइल को पढ़ने की कोशिश करने से आती है), लेकिन संस्करण 1.13 से यह कर सकता है, और यह एक करता है इसका बहुत अच्छा काम है।


2
पंडोक हालांकि मूल डिजाइन स्वरूपण को संरक्षित नहीं करता है। यह पोस्ट देखें: github.com/jgm/pandoc/issues/2206#issuecomment-107994587
orschiro
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.