Jak konwertować CHM do HTML (i więcej) przy użyciu GroupDocs.Viewer Java
Kompilowanie starszych plików pomocy do nowoczesnych formatów jest częstą potrzebą programistów. W tym samouczku konwertujesz chm do html i dowiesz się także, jak renderować ten sam plik CHM do JPG, PNG oraz konwertować chm do pdf przy użyciu GroupDocs.Viewer dla Javy. Po zakończeniu będziesz mieć wielokrotnego użytku wzorzec działający dla każdego dokumentu CHM, niezależnie od tego, czy archiwizujesz stare podręczniki, czy udostępniasz treść pomocy w portalu internetowym.

Renderowanie plików CHM przy użyciu GroupDocs.Viewer dla Java
Szybkie odpowiedzi
- Jaka biblioteka obsługuje renderowanie CHM? GroupDocs.Viewer for Java.
- Czy mogę uzyskać wyjście HTML w jednym pliku? Tak, włączając opcję
singlePage. - Czy konwersja do PDF jest bezstratna? Biblioteka zachowuje układ, obrazy i hiperłącza.
- Czy potrzebna jest licencja do testów? Wystarczalna jest darmowa wersja próbna lub tymczasowa licencja.
- Jakie formaty są obsługiwane? HTML, JPG, PNG, PDF, oraz inne takie jak DOCX i XLSX.
Co to jest GroupDocs.Viewer dla Java?
GroupDocs.Viewer dla Javy jest API po stronie serwera, które renderuje ponad 70 typów dokumentów — w tym CHM — do formatów przyjaznych dla sieci, bez wymogu posiadania Microsoft Office lub Adobe Acrobat. Działa na dowolnym środowisku Java 8+ i może być zintegrowane z aplikacjami webowymi, desktopowymi lub architekturą mikro‑serwisów. Po więcej szczegółów zobacz GroupDocs documentation.
Dlaczego konwertować CHM do HTML?
GroupDocs.Viewer obsługuje ponad 50 formatów wejściowych i wyjściowych i może przekształcić 200‑stronicowy plik CHM w jedną stronę HTML w mniej niż 2 sekundy na typowym procesorze 2 GHz, zachowując wszystkie wewnętrzne linki działające. Ta szybkość i szeroki zakres formatów czynią go idealnym do migracji starszych systemów pomocy do nowoczesnych portali internetowych.
Prerequisites
- Biblioteka GroupDocs.Viewer Java (wersja 25.2 lub nowsza).
- Projekt kompatybilny z Maven (IntelliJ IDEA, Eclipse lub podobny).
- Podstawowa znajomość Javy i zarządzania zależnościami Maven.
Konfigurowanie GroupDocs.Viewer dla Java
Aby używać GroupDocs.Viewer w projekcie Java, dodaj zależność Maven:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-viewer</artifactId>
<version>25.2</version>
</dependency>
Pozyskanie licencji
GroupDocs oferuje darmową wersję próbną, tymczasowe licencje do celów ewaluacyjnych oraz opcje zakupu do użytku komercyjnego. Odwiedź ich purchase page lub temporary license section, aby poznać dostępne opcje.
Po skonfigurowaniu biblioteki, zainicjujmy ją w prostym programie Java:
Viewer viewer = new Viewer("path/to/your/file.chm", new ViewerConfig());
Przewodnik implementacji
Jak konwertować CHM do HTML?
Załaduj plik CHM, określ folder wyjściowy i wywołaj opcje renderowania HTML. API automatycznie wyodrębnia osadzone zasoby (CSS, obrazy) i może scalić wszystko w jedną stronę.
String outputDir = "output/html";
HtmlViewOptions options = HtmlViewOptions.forEmbeddedResources(outputDir);
options.setSinglePage(true); // single‑page output
viewer.view(options);
Klasa HtmlViewOptions jest obiektem konfiguracyjnym, który określa, jak widok ma generować HTML. Ustawienie singlePage na true konsoliduje wszystkie rozdziały w jeden plik HTML, co jest idealne do szybkiego przeglądania.
Jak konwertować CHM do JPG?
Renderowanie stron CHM jako obrazy jest przydatne do miniatur lub podglądów wizualnych. Możesz określić, które strony mają być renderowane, co skraca czas przetwarzania dużych dokumentów.
String outputDir = "output/jpg";
JpgViewOptions options = JpgViewOptions.forDirectory(outputDir);
options.setPageNumbers(new int[]{1, 2}); // render only first two pages
viewer.view(options);
Klasa JpgViewOptions pozwala kontrolować jakość obrazu, DPI oraz wybór stron. Renderowanie tylko potrzebnych stron oszczędza pamięć i cykle CPU.
Jak konwertować CHM do PNG?
Wyjście PNG zachowuje jakość bezstratną i obsługuje przezroczystość, co czyni je idealnym do wysokiej rozdzielczości zrzutów ekranu tematów pomocy.
String outputDir = "output/png";
PngViewOptions options = PngViewOptions.forDirectory(outputDir);
options.setPageNumbers(new int[]{1}); // render the first page as PNG
viewer.view(options);
Klasa PngViewOptions działa podobnie jak odpowiednik JPG, ale generuje pliki PNG, które zachowują dokładną wierność wizualną.
Jak konwertować CHM do PDF?
PDF jest najbardziej przenośnym formatem do dystrybucji. Widok może scalić całą zawartość CHM w jeden dokument PDF jednym wywołaniem.
String outputPath = "output/chm-document.pdf";
PdfViewOptions options = PdfViewOptions.forFile(outputPath);
viewer.view(options);
Klasa PdfViewOptions automatycznie obsługuje paginację, osadzanie czcionek i zachowanie hiperłączy.
Praktyczne zastosowania
- Archiwizacja: Konwertuj starsze pliki CHM do nowoczesnych formatów, aby ułatwić dostęp i długoterminową ochronę.
- Portale internetowe: Publikuj dokumentację CHM jako strony HTML w wewnętrznych intranetach firmy.
- Aplikacje mobilne: Dołącz wersje PDF plików pomocy do aplikacji Android lub iOS, aby umożliwić czytanie offline.
Rozważania dotyczące wydajności
When dealing with large or numerous document conversions:
- Zarządzanie pamięcią: Renderowanie do PNG lub wysokiej rozdzielczości JPG może być pamięciochłonne; monitoruj stertę JVM i rozważ
-Xmx2gdla dużych partii. - Przetwarzanie równoległe: Użyj
ExecutorServiceJavy do równoczesnej konwersji wielu plików CHM, ale ogranicz liczbę wątków, aby uniknąć przeciążenia CPU. - Rozmiar partii: W przypadku ogromnych archiwów przetwarzaj pliki w grupach po 10‑20, aby utrzymać przewidywalne zużycie zasobów.
Częste problemy i rozwiązania
- Brakujące obrazy: Upewnij się, że użyto
HtmlViewOptions.forEmbeddedResources, aby obrazy były wyodrębniane razem z HTML. - Nieprawidłowa kolejność stron: Sprawdź, czy wewnętrzny spis treści (TOC) pliku CHM jest kompletny; widok respektuje oryginalną strukturę nawigacji.
- Błędy Out‑of‑Memory: Zwiększ stertę JVM (
-Xmx) lub przejdź do trybu strumieniowego zviewer.view(options, new Stream()), jeśli jest dostępny w nowszych wersjach API.
Najczęściej zadawane pytania
Q: Czy mogę konwertować całe katalogi plików CHM jednocześnie?
A: Tak, iteruj przez folder przy użyciu API Files.list Javy i wywołuj ten sam kod renderujący dla każdego pliku.
Q: Jak radzić sobie z dużymi dokumentami, nie wyczerpując pamięci?
A: Zwiększ stertę JVM (-Xmx) lub renderuj do formatów obrazów o niższym DPI; możesz także podzielić CHM na sekcje i przetwarzać je osobno.
Q: Czy można dalej dostosować formatowanie wyjścia?
A: Tak, GroupDocs.Viewer oferuje rozbudowane opcje wstrzykiwania CSS, rozmiaru strony i jakości obrazu. Zapoznaj się z API reference, aby uzyskać szczegółowe ustawienia.
Q: Czy biblioteka zachowuje hiperłącza przy konwersji do PDF?
A: Absolutnie. Wszystkie wewnętrzne linki CHM są przekształcane w klikalne adnotacje PDF.
Q: Czy mogę renderować tylko podzbiór rozdziałów CHM?
A: Użyj metody setPageNumbers w opcjach widoku, aby określić dokładne strony lub rozdziały, które są potrzebne.
Podsumowanie
Masz teraz kompletny, gotowy do produkcji przepływ pracy, aby konwertować chm do html, konwertować chm do pdf i generować reprezentacje obrazów przy użyciu GroupDocs.Viewer dla Javy. Te techniki pozwalają modernizować starsze systemy pomocy, poprawić dostępność i zintegrować dokumentację z dowolnym rozwiązaniem opartym na Javie.
Gotowy na kolejny krok? Sprawdź oficjalną dokumentację GroupDocs, aby dowiedzieć się o zaawansowanej personalizacji, takiej jak wstrzykiwanie własnego CSS, znakowanie wodne i przetwarzanie wsadowe wielowątkowe.
Ostatnia aktualizacja: 2026-06-30
Testowano z: GroupDocs.Viewer Java 25.2
Autor: 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
}