Cách Chuyển Đổi CHM sang HTML (và Thêm) Sử Dụng GroupDocs.Viewer Java

Biên dịch các tệp trợ giúp cũ thành các định dạng hiện đại là nhu cầu thường gặp của các nhà phát triển. Trong hướng dẫn này, bạn sẽ convert chm to html và cũng sẽ học cách hiển thị cùng một nguồn CHM thành JPG, PNG, và convert chm to pdf bằng cách sử dụng GroupDocs.Viewer cho Java. Khi kết thúc, bạn sẽ có một mẫu có thể tái sử dụng cho bất kỳ tài liệu CHM nào, dù bạn đang lưu trữ các hướng dẫn cũ hay triển khai nội dung trợ giúp trên cổng web.

Hiển thị tệp CHM với GroupDocs.Viewer cho Java

Hiển thị tệp CHM với GroupDocs.Viewer cho Java

Câu trả lời nhanh

  • Thư viện nào xử lý việc hiển thị CHM? GroupDocs.Viewer for Java.
  • Tôi có thể nhận đầu ra HTML trong một tệp duy nhất không? Yes, by enabling the singlePage option.
  • Việc chuyển đổi PDF có mất dữ liệu không? The library preserves layout, images, and hyperlinks.
  • Tôi có cần giấy phép để thử nghiệm không? A free trial or temporary license is sufficient.
  • Các định dạng nào được hỗ trợ? HTML, JPG, PNG, PDF, plus others like DOCX and XLSX.

GroupDocs.Viewer cho Java là gì?

GroupDocs.Viewer cho Java là một API phía máy chủ cho phép hiển thị hơn 70 loại tài liệu—bao gồm CHM—ở các định dạng thân thiện với web mà không cần Microsoft Office hay Adobe Acrobat. Nó hoạt động trên bất kỳ môi trường Java 8+ nào và có thể tích hợp vào kiến trúc web, desktop hoặc micro‑service. Để biết thêm chi tiết, xem GroupDocs documentation.

Tại sao chuyển đổi CHM sang HTML?

GroupDocs.Viewer hỗ trợ hơn 50 định dạng đầu vào và đầu ra và có thể chuyển đổi một tệp CHM 200 trang thành một trang HTML duy nhất trong vòng chưa tới 2 giây trên CPU 2 GHz tiêu chuẩn, đồng thời giữ mọi liên kết nội bộ hoạt động. Tốc độ và độ đa dạng định dạng này khiến nó lý tưởng cho việc di chuyển các hệ thống trợ giúp cũ sang các cổng web hiện đại.

Yêu cầu trước

  • Thư viện GroupDocs.Viewer Java (phiên bản 25.2 trở lên).
  • Dự án tương thích Maven (IntelliJ IDEA, Eclipse, hoặc tương tự).
  • Kiến thức cơ bản về Java và quản lý phụ thuộc Maven.

Cài đặt GroupDocs.Viewer cho Java

Để sử dụng GroupDocs.Viewer trong dự án Java của bạn, thêm phụ thuộc Maven:

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-viewer</artifactId>
    <version>25.2</version>
</dependency>

Mua giấy phép
GroupDocs cung cấp bản dùng thử miễn phí, giấy phép tạm thời để đánh giá, và các tùy chọn mua cho mục đích thương mại. Truy cập purchase page hoặc temporary license section để khám phá các tùy chọn của bạn.

Sau khi thiết lập thư viện, hãy khởi tạo nó trong một ứng dụng Java đơn giản:

Viewer viewer = new Viewer("path/to/your/file.chm", new ViewerConfig());

Hướng dẫn triển khai

Cách chuyển đổi CHM sang HTML?

Tải tệp CHM, xác định thư mục đầu ra, và gọi các tùy chọn hiển thị HTML. API tự động trích xuất các tài nguyên nhúng (CSS, hình ảnh) và có thể gộp mọi thứ vào một trang duy nhất.

String outputDir = "output/html";
HtmlViewOptions options = HtmlViewOptions.forEmbeddedResources(outputDir);
options.setSinglePage(true); // single‑page output
viewer.view(options);

Cách chuyển đổi CHM sang JPG?

Hiển thị các trang CHM dưới dạng hình ảnh hữu ích cho ảnh thu nhỏ hoặc bản xem trước trực quan. Bạn có thể chỉ định các trang cần hiển thị, giảm thời gian xử lý cho tài liệu lớn.

String outputDir = "output/jpg";
JpgViewOptions options = JpgViewOptions.forDirectory(outputDir);
options.setPageNumbers(new int[]{1, 2}); // render only first two pages
viewer.view(options);

Cách chuyển đổi CHM sang PNG?

Đầu ra PNG giữ chất lượng không mất dữ liệu và hỗ trợ trong suốt, rất phù hợp cho ảnh chụp màn hình độ phân giải cao của các chủ đề trợ giúp.

String outputDir = "output/png";
PngViewOptions options = PngViewOptions.forDirectory(outputDir);
options.setPageNumbers(new int[]{1}); // render the first page as PNG
viewer.view(options);

Cách chuyển đổi CHM sang PDF?

PDF là định dạng di động nhất để phân phối. Trình xem có thể gộp toàn bộ nội dung CHM thành một tài liệu PDF duy nhất chỉ bằng một lệnh.

String outputPath = "output/chm-document.pdf";
PdfViewOptions options = PdfViewOptions.forFile(outputPath);
viewer.view(options);

Ứng dụng thực tiễn

  • Lưu trữ: Chuyển đổi các tệp CHM cũ sang định dạng hiện đại để dễ truy cập và bảo quản lâu dài.
  • Cổng web: Đăng tải tài liệu CHM dưới dạng các trang HTML trên mạng nội bộ công ty.
  • Ứng dụng di động: Đóng gói các phiên bản PDF của tệp trợ giúp trong ứng dụng Android hoặc iOS để đọc offline.

Các cân nhắc về hiệu năng

Khi xử lý các chuyển đổi tài liệu lớn hoặc số lượng nhiều:

  • Quản lý bộ nhớ: Hiển thị sang PNG hoặc JPG độ phân giải cao có thể tốn nhiều bộ nhớ; giám sát heap JVM và cân nhắc -Xmx2g cho các lô lớn.
  • Xử lý song song: Sử dụng ExecutorService của Java để chuyển đổi nhiều tệp CHM đồng thời, nhưng hạn chế số luồng để tránh quá tải CPU.
  • Kích thước lô: Đối với các kho lưu trữ lớn, xử lý tệp theo nhóm 10‑20 để giữ việc sử dụng tài nguyên dự đoán được.

Các vấn đề thường gặp và giải pháp

  • Hình ảnh thiếu: Đảm bảo sử dụng HtmlViewOptions.forEmbeddedResources để các hình ảnh được trích xuất cùng với HTML.
  • Thứ tự trang không đúng: Kiểm tra mục lục (TOC) nội bộ của tệp CHM còn nguyên; trình xem sẽ tôn trọng cấu trúc điều hướng gốc.
  • Lỗi hết bộ nhớ: Tăng kích thước heap JVM hoặc chuyển sang chế độ streaming với viewer.view(options, new Stream()) nếu có trong các phiên bản API mới hơn.

Câu hỏi thường gặp

Q: Bạn có thể chuyển đổi toàn bộ thư mục chứa các tệp CHM cùng một lúc không?
A: Có, lặp qua một thư mục bằng API Files.list của Java và gọi cùng một đoạn mã hiển thị cho mỗi tệp.

Q: Làm thế nào để xử lý tài liệu lớn mà không hết bộ nhớ?
A: Tăng heap JVM (-Xmx) hoặc hiển thị sang các định dạng hình ảnh với DPI thấp hơn; bạn cũng có thể chia CHM thành các phần và xử lý chúng riêng biệt.

Q: Có thể tùy chỉnh định dạng đầu ra thêm không?
A: Có, GroupDocs.Viewer cung cấp nhiều tùy chọn cho việc chèn CSS, kích thước trang và chất lượng hình ảnh. Khám phá API reference để biết các cài đặt chi tiết.

Q: Thư viện có giữ lại các liên kết siêu văn bản khi chuyển đổi sang PDF không?
A: Chắc chắn. Tất cả các liên kết nội bộ của CHM được chuyển thành các chú thích PDF có thể nhấp.

Q: Bạn có thể hiển thị chỉ một phần các chương CHM không?
A: Sử dụng phương thức setPageNumbers trên các tùy chọn hiển thị để chỉ định các trang hoặc chương cụ thể mà bạn cần.

Kết luận

Bạn hiện đã có quy trình hoàn chỉnh, sẵn sàng cho môi trường sản xuất để convert chm to html, convert chm to pdf, và tạo các biểu diễn hình ảnh bằng cách sử dụng GroupDocs.Viewer cho Java. Những kỹ thuật này cho phép bạn hiện đại hóa các hệ thống trợ giúp cũ, cải thiện khả năng truy cập, và tích hợp tài liệu vào bất kỳ giải pháp nào dựa trên Java.

Sẵn sàng cho bước tiếp theo? Kiểm tra tài liệu chính thức của GroupDocs để biết tùy chỉnh nâng cao, chẳng hạn như chèn CSS tùy chỉnh, đánh dấu bản quyền, và xử lý lô đa luồng.


Cập nhật lần cuối: 2026-06-30
Kiểm tra với: GroupDocs.Viewer Java 25.2
Tác giả: 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
}

Hướng dẫn liên quan