วิธีแปลง CHM เป็น HTML (และอื่น ๆ) โดยใช้ GroupDocs.Viewer Java
การคอมไพล์ไฟล์ช่วยเหลือแบบเก่าให้เป็นรูปแบบสมัยใหม่เป็นความต้องการที่พบบ่อยสำหรับนักพัฒนา ในบทแนะนำนี้คุณจะ แปลง chm เป็น html และยังเรียนรู้วิธีการแสดงผลแหล่ง CHM เดียวกันเป็น JPG, PNG, และ แปลง chm เป็น pdf โดยใช้ GroupDocs.Viewer สำหรับ Java เมื่อเสร็จแล้วคุณจะมีรูปแบบที่นำกลับมาใช้ใหม่ได้ซึ่งทำงานกับเอกสาร CHM ใด ๆ ไม่ว่าจะเป็นการเก็บถาวรคู่มือเก่าหรือการเผยแพร่เนื้อหาช่วยเหลือบนพอร์ทัลเว็บ

แสดงไฟล์ CHM ด้วย GroupDocs.Viewer สำหรับ Java
คำตอบด่วน
- ไลบรารีใดที่จัดการการแสดงผล CHM? GroupDocs.Viewer for Java.
- ฉันสามารถรับผลลัพธ์ HTML ในไฟล์เดียวได้หรือไม่? Yes, by enabling the
singlePageoption. - การแปลงเป็น PDF ไม่สูญเสียข้อมูลหรือไม่? The library preserves layout, images, and hyperlinks.
- ฉันต้องการไลเซนส์สำหรับการทดสอบหรือไม่? A free trial or temporary license is sufficient.
- รูปแบบใดบ้างที่รองรับ? HTML, JPG, PNG, PDF, plus others like DOCX and XLSX.
GroupDocs.Viewer for Java คืออะไร?
GroupDocs.Viewer for Java เป็น API ฝั่งเซิร์ฟเวอร์ที่แสดงผลเอกสารกว่า 70 ประเภท—including CHM—เป็นรูปแบบที่เหมาะกับเว็บโดยไม่ต้องใช้ Microsoft Office หรือ Adobe Acrobat มันทำงานบน Java 8+ runtime ใด ๆ และสามารถบูรณาการเข้ากับสถาปัตยกรรมเว็บ, เดสก์ท็อป หรือไมโครเซอร์วิส สำหรับรายละเอียดเพิ่มเติมดูที่ GroupDocs documentation.
ทำไมต้องแปลง CHM เป็น HTML?
GroupDocs.Viewer รองรับ รูปแบบอินพุตและเอาต์พุตกว่า 50+ และสามารถแปลงไฟล์ CHM 200 หน้าให้เป็นหน้า HTML เดียวภายในเวลาไม่ถึง 2 วินาทีบน CPU 2 GHz ปกติ ในขณะที่ยังคงลิงก์ภายในทั้งหมดทำงานได้ ความเร็วและความหลากหลายของรูปแบบทำให้เหมาะสำหรับการย้ายระบบช่วยเหลือแบบเก่าไปยังพอร์ทัลเว็บสมัยใหม่
ข้อกำหนดเบื้องต้น
- GroupDocs.Viewer Java library (เวอร์ชัน 25.2 หรือใหม่กว่า).
- โครงการที่เข้ากันได้กับ Maven (IntelliJ IDEA, Eclipse, หรือที่คล้ายกัน).
- ความรู้พื้นฐานเกี่ยวกับ Java และการจัดการ dependencies ของ Maven.
การตั้งค่า GroupDocs.Viewer สำหรับ Java
เพื่อใช้ GroupDocs.Viewer ในโครงการ Java ของคุณ ให้เพิ่ม dependency ของ 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 class คืออ็อบเจกต์การกำหนดค่าที่บอก viewer ว่าจะสร้าง 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 class ให้คุณควบคุมคุณภาพภาพ, DPI, และการเลือกหน้า การแสดงผลเฉพาะหน้าที่ต้องการช่วยประหยัดหน่วยความจำและการใช้ CPU.
วิธีแปลง CHM เป็น PNG?
ผลลัพธ์ PNG รักษาคุณภาพแบบ lossless และรองรับความโปร่งใส ทำให้เหมาะสำหรับภาพหน้าจอความละเอียดสูงของหัวข้อช่วยเหลือ.
String outputDir = "output/png";
PngViewOptions options = PngViewOptions.forDirectory(outputDir);
options.setPageNumbers(new int[]{1}); // render the first page as PNG
viewer.view(options);
PngViewOptions class ทำงานคล้ายกับ JPG แต่สร้างไฟล์ PNG ที่คงความเที่ยงตรงของภาพอย่างเต็มที่.
วิธีแปลง CHM เป็น PDF?
PDF เป็นรูปแบบที่พกพาสะดวกที่สุดสำหรับการแจกจ่าย Viewer สามารถรวมเนื้อหา CHM ทั้งหมดเป็นเอกสาร PDF ไฟล์เดียวด้วยการเรียกครั้งเดียว.
String outputPath = "output/chm-document.pdf";
PdfViewOptions options = PdfViewOptions.forFile(outputPath);
viewer.view(options);
PdfViewOptions class จัดการการแบ่งหน้า, การฝังฟอนต์, และการคงลิงก์อัตโนมัติ.
การประยุกต์ใช้ในเชิงปฏิบัติ
- Archiving: แปลงไฟล์ CHM เก่าเป็นรูปแบบสมัยใหม่เพื่อการเข้าถึงที่ง่ายและการเก็บรักษาระยะยาว.
- Web Portals: เผยแพร่เอกสาร CHM เป็นหน้า HTML บนอินทราเน็ตของบริษัท.
- Mobile Apps: รวมเวอร์ชัน PDF ของไฟล์ช่วยเหลือในแอป Android หรือ iOS เพื่อการอ่านแบบออฟไลน์.
พิจารณาด้านประสิทธิภาพ
เมื่อทำการแปลงเอกสารจำนวนมากหรือขนาดใหญ่:
- Memory Management: การแสดงผลเป็น PNG หรือ JPG ความละเอียดสูงอาจใช้หน่วยความจำมาก; ควรตรวจสอบ heap ของ JVM และพิจารณา
-Xmx2gสำหรับชุดใหญ่. - Parallel Processing: ใช้
ExecutorServiceของ Java เพื่อแปลงไฟล์ CHM หลายไฟล์พร้อมกัน แต่ควรจำกัดจำนวนเธรดเพื่อหลีกเลี่ยงการใช้ CPU มากเกินไป. - Batch Size: สำหรับคลังข้อมูลขนาดใหญ่ ควรประมวลผลไฟล์เป็นกลุ่ม 10‑20 ไฟล์เพื่อให้การใช้ทรัพยากรคาดเดาได้.
ปัญหาที่พบบ่อยและวิธีแก้
- Missing Images: ตรวจสอบว่าใช้
HtmlViewOptions.forEmbeddedResourcesเพื่อให้ภาพถูกดึงออกพร้อมกับ HTML. - Incorrect Page Order: ตรวจสอบว่า TOC ภายในของไฟล์ CHM ยังสมบูรณ์; viewer จะเคารพโครงสร้างการนำทางเดิม.
- Out‑of‑Memory Errors: เพิ่มขนาด heap ของ JVM หรือเปลี่ยนเป็นโหมดสตรีมมิ่งด้วย
viewer.view(options, new Stream())หากมีในเวอร์ชัน API ใหม่.
คำถามที่พบบ่อย
Q: ฉันสามารถแปลงไดเรกทอรีทั้งหมดของไฟล์ CHM พร้อมกันได้หรือไม่?
A: ใช่, ให้วนลูปผ่านโฟลเดอร์ด้วย API Files.list ของ Java และเรียกใช้โค้ดการแสดงผลเดียวกันสำหรับแต่ละไฟล์.
Q: ฉันจะจัดการกับเอกสารขนาดใหญ่โดยไม่เกิดการใช้หน่วยความจำเต็มได้อย่างไร?
A: เพิ่ม heap ของ JVM (-Xmx) หรือแสดงผลเป็นรูปแบบภาพที่ DPI ต่ำกว่า; คุณยังสามารถแยก CHM เป็นส่วน ๆ แล้วประมวลผลแยกกันได้.
Q: สามารถปรับแต่งรูปแบบผลลัพธ์เพิ่มเติมได้หรือไม่?
A: ได้, GroupDocs.Viewer มีตัวเลือกหลากหลายสำหรับการแทรก CSS, ขนาดหน้า, และคุณภาพภาพ. สำรวจ API reference สำหรับการตั้งค่ารายละเอียด.
Q: ไลบรารีจะคงลิงก์เมื่อแปลงเป็น PDF หรือไม่?
A: แน่นอน. ลิงก์ภายใน CHM ทั้งหมดจะถูกแปลงเป็น annotation ที่คลิกได้ใน PDF.
Q: ฉันสามารถแสดงผลเฉพาะส่วนย่อยของบท CHM ได้หรือไม่?
A: ใช้เมธอด setPageNumbers บน view options เพื่อระบุหน้าหรือบทที่ต้องการอย่างแม่นยำ.
สรุป
ตอนนี้คุณมีเวิร์กโฟลว์ที่ครบถ้วนและพร้อมใช้งานในผลิตภัณฑ์เพื่อ แปลง 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
}