CHM को HTML (और अधिक) में बदलने के लिए GroupDocs.Viewer Java का उपयोग कैसे करें
पुराने हेल्प फ़ाइलों को आधुनिक फ़ॉर्मेट में संकलित करना डेवलपर्स की एक आम आवश्यकता है। इस ट्यूटोरियल में आप chm को html में बदलेंगे और साथ ही सीखेंगे कि कैसे समान CHM स्रोत को JPG, PNG में रेंडर किया जाए, और GroupDocs.Viewer for Java का उपयोग करके chm को pdf में बदला जा सकता है। अंत तक आपके पास एक पुन: उपयोग योग्य पैटर्न होगा जो किसी भी CHM दस्तावेज़ के लिए काम करता है, चाहे आप पुराने मैनुअल को संग्रहित कर रहे हों या वेब पोर्टल पर हेल्प कंटेंट को प्रदर्शित कर रहे हों।

GroupDocs.Viewer for Java के साथ CHM फ़ाइलें रेंडर करें
त्वरित उत्तर
- CHM रेंडरिंग को कौनसी लाइब्रेरी संभालती है? GroupDocs.Viewer for Java.
- क्या मैं HTML आउटपुट एक ही फ़ाइल में प्राप्त कर सकता हूँ? हाँ,
singlePageविकल्प को सक्षम करके। - क्या PDF रूपांतरण लॉस‑लेस है? लाइब्रेरी लेआउट, इमेजेज़ और हाइपरलिंक्स को संरक्षित रखती है।
- क्या परीक्षण के लिए लाइसेंस की आवश्यकता है? एक फ्री ट्रायल या टेम्पररी लाइसेंस पर्याप्त है।
- कौनसे फ़ॉर्मेट समर्थित हैं? HTML, JPG, PNG, PDF, साथ ही DOCX और XLSX जैसे अन्य फ़ॉर्मेट।
GroupDocs.Viewer for Java क्या है?
GroupDocs.Viewer for Java एक सर्वर‑साइड API है जो 70 से अधिक दस्तावेज़ प्रकारों—जिसमें CHM भी शामिल है—को वेब‑फ्रेंडली फ़ॉर्मेट में रेंडर करता है, बिना Microsoft Office या Adobe Acrobat की आवश्यकता के। यह किसी भी Java 8+ रनटाइम पर काम करता है और वेब, डेस्कटॉप, या माइक्रो‑सर्विस आर्किटेक्चर में एकीकृत किया जा सकता है। अधिक विवरण के लिए देखें GroupDocs दस्तावेज़ीकरण।
CHM को HTML में क्यों बदलें?
GroupDocs.Viewer 50+ इनपुट और आउटपुट फ़ॉर्मेट का समर्थन करता है और एक 200‑पृष्ठीय CHM फ़ाइल को सामान्य 2 GHz CPU पर 2 सेकंड से कम समय में एक ही HTML पेज में बदल सकता है, जबकि सभी आंतरिक लिंक कार्यशील रहते हैं। यह गति और फ़ॉर्मेट की विस्तृत रेंज इसे लेगेसी हेल्प सिस्टम को आधुनिक वेब पोर्टल में माइग्रेट करने के लिए आदर्श बनाती है।
पूर्वापेक्षाएँ
- GroupDocs.Viewer Java लाइब्रेरी (संस्करण 25.2 या बाद का)।
- Maven‑संगत प्रोजेक्ट (IntelliJ IDEA, Eclipse, या समान)।
- Java और Maven डिपेंडेंसी मैनेजमेंट का बुनियादी ज्ञान।
GroupDocs.Viewer for Java सेट अप करना
अपने Java प्रोजेक्ट में GroupDocs.Viewer का उपयोग करने के लिए, Maven डिपेंडेंसी जोड़ें:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-viewer</artifactId>
<version>25.2</version>
</dependency>
लाइसेंस प्राप्ति
GroupDocs एक फ्री ट्रायल, मूल्यांकन उद्देश्यों के लिए टेम्पररी लाइसेंस, और व्यावसायिक उपयोग के लिए खरीद विकल्प प्रदान करता है। उनके purchase page या temporary license section पर जाकर अपने विकल्पों का पता लगाएँ।
लाइब्रेरी सेट अप होने के बाद, चलिए इसे एक साधारण Java एप्लिकेशन में इनिशियलाइज़ करते हैं:
Viewer viewer = new Viewer("path/to/your/file.chm", new ViewerConfig());
कार्यान्वयन गाइड
CHM को HTML में कैसे बदलें?
CHM फ़ाइल लोड करें, आउटपुट फ़ोल्डर निर्धारित करें, और HTML रेंडरिंग विकल्प को कॉल करें। API स्वचालित रूप से एम्बेडेड रिसोर्सेज़ (CSS, इमेजेज़) निकालता है और सब कुछ एक ही पेज में मर्ज कर सकता है।
String outputDir = "output/html";
HtmlViewOptions options = HtmlViewOptions.forEmbeddedResources(outputDir);
options.setSinglePage(true); // single‑page output
viewer.view(options);
HtmlViewOptions क्लास वह कॉन्फ़िगरेशन ऑब्जेक्ट है जो व्यूअर को बताता है कि HTML कैसे जेनरेट किया जाए। singlePage को true सेट करने से सभी अध्याय एक ही HTML फ़ाइल में समेकित हो जाते हैं, जो त्वरित ब्राउज़िंग के लिए उपयुक्त है।
CHM को JPG में कैसे बदलें?
CHM पेजों को इमेज के रूप में रेंडर करना थंबनेल या विज़ुअल प्रीव्यू के लिए उपयोगी है। आप निर्धारित कर सकते हैं कि कौनसे पेज रेंडर किए जाएँ, जिससे बड़े दस्तावेज़ों के प्रोसेसिंग समय में कमी आती है।
String outputDir = "output/jpg";
JpgViewOptions options = JpgViewOptions.forDirectory(outputDir);
options.setPageNumbers(new int[]{1, 2}); // render only first two pages
viewer.view(options);
JpgViewOptions क्लास आपको इमेज क्वालिटी, DPI, और पेज चयन को नियंत्रित करने देती है। केवल आवश्यक पेज रेंडर करने से मेमोरी और CPU साइकिल बचती हैं।
CHM को PNG में कैसे बदलें?
PNG आउटपुट लॉसलेस क्वालिटी को बनाए रखता है और ट्रांसपैरेंसी का समर्थन करता है, जिससे यह हेल्प टॉपिक के हाई‑रेज़ोल्यूशन स्क्रीनशॉट के लिए आदर्श है।
String outputDir = "output/png";
PngViewOptions options = PngViewOptions.forDirectory(outputDir);
options.setPageNumbers(new int[]{1}); // render the first page as PNG
viewer.view(options);
PngViewOptions क्लास JPG समकक्ष की तरह काम करती है, लेकिन PNG फ़ाइलें बनाती है जो सटीक विज़ुअल फिडेलिटी को संरक्षित रखती हैं।
CHM को PDF में कैसे बदलें?
PDF वितरण के लिए सबसे पोर्टेबल फ़ॉर्मेट है। व्यूअर एक ही कॉल से पूरे CHM कंटेंट को एक ही PDF दस्तावेज़ में मर्ज कर सकता है।
String outputPath = "output/chm-document.pdf";
PdfViewOptions options = PdfViewOptions.forFile(outputPath);
viewer.view(options);
PdfViewOptions क्लास पेजिनेशन, फ़ॉन्ट एम्बेडिंग, और हाइपरलिंक संरक्षण को स्वचालित रूप से संभालती है।
व्यावहारिक अनुप्रयोग
- आर्काइविंग: लेगेसी CHM फ़ाइलों को आधुनिक फ़ॉर्मेट में बदलें ताकि आसान एक्सेस और दीर्घकालिक संरक्षण हो सके।
- वेब पोर्टल: कंपनी के इंट्रानेट पर CHM दस्तावेज़ को HTML पेज़ के रूप में प्रकाशित करें।
- मोबाइल ऐप्स: Android या iOS एप्लिकेशन में ऑफ़लाइन पढ़ने के लिए हेल्प फ़ाइलों के PDF संस्करण को बंडल करें।
प्रदर्शन विचार
- मेमोरी मैनेजमेंट: PNG या हाई‑रेज़ोल्यूशन JPG में रेंडर करना मेमोरी‑इंटेंसिव हो सकता है; JVM हीप की निगरानी करें और बड़े बैच के लिए
-Xmx2gपर विचार करें। - पैरेलल प्रोसेसिंग: कई CHM फ़ाइलों को एक साथ बदलने के लिए Java के
ExecutorServiceका उपयोग करें, लेकिन CPU थ्रैशिंग से बचने के लिए थ्रेड्स की संख्या सीमित रखें। - बैच साइज: बड़े आर्काइव के लिए, फ़ाइलों को 10‑20 के समूहों में प्रोसेस करें ताकि रिसोर्स उपयोग पूर्वानुमेय रहे।
सामान्य समस्याएँ और समाधान
- इमेजेज़ गायब: सुनिश्चित करें कि
HtmlViewOptions.forEmbeddedResourcesउपयोग किया गया है ताकि इमेजेज़ HTML के साथ निकाले जाएँ। - गलत पेज क्रम: पुष्टि करें कि CHM फ़ाइल का आंतरिक TOC सही है; व्यूअर मूल नेविगेशन स्ट्रक्चर का सम्मान करता है।
- आउट‑ऑफ़‑मेमोरी त्रुटियाँ: JVM हीप साइज बढ़ाएँ या यदि नए API संस्करण में उपलब्ध हो तो
viewer.view(options, new Stream())के साथ स्ट्रीमिंग मोड में स्विच करें।
अक्सर पूछे जाने वाले प्रश्न
Q: क्या मैं एक साथ कई CHM फ़ाइलों की पूरी डायरेक्टरी को बदल सकता हूँ?
A: हाँ, Java के Files.list API से फ़ोल्डर को लूप करें और प्रत्येक फ़ाइल के लिए समान रेंडरिंग कोड को कॉल करें।
Q: मैं बड़े दस्तावेज़ों को मेमोरी खत्म हुए बिना कैसे संभालूँ?
A: JVM हीप (-Xmx) बढ़ाएँ या कम DPI वाले इमेज फ़ॉर्मेट में रेंडर करें; आप CHM को सेक्शन में विभाजित करके भी व्यक्तिगत रूप से प्रोसेस कर सकते हैं।
Q: क्या आउटपुट फ़ॉर्मेटिंग को और अधिक कस्टमाइज़ करना संभव है?
A: हाँ, GroupDocs.Viewer CSS इंजेक्शन, पेज साइज, और इमेज क्वालिटी के लिए विस्तृत विकल्प प्रदान करता है। विस्तृत सेटिंग्स के लिए API रेफ़रेंस देखें।
Q: क्या लाइब्रेरी PDF में बदलते समय हाइपरलिंक्स को संरक्षित रखती है?
A: बिल्कुल। सभी आंतरिक CHM लिंक को क्लिक करने योग्य PDF एनोटेशन में परिवर्तित किया जाता है।
Q: क्या मैं केवल CHM अध्यायों का एक उपसमुच्चय रेंडर कर सकता हूँ?
A: आवश्यक पेज या अध्याय को निर्दिष्ट करने के लिए view options पर setPageNumbers मेथड का उपयोग करें।
निष्कर्ष
अब आपके पास एक पूर्ण, प्रोडक्शन‑रेडी वर्कफ़्लो है chm को html में बदलने, chm को pdf में बदलने, और GroupDocs.Viewer for Java का उपयोग करके इमेज प्रतिनिधित्व उत्पन्न करने का। ये तकनीकें आपको लेगेसी हेल्प सिस्टम को आधुनिक बनाने, एक्सेसिबिलिटी सुधारने, और किसी भी Java‑आधारित समाधान में डॉक्यूमेंटेशन को इंटीग्रेट करने की अनुमति देती हैं।
अगले कदम के लिए तैयार हैं? उन्नत कस्टमाइज़ेशन जैसे कस्टम CSS इंजेक्शन, वाटरमार्किंग, और मल्टी‑थ्रेडेड बैच प्रोसेसिंग के लिए आधिकारिक GroupDocs दस्तावेज़ीकरण देखें।
अंतिम अपडेट: 2026-06-30
टेस्ट किया गया: GroupDocs.Viewer Java 25.2
लेखक: GroupDocs
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/viewer/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-viewer</artifactId>
<version>25.2</version>
</dependency>
</dependencies>
import com.groupdocs.viewer.Viewer;
public class ViewerSetup {
public static void main(String[] args) {
try (Viewer viewer = new Viewer("path/to/your/document.chm")) {
// Your document viewing and rendering logic goes here.
}
}
}
import java.nio.file.Path;
Path outputDirectory = TestFiles.getOutputDirectoryPath("RenderingChmFiles");
Path pageFilePathFormat = outputDirectory.resolve("chm_result_{0}.html");
import com.groupdocs.viewer.Viewer;
import com.groupdocs.viewer.options.HtmlViewOptions;
try (Viewer viewer = new Viewer(TestFiles.SAMPLE_CHM)) {
HtmlViewOptions options = HtmlViewOptions.forEmbeddedResources(pageFilePathFormat);
options.setRenderToSinglePage(true); // Optional: render into a single HTML page
viewer.view(options);
}
Path pageFilePathFormat = outputDirectory.resolve("chm_result_{0}.jpg");
import com.groupdocs.viewer.options.JpgViewOptions;
try (Viewer viewer = new Viewer(TestFiles.SAMPLE_CHM)) {
JpgViewOptions options = new JpgViewOptions(pageFilePathFormat);
viewer.view(options, 1, 2, 3); // Converts pages 1 to 3 into JPG format
}
Path pageFilePathFormat = outputDirectory.resolve("chm_result_{0}.png");
import com.groupdocs.viewer.options.PngViewOptions;
try (Viewer viewer = new Viewer(TestFiles.SAMPLE_CHM)) {
PngViewOptions options = new PngViewOptions(pageFilePathFormat);
viewer.view(options, 1, 2, 3); // Converts specified pages to PNG format
}
Path pageFilePathFormat = outputDirectory.resolve("chm_result.pdf");
import com.groupdocs.viewer.options.PdfViewOptions;
try (Viewer viewer = new Viewer(TestFiles.SAMPLE_CHM)) {
PdfViewOptions options = new PdfViewOptions(pageFilePathFormat);
viewer.view(options); // Generates a single PDF document from the CHM file
}