स्रोत पाठ के लिए लाइन नंबर संदर्भ बनाए रखने के लिए .docx फ़ाइलों को सादे पाठ में परिवर्तित करना और लाइन ब्रेक को संरक्षित करना: कैसे और निहितार्थ?


9

मैं पाठ और फ़ाइल उपयोगिताओं के साथ उपयोग के लिए सादे पाठ को एमएस वर्ड सामग्री निर्यात कर रहा हूं । मेरे पास एक बाधा है जहां एमएस सॉफ्टवेयर में लाइन नंबरिंग सुविधा को सक्षम किया गया है, और अंतिम आउटपुट में लाइन संख्या के किसी भी संदर्भ को उस नंबरिंग से मेल खाना चाहिए । तो "नंबरिंग लाइन्स" दर्ज करें:

यहां छवि विवरण दर्ज करें ( पो, ईए )

स्पष्ट रूप से वर्ड के लिए , उस तरह की नंबरिंग न्यूलाइन पर लाइनों को नहीं तोड़ती है, यह सही मार्जिन (या कुछ) के बाद "लाइनों" को तोड़ती है । एक स्क्रिप्ट की तरह docx2txt, इसके लिए यह डिफ़ॉल्ट रूप से खाता नहीं है और लगता है कि न्यूलाइन पर लाइनों को तोड़ता है। इसलिए यदि मैं grep -nनंबरिंग के साथ उपयोग करता हूं , तो लाइनें स्रोत रेखा संख्या सुविधा से मेल नहीं खाएंगी, जैसा कि ऊपर सचित्र है। यह प्रलेखन से बिल्कुल स्पष्ट नहीं है कि मुझे इस मामले में जिस तरह से फ़ाइलों की आवश्यकता है उसे बदलने के लिए पर्ल स्क्रिप्ट को संपादित करने की आवश्यकता कैसे होगी:

our $config_newLine = "\n"; # Alternative is "\r\n".
our $config_lineWidth = 80; # Line width, used for short line justification.

मैंने इसके \nलिए प्रतिस्थापन की कोशिश की , \r\nलेकिन यह मेरे लिए काम नहीं करता है। इसलिए मैंने निम्नलिखित सेटिंग्स के साथ वर्ड से सीधे दस्तावेजों को निर्यात करने का सहारा लिया ( सादे पाठ के रूप में सहेजें , v.2013,64pc पर):

  • यूनिकोड (UTF-8)
  • (CR / LF) के साथ लाइन ब्रेक + एंड लाइन डालें
  • चरित्र प्रतिस्थापन की अनुमति दें

और अब वास्तव में जब मैं फ़ाइलों का उपयोग करता हूं .txtतो स्रोत नंबरिंग सुविधा और grep -nआउटपुट में लाइन नंबरों के बीच एक परिपूर्ण मिलान होता है।


  • क्या ऐसी कोई विशिष्ट कॉन्फ़िगरेशन / प्रक्रिया है जिसके बारे में मुझे पता होना चाहिए docx2txtया एक समान कमांड लाइन उपयोगिता है जिसने मुझे लाइन टूटने से बचाने के लिए अपनी .docx फ़ाइलों को सादे पाठ में बदलने की अनुमति दी होगी , जैसे मैंने वर्ड का सहारा लिए बिना ?
  • MS Word दस्तावेज़ (जिसमें उच्चारण अक्षर शामिल हो सकते हैं) को निर्यात करने के लिए फ़ाइल / पाठ उपयोगिताओं के साथ लाइन ब्रेक और फ़ॉर्मेटिंग के संबंध में सर्वोत्तम अभ्यास , क्या हैं ; और क्या मैंने सीआर / एलएफ डालने के लिए चुनी गई सेटिंग्स के साथ कोई नकारात्मक प्रभाव डाला है?

नमूना

जैसा कि सुझाव दिया गया है मैं एक नमूना प्रदान करता हूं। इस rar आर्काइव में , मैंने एक .docx फ़ाइल को साधारण पैराग्राफ के साथ बंडल किया, और इसके निर्यात की गई .Txt फाइल को वर्ड के साथ उपरोक्त विकल्पों के साथ प्रयोग किया । उत्तरार्द्ध की तुलना docx2txtस्रोत फ़ाइल पर डिफ़ॉल्ट रन के साथ की जा सकती है ।


क्या आप हमें उदाहरण फ़ाइल दे सकते हैं?
cuonglm

क्या आप इसे Word से txt फ़ाइल के रूप में सहेज नहीं सकते हैं? यदि यह आपको खराब स्वरूपण देता है तो मैं समस्या को ठीक करने के लिए विम या एमएसीएस का उपयोग करने का सुझाव दूंगा (क्योंकि मुझे यकीन है कि यह पैटर्न है)।
स्टीवन वाल्टन

1
@Steven Walton धन्यवाद, हाँ जब मैं Word से txt पर निर्यात करता हूँ तो यह काम करता है। लेकिन मैं वर्ड का इस्तेमाल करना नहीं चाहता। काश मैं ऐसा करने के लिए केवल स्क्रिप्ट पर भरोसा कर सकता। मुझे बैच के लिए एक प्रक्रिया चाहिए।

@Gnouc नमूना प्रदान किया गया है। धन्यवाद!

जवाबों:


8

docx2txtdocxफ़ाइल में जानकारी पर काम करता है जो XML फ़ाइलों का एक ज़िप सेट है।

.docxXML डेटा को लाइन रैप करने के संबंध में केवल पैराग्राफ और हार्ड-ब्रेक के बारे में जानकारी शामिल है, सॉफ्ट-ब्रेक के बारे में नहीं। शीतल-विराम एक विशिष्ट फ़ॉन्ट, फ़ॉन्ट-आकार और पृष्ठ चौड़ाई में पाठ को प्रस्तुत करने का एक परिणाम है। docx2txtआम तौर पर केवल फ़ॉन्ट और फ़ॉन्ट-आकार के संबंध में, 80 कॉलम (80 कॉलम कॉन्फ़िगर करने योग्य) में पाठ को फिट करने की कोशिश करता है। यदि आपकी .docxविंडोज सिस्टम से फ़ॉन्ट जानकारी है जो यूनिक्स / लिनक्स पर उपलब्ध नहीं है, तो निर्यात कर रहा है.txt ओपन / लिब्रे ऑफिस के माध्यम से से भी उसी लेआउट में परिणाम नहीं मिलेगा, हालांकि यह एक अच्छा काम करने की कोशिश करता है।

इसलिए docx2txtया कमांडलाइन संचालित ओपन / लिबरऑफिस प्रसंस्करण सहित किसी भी अन्य कमांडलाइन उपयोगिता, पाठ को वर्ड डॉक से निर्यात करने के लिए उसी लेआउट में कनवर्ट करने की गारंटी नहीं देगी।

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

केवल सीआर / एलएफ या एलएफ या यूटीएफ -8 या कुछ अन्य एन्कोडिंग का उपयोग करने के बारे में निर्णय .txtकाफी हद तक इस बात पर निर्भर करता है कि परिणामी फाइलें कैसे उपयोग की जाती हैं। यदि परिणामी फाइलें विंडोज पर उपयोग की जाती हैं, तो मैं निश्चित रूप से CR / LF, UTF-8 और UTF-8 BOM के साथ जाऊंगा । लिनक्स पर आधुनिक कार्यक्रम यह कटौती करने में सक्षम हैं कि एक फ़ाइल UTF-8 है, लेकिन BOM और / या इस जानकारी का उपयोग करने पर रोक नहीं लगाएगी। यदि आप सामने वाले को जानते हैं तो आपको संगतता के लिए अपने सभी लक्ष्य अनुप्रयोगों का परीक्षण करना चाहिए।

Some इस तरह की असंगति प्राथमिक कारण है कि मेरे कुछ दोस्त विंडोज से लिनक्स में नहीं बदल सकते, हालांकि वे करना चाहते हैं। उन्हें MicroSoft Word का उपयोग करना पड़ता है, क्योंकि वे ग्राहकों के साथ आदान-प्रदान करने वाले ग्रंथों को हर बार एक बार ओपन / लिबरऑफिस के रूप में उपयोग करते हैं।
All आप Word फ़ाइलों में उपयोग किए गए सभी फोंट स्थापित कर सकते हैं और कुछ पाठों के लिए भाग्यशाली हो सकते हैं, कुछ समय के लिए।
³ से पीडीएफ़ प्रतिपादन.doc/.docx
कार्यक्रम जीयूआई स्वचालन के रूप में उपयोग करता है अगर किसी को अपनी क्लिक कर रहा है मेनू और एक एपीआई के माध्यम से पद ड्राइव करने के लिए प्रयास नहीं करता है। मुझे पूरा यकीन है कि बाद में भी किया जा सकता है और अगर वर्ड अपग्रेड हो जाएगा तो चीजों को न तोड़ने का फायदा होगा


धन्यवाद, यह वास्तव में व्यावहारिक है! मैं प्रारूप से परिचित नहीं था, लेकिन मैंने स्क्रिप्ट को कॉल किया vimऔर मैं देख सकता था कि यह सब वास्तव में xml के बारे में है - मुझे इसे और देखना चाहिए। फोंट के बारे में नहीं सोचा था, या शायद हाइफ़नेशन भी। इसके अलावा कुछ ऑपरेशन के दौरान मुझे BOM के बारे में शिकायत करने वाले एक टेक्स्ट एडिटर का संदेश मिला था, इसलिए मैं लिंक को पढ़ूंगा (क्योंकि मुझे कोई सुराग नहीं था कि यह क्या था)। मुझे आपके VM समाधान से आश्चर्य हुआ! मैं GUI स्वचालन से कुछ हद तक परिचित हूं - मैंने देखा है कि बेस इमेज के प्रतिकृति के बाद इसे वर्कस्टेशन बनाने के लिए उपयोग किया जाता है; इस बारे में नहीं सोचा ...

अंत में इसका मतलब है कि इस तरह के कार्यों के साथ सोहो जाने वाले व्यक्ति को कुछ लाइसेंस की लागत को कम करने की आवश्यकता हो सकती है। शायद एक दिन वे प्रति उपयोग एपीआई के साथ एक स्तरीय करते हैं। सॉफ्ट-ब्रेक पर लाइनों को तोड़ने से पूरी तरह से एक उपकरण का उपयोग करने की गति बदल जाती है grep; यदि लाइनें लंबी हैं, तो आउटपुट पर "सटीक" घट जाती है। मुझे लगता है कि सामग्री की प्रकृति और इसका उपयोग कैसे किया जाता है, इसके साथ बाधाओं में अंतर होता है। दूसरी ओर इस तरह के प्रश्न नहीं होंगे यदि दस्तावेज़ यहाँ वर्ड नंबरिंग सुविधा पर निर्भर नहीं थे। विरासत सामग्री को शामिल करने के लिए एक दस्तावेज ढांचे का निर्माण करना गंभीर व्यवसाय है। चीयर्स!
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.