2012-08-27 16 views
5

के साथ .doc फ़ाइल देखना मेरे पास एक वेब एप्लिकेशन है। मैंने सर्वर पक्ष पर एक्सएमएल प्रारूप (वर्ड 2003 एक्सएमएल दस्तावेज़) में एमएस वर्ड दस्तावेज़ जेनरेट किया है। मुझे इस दस्तावेज़ को उपयोगकर्ता के किसी क्लाइंट साइड पर किसी प्रकार के दर्शक का उपयोग करने की ज़रूरत है। तो, सवाल यह है कि इस समस्या को हल करने के लिए मैं किस लाइब्रेरी का उपयोग कर सकता हूं? मुझे जावा का उपयोग कर क्लाइंट साइड पर शब्द दस्तावेज़ देखने के लिए एक एपीआई चाहिए।जावा एप्लेट

+0

यह देखते हुए कि सर्वर साइड कोड रिपोर्ट जेनरेट करता है, इसे HTML के रूप में क्यों न उत्पन्न करें और इसे 'जेडडिटरपेन' ब्राउज़र टैब में प्रदर्शित करें? –

+0

क्योंकि कार्य दस्तावेज़ रिपोर्ट उत्पन्न करना है, जिसे आवश्यक होने पर एमएस शब्द में खोला जा सकता है। – kant

+0

यदि उपयोगकर्ता इसे एमएस वर्ड में खोलना चाहता है, तो शब्द डॉक सीधे उचित सामग्री-प्रकार के साथ ब्राउजर पर दबाएं। (ध्यान दें कि इस बॉक्स पर इसे ओपन ऑफिस द्वारा लोड किया जाएगा।) यदि उपयोगकर्ता पहले इसका पूर्वावलोकन करना चाहता है, तो उसे HTML के रूप में जेनरेट करें और ब्राउज़र में दिखाएं। –

उत्तर

4

आप Java (या उस मामले के लिए किसी अन्य सरल तकनीक) का उपयोग कर किसी वेब पेज में वर्ड दस्तावेज़ को विश्वसनीय रूप से प्रदर्शित नहीं कर सकते हैं। शब्द प्रस्तुत करने के लिए वहां कई वाणिज्यिक पुस्तकालय हैं, लेकिन आप इन्हें आसान, सस्ते या भरोसेमंद समाधान नहीं पाएंगे।

(1) पद इंजन सर्वर पर एक .NET कार्यक्रम (2) रिच टेक्स्ट पद इंजन का उपयोग करने के लिए दस्तावेज़ कन्वर्ट का उपयोग कर खोलें (3) प्रदर्शन:

क्या करना चाहिए निम्नलिखित है रिच टेक्स्ट या तो आरटीएफ स्विंग विजेट का उपयोग, या HTML में कन्वर्ट:

String rtf = [your document rich text]; 
BufferedReader input = new BufferedReader(new StringReader(rtf)); 

RTFEditorKit rtfKit = new RTFEditorKit(); 
StyledDocument doc = (StyledDocument) rtfKit.createDefaultDocument(); 
rtfEdtrKt.read(input, doc, 0); 
input.close(); 

HTMLEditorKit htmlKit = new HTMLEditorKit();  
StringWriter output = new StringWriter(); 
htmlKit.write(output, doc, 0, doc.getLength()); 

String html = output.toString(); 

इस दृष्टिकोण में मुख्य जोखिम है कि वर्ड इंजन या तो दुर्घटना या एक स्मृति रिसाव है। इस कारण से आपको समय-समय पर इसे पुनरारंभ करने के लिए एक तंत्र होना चाहिए और यह सुनिश्चित करने के लिए परीक्षण करना होगा कि यह कार्यात्मक है और स्मृति को हल नहीं कर रहा है।

1

docx4all एक स्विंग-आधारित एप्लेट है जो वर्ड 2007 एक्सएमएल (यानी वर्ड 2003 एक्सएमएल नहीं) करता है, जिसे हमने कई साल पहले लिखा था।

इसे svn से प्राप्त करें।

संपादन के लिए यह एक संभावित दृष्टिकोण है। यदि आप चाहते हैं कि एक दर्शक है, जो एचटीएमएल या पीडीएफ में परिवर्तित नहीं है? आप इसके लिए docx4j का उपयोग कर सकते हैं। (प्रकटीकरण: "मेरा" प्रोजेक्ट)।

+0

यदि मैं आपको सही ढंग से समझता हूं, तो docx4j एप्लेट के माध्यम से xml दस्तावेज़ फ़ाइलों को देख सकता है? – kant

+0

क्या जैस्परपोर्ट की जेआरवीयर क्लास के साथ डॉक फ़ाइल देखना संभव है? – kant

+0

docx4all एप्लेट docx4j को docx फ़ाइल को देखने/संपादित करने के लिए उपयोग करता है – JasonPlutext

1

आप Apache POI - Java API to Handle Microsoft Word Files पर एक नज़र डाल सकते हैं जो क्रमशः सभी प्रकार के शब्द दस्तावेज़ (ओएलई 2 और ओओएक्सएमएल प्रारूप, .doc और .docx एक्सटेंशन) को पढ़ने में सक्षम है।

import java.io.*; 
import org.apache.poi.hwpf.HWPFDocument; 
import org.apache.poi.hwpf.extractor.WordExtractor; 

public class ReadDocFile { 
public static void main(String[] args) { 
File file = null; 
WordExtractor extractor = null ; 
try { 

file = new File("c:\\New.doc"); 
FileInputStream fis=new FileInputStream(file.getAbsolutePath()); 
HWPFDocument document=new HWPFDocument(fis); 
extractor = new WordExtractor(document); 
String [] fileData = extractor.getParagraphText(); 
for(int i=0;i<fileData.length;i++){ 
if(fileData[i] != null) 
System.out.println(fileData[i]); 
} 
} 
catch(Exception exep){} 
} 
} 

आपको कम से अधिक जानकारी प्राप्त कर सकते हैं::

कोई दस्तावेज़ फ़ाइल पढ़ना आसान के रूप में हो सकता है HWPF Quick-Guide (विशेष रूप से HWPF unit tests)

ध्यान दें कि, POI साइट के अनुसार:

एचडब्ल्यूपीएफ अभी भी शुरुआती विकास में है।

+0

मुझे दस्तावेज़ फ़ाइलों को लिखने की आवश्यकता है। इसके लिए 'पीओआई' लागू नहीं है। – kant

0

मैं ओपनऑफिस स्रोत कोड को देखने और इसे कार्यान्वित करने का सुझाव दूंगा। यह जावा में लिखा जाना चाहिए।

संबंधित मुद्दे