كيفية تحويل CHM إلى HTML (والمزيد) باستخدام GroupDocs.Viewer Java
تجميع ملفات المساعدة القديمة إلى صيغ حديثة هو حاجة متكررة للمطورين. في هذا البرنامج التعليمي ستقوم بتحويل chm إلى html وستتعلم أيضًا كيفية عرض مصدر CHM نفسه إلى JPG و PNG، و تحويل chm إلى pdf باستخدام GroupDocs.Viewer للـ Java. في النهاية ستحصل على نمط قابل لإعادة الاستخدام يعمل مع أي مستند CHM، سواء كنت تقوم بأرشفة الأدلة القديمة أو عرض محتوى المساعدة على بوابة ويب.

عرض ملفات CHM باستخدام GroupDocs.Viewer للـ Java
إجابات سريعة
- ما المكتبة التي تتعامل مع عرض CHM؟ GroupDocs.Viewer للـ Java.
- هل يمكنني الحصول على مخرجات HTML في ملف واحد؟ نعم، عن طريق تمكين خيار
singlePage. - هل تحويل PDF بدون فقدان للجودة؟ المكتبة تحافظ على التخطيط، الصور، والروابط التشعبية.
- هل أحتاج إلى ترخيص للاختبار؟ تجربة مجانية أو ترخيص مؤقت كافية.
- ما الصيغ المدعومة؟ HTML، JPG، PNG، PDF، بالإضافة إلى صيغ أخرى مثل DOCX و XLSX.
ما هو GroupDocs.Viewer للـ Java؟
GroupDocs.Viewer للـ Java هو واجهة برمجة تطبيقات من جانب الخادم تقوم بعرض أكثر من 70 نوعًا من المستندات — بما في ذلك CHM — إلى صيغ صديقة للويب دون الحاجة إلى Microsoft Office أو Adobe Acrobat. يعمل على أي بيئة تشغيل Java 8+ ويمكن دمجه في تطبيقات الويب أو سطح المكتب أو بنى الخدمات المصغرة. لمزيد من التفاصيل راجع توثيق GroupDocs.
لماذا تحويل CHM إلى HTML؟
يدعم GroupDocs.Viewer أكثر من 50 صيغة إدخال وإخراج ويمكنه تحويل ملف CHM مكوّن من 200 صفحة إلى صفحة HTML واحدة في أقل من ثانيتين على معالج 2 GHz نموذجي، مع الحفاظ على جميع الروابط الداخلية عاملة. هذه السرعة وتعدد الصيغ تجعلها مثالية لترحيل أنظمة المساعدة القديمة إلى بوابات ويب حديثة.
المتطلبات المسبقة
- مكتبة GroupDocs.Viewer Java (الإصدار 25.2 أو أحدث).
- مشروع متوافق مع Maven (IntelliJ IDEA، Eclipse، أو ما شابه).
- معرفة أساسية بـ Java وإدارة تبعيات Maven.
إعداد GroupDocs.Viewer للـ Java
لاستخدام GroupDocs.Viewer في مشروع Java الخاص بك، أضف تبعية Maven:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-viewer</artifactId>
<version>25.2</version>
</dependency>
الحصول على الترخيص
تقدم GroupDocs تجربة مجانية، تراخيص مؤقتة لأغراض التقييم، وخيارات شراء للاستخدام التجاري. زر صفحة الشراء أو قسم الترخيص المؤقت لاستكشاف خياراتك.
بعد إعداد المكتبة، دعنا نهيئها في تطبيق Java بسيط:
Viewer viewer = new Viewer("path/to/your/file.chm", new ViewerConfig());
دليل التنفيذ
كيفية تحويل CHM إلى HTML؟
حمّل ملف CHM، حدد مجلد الإخراج، واستدعِ خيارات عرض HTML. تقوم الواجهة البرمجية تلقائيًا باستخراج الموارد المضمنة (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، واختيار الصفحات. عرض الصفحات المطلوبة فقط يوفر الذاكرة ودورات المعالج.
كيفية تحويل 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 على الشبكات الداخلية للشركة.
- تطبيقات الهواتف المحمولة: تجميع إصدارات PDF من ملفات المساعدة داخل تطبيقات Android أو iOS للقراءة دون اتصال.
اعتبارات الأداء
عند التعامل مع تحويلات مستندات كبيرة أو متعددة:
- إدارة الذاكرة: قد يكون العرض إلى PNG أو JPG عالي الدقة مستهلكًا للذاكرة؛ راقب كومة JVM وفكر في
-Xmx2gللدفعات الكبيرة. - المعالجة المتوازية: استخدم
ExecutorServiceفي Java لتحويل ملفات CHM متعددة بشكل متزامن، لكن حدّ عدد الخيوط لتجنب استنزاف المعالج. - حجم الدفعة: بالنسبة للأرشيفات الضخمة، عالج الملفات في مجموعات من 10‑20 للحفاظ على استهلاك الموارد بشكل متوقع.
المشكلات الشائعة والحلول
- الصور المفقودة: تأكد من استخدام
HtmlViewOptions.forEmbeddedResourcesحتى يتم استخراج الصور جنبًا إلى جنب مع HTML. - ترتيب الصفحات غير الصحيح: تحقق من أن فهرس المحتويات الداخلي لملف CHM سليم؛ العارض يحترم بنية التنقل الأصلية.
- أخطاء نفاد الذاكرة: زد حجم كومة JVM أو انتقل إلى وضع البث باستخدام
viewer.view(options, new Stream())إذا كان متاحًا في إصدارات API الأحدث.
الأسئلة المتكررة
س: هل يمكنني تحويل مجلدات كاملة من ملفات CHM مرة واحدة؟
ج: نعم، قم بالتكرار عبر مجلد باستخدام API Files.list في Java واستدعِ نفس كود العرض لكل ملف.
س: كيف أتعامل مع المستندات الكبيرة دون نفاد الذاكرة؟
ج: زد حجم كومة JVM (-Xmx) أو عرض إلى صيغ صور بدقة DPI أقل؛ يمكنك أيضًا تقسيم CHM إلى أقسام ومعالجتها بشكل منفصل.
س: هل يمكن تخصيص تنسيق المخرجات أكثر؟
ج: نعم، يقدم GroupDocs.Viewer خيارات واسعة لإدخال CSS، حجم الصفحة، وجودة الصورة. استكشف مرجع API للحصول على إعدادات مفصلة.
س: هل تحافظ المكتبة على الروابط التشعبية عند التحويل إلى PDF؟
ج: بالتأكيد. جميع الروابط الداخلية في CHM تُترجم إلى تعليقات توضيحية قابلة للنقر في PDF.
س: هل يمكنني عرض جزء فقط من فصول CHM؟
ج: استخدم طريقة setPageNumbers في خيارات العرض لتحديد الصفحات أو الفصول المطلوبة بدقة.
الخلاصة
أنت الآن تمتلك سير عمل كامل وجاهز للإنتاج لـ تحويل chm إلى html، تحويل chm إلى pdf، وإنشاء تمثيلات صور باستخدام GroupDocs.Viewer للـ Java. تتيح لك هذه التقنيات تحديث أنظمة المساعدة القديمة، تحسين إمكانية الوصول، ودمج الوثائق في أي حل مبني على Java.
هل أنت مستعد للخطوة التالية؟ تحقق من توثيق GroupDocs الرسمي للحصول على تخصيصات متقدمة، مثل إدخال CSS مخصص، إضافة علامة مائية، ومعالجة دفعات متعددة الخيوط.
آخر تحديث: 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
}