2009-10-03 19 views
31

में ज़िप करने के लिए कैसे करें मैं एक साधारण मार्कडाउन -> डॉक्क्स पार्सर/लेखक लिखने की कोशिश कर रहा हूं, लेकिन आखिरी भाग से पूरी तरह से अटक गया हूं, जो कि सबसे आसान होना चाहिए: यानी फ़ोल्डर को संकुचित करना। docx कि शब्द, या कोई अन्य .docx पाठक, पहचान जाएगा।WordprocessingML फ़ोल्डर को पठनीय docx

मेरा पार्सर-लेखक वास्तव में अप्रासंगिक है: मुझे यह समस्या है यदि मैं बस किसी भी पुराने वर्ड-उत्पादित * .docx को अनजिप करता हूं और फिर इसे सामान्य संपीड़न उपयोगिताओं के साथ पुनः संयोजित करने का प्रयास करता हूं, जिससे इसे फ़ाइल-समापन डॉक्क्स दिया जाता है। क्या कुछ रहस्यमय हेडर मुझे जोड़ना चाहिए, या क्या मुझे एक विशेष ओपीसी संपीड़न उपयोगिता की आवश्यकता है, या क्या?

मुझे ऐसा कोई उपकरण नहीं चाहिए जो यह पता चल सके कि वहां क्या होना चाहिए। ऐसा लगता है कि WordprocessingML विनिर्देश से स्वतंत्र है।

कहने की जरूरत नहीं है कि मुझे संपीड़न के बारे में कुछ भी पता नहीं है। Google के माध्यम से मुझे जो कुछ भी मिल सकता है, उसे व्यवसाय में उपयोग करने वाली फैंसी यूटिलिटीज के साथ करना है, लेकिन मैं थोड़ा निष्पादन योग्य बना रहा हूं जो जीपीएलडी या कुछ होगा, और किसी भी चीज़ पर काम करना चाहिए।

+2

एरिक व्हाइट सही निष्कर्ष निकालते हैं कि मैं अनुभवी "सबसे आम समस्या को हल मैन्युअल रूप से एक ओपन XML दस्तावेज़ ज़िप करने" में वास्तव में है। त्रुटि पहले से ही प्रश्न के शीर्षक में दिखाई दे रही है: मैं सामग्री को एक फ़ोल्डर को संपीड़ित कर रहा था, सामग्री को अलग-अलग ज़िप फ़ाइल में शामिल करने के बजाय। यह मेरे लिए होता है, मैंने यह अनुमान लगाया होगा, निश्चित रूप से यदि आप एक .docx फ़ाइल को अनजिप करते हैं, तो आपको जोरदार रूप से छोटी निर्देशिका नहीं मिलती है, लेकिन उस निर्देशिका में फाइलें जो आप काम कर रहे हैं। धन्यवाद! - निश्चित रूप से, इसका मतलब है कि मुझे ऊपर बताए गए प्रोजेक्ट पर वापस जाना चाहिए ... :) – applicative

उत्तर

1

संपीड़न एल्गोरिदम का उपयोग "ज़िप" (बेस 64) संपीड़न है।

7zip यह पेशकश करने लगता है, हालांकि मैंने इसका परीक्षण नहीं किया है।

2

मीका ने जो कहा, उसके आगे ज़िप फ़ाइल की सामग्री ओपन पैकेजिंग कन्वेंशन के अनुसार व्यवस्थित की जाती है; सीएफ Microsoft's Essentials of the Open Packaging Convention

आप .docx फ़ाइलों को बनाने और कुशल बनाने के लिए .NET System.IO.Packaging का उपयोग कर सकते हैं; इस वर्ग को मोनो प्रोजेक्ट में लागू किया गया है।

37

मैन्युअल रूप से एक साथ ज़िप करने के आसपास सबसे आम समस्या ओपन एक्सएमएल दस्तावेज़ यह है कि यदि आप सामग्री के बजाय निर्देशिका को ज़िप करते हैं तो यह काम नहीं करेगा। दूसरे शब्दों में, [content_types] .xml फ़ाइल, और शब्द, docProps, और _rels निर्देशिकाओं को ज़िप फ़ाइल के रूट स्तर पर रहने की आवश्यकता है।

+4

हाय, मैं मूल पोस्टर हूं, लेकिन मैंने यह एसओ खो दिया। खाता, अन्यथा मैं इसे 'सही उत्तर' के रूप में चिह्नित करूंगा। आप सही हैं कि मेरी गलती निर्देशिका को ज़िपित करना था जिसमें सभी सामग्री शामिल थी, सोच रहा था कि मुझे सही इंकेंटेशन, संपीड़न का रूप चाहिए ... कुछ सूक्ष्मता। MSWord फ़ाइल को खोलने के लिए काफी तैयार है अगर मैं सभी प्रासंगिक फाइलों को जमा करता हूं (जिसमें उप शब्दकोषों के थोक जोड़ जैसे 'शब्द' जो रूट स्तर पर हैं।) एक ज़िप फ़ाइल में। अब तक मैंने ओएस एक्स पर घटना के बिना यह कोशिश की है। मैं और चीजों का अध्ययन करूंगा। – applicative

+0

WinZip और WinRAR द्वारा वास्तव में खुले, स्वयं निर्मित डॉक्क्स सभी पठनीय हैं! –

11

यहाँ अनज़िप करने के लिए कदम उठाए जाते हैं my.docx और फिर से जिप:

% mkdir unzipped 
% cd unzipped/ 
% unzip ../my.docx  
% zip -r ../rezipped.docx * 
% open ../rezipped.docx 
संबंधित मुद्दे