Come convertire CHM in HTML (e altro) usando GroupDocs.Viewer Java
Compilare file di aiuto legacy in formati moderni è una necessità frequente per gli sviluppatori. In questo tutorial convertirai chm in html e imparerai anche a renderizzare la stessa sorgente CHM in JPG, PNG e convertire chm in pdf usando GroupDocs.Viewer per Java. Alla fine avrai un modello riutilizzabile che funziona per qualsiasi documento CHM, sia che tu stia archiviando vecchi manuali o esponendo contenuti di aiuto su un portale web.

Render dei file CHM con GroupDocs.Viewer per Java
Risposte rapide
- Quale libreria gestisce il rendering CHM? GroupDocs.Viewer for Java.
- Posso ottenere l’output HTML in un unico file? Sì, abilitando l’opzione
singlePage. - La conversione PDF è senza perdita? La libreria preserva layout, immagini e collegamenti ipertestuali.
- È necessaria una licenza per i test? Una prova gratuita o una licenza temporanea è sufficiente.
- Quali formati sono supportati? HTML, JPG, PNG, PDF, più altri come DOCX e XLSX.
Cos’è GroupDocs.Viewer per Java?
GroupDocs.Viewer per Java è un’API lato server che renderizza oltre 70 tipi di documenti — incluso CHM — in formati web‑friendly senza richiedere Microsoft Office o Adobe Acrobat. Funziona su qualsiasi runtime Java 8+ e può essere integrato in architetture web, desktop o micro‑service. Per ulteriori dettagli vedi la documentazione GroupDocs.
Perché convertire CHM in HTML?
GroupDocs.Viewer supporta oltre 50 formati di input e output e può trasformare un file CHM di 200 pagine in una singola pagina HTML in meno di 2 secondi su una tipica CPU da 2 GHz, mantenendo tutti i collegamenti interni funzionanti. Questa velocità e ampiezza di formati lo rendono ideale per migrare sistemi di aiuto legacy a portali web moderni.
Prerequisiti
- Libreria GroupDocs.Viewer Java (versione 25.2 o successiva).
- Progetto compatibile Maven (IntelliJ IDEA, Eclipse o simili).
- Conoscenza di base di Java e della gestione delle dipendenze Maven.
Configurazione di GroupDocs.Viewer per Java
Per utilizzare GroupDocs.Viewer nel tuo progetto Java, aggiungi la dipendenza Maven:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-viewer</artifactId>
<version>25.2</version>
</dependency>
Acquisizione della licenza
GroupDocs offre una prova gratuita, licenze temporanee per scopi di valutazione e opzioni di acquisto per uso commerciale. Visita la loro pagina di acquisto o la sezione licenza temporanea per esplorare le opzioni.
Con la libreria configurata, inizializziamola in una semplice applicazione Java:
Viewer viewer = new Viewer("path/to/your/file.chm", new ViewerConfig());
Guida all’implementazione
Come convertire CHM in HTML?
Carica il file CHM, definisci una cartella di output e invoca le opzioni di rendering HTML. L’API estrae automaticamente le risorse incorporate (CSS, immagini) e può unire tutto in una singola pagina.
String outputDir = "output/html";
HtmlViewOptions options = HtmlViewOptions.forEmbeddedResources(outputDir);
options.setSinglePage(true); // single‑page output
viewer.view(options);
La classe HtmlViewOptions è l’oggetto di configurazione che indica al visualizzatore come generare l’HTML. Impostare singlePage su true consolida tutti i capitoli in un unico file HTML, perfetto per una navigazione rapida.
Come convertire CHM in JPG?
Renderizzare le pagine CHM come immagini è utile per miniature o anteprime visive. Puoi specificare quali pagine renderizzare, riducendo il tempo di elaborazione per documenti di grandi dimensioni.
String outputDir = "output/jpg";
JpgViewOptions options = JpgViewOptions.forDirectory(outputDir);
options.setPageNumbers(new int[]{1, 2}); // render only first two pages
viewer.view(options);
La classe JpgViewOptions ti consente di controllare la qualità dell’immagine, DPI e selezione delle pagine. Renderizzare solo le pagine necessarie salva memoria e cicli CPU.
Come convertire CHM in PNG?
L’output PNG mantiene la qualità lossless e supporta la trasparenza, rendendolo ideale per screenshot ad alta risoluzione degli argomenti di aiuto.
String outputDir = "output/png";
PngViewOptions options = PngViewOptions.forDirectory(outputDir);
options.setPageNumbers(new int[]{1}); // render the first page as PNG
viewer.view(options);
La classe PngViewOptions funziona in modo simile alla sua controparte JPG ma produce file PNG che preservano la fedeltà visiva esatta.
Come convertire CHM in PDF?
Il PDF è il formato più portabile per la distribuzione. Il visualizzatore può unire l’intero contenuto CHM in un unico documento PDF con una singola chiamata.
String outputPath = "output/chm-document.pdf";
PdfViewOptions options = PdfViewOptions.forFile(outputPath);
viewer.view(options);
La classe PdfViewOptions gestisce automaticamente la paginazione, l’incorporamento dei font e la conservazione dei collegamenti ipertestuali.
Applicazioni pratiche
- Archiviazione: Converti file CHM legacy in formati moderni per un accesso più semplice e una conservazione a lungo termine.
- Portali web: Pubblica la documentazione CHM come pagine HTML su intranet aziendali interne.
- App mobili: Includi versioni PDF dei file di aiuto nelle applicazioni Android o iOS per la lettura offline.
Considerazioni sulle prestazioni
Quando si gestiscono conversioni di documenti grandi o numerose:
- Gestione della memoria: Renderizzare in PNG o JPG ad alta risoluzione può richiedere molta memoria; monitora l’heap JVM e considera
-Xmx2gper batch di grandi dimensioni. - Elaborazione parallela: Usa
ExecutorServicedi Java per convertire più file CHM contemporaneamente, ma limita i thread per evitare sovraccarico CPU. - Dimensione del batch: Per archivi massivi, elabora i file in gruppi di 10‑20 per mantenere prevedibile l’uso delle risorse.
Problemi comuni e soluzioni
- Immagini mancanti: Assicurati di utilizzare
HtmlViewOptions.forEmbeddedResourcesin modo che le immagini vengano estratte insieme all’HTML. - Ordine delle pagine errato: Verifica che il TOC interno del file CHM sia intatto; il visualizzatore rispetta la struttura di navigazione originale.
- Errori Out‑of‑Memory: Aumenta la dimensione dell’heap JVM o passa alla modalità streaming con
viewer.view(options, new Stream())se disponibile nelle versioni più recenti dell’API.
Domande frequenti
Q: Posso convertire intere directory di file CHM in una volta sola?
A: Sì, itera su una cartella con l’API Files.list di Java e invoca lo stesso codice di rendering per ogni file.
Q: Come gestire documenti di grandi dimensioni senza esaurire la memoria?
A: Aumenta l’heap JVM (-Xmx) o renderizza in formati immagine con DPI più basso; puoi anche suddividere il CHM in sezioni e processarle singolarmente.
Q: È possibile personalizzare ulteriormente la formattazione dell’output?
A: Sì, GroupDocs.Viewer offre ampie opzioni per l’iniezione di CSS, dimensione della pagina e qualità dell’immagine. Esplora il riferimento API per impostazioni dettagliate.
Q: La libreria preserva i collegamenti ipertestuali durante la conversione in PDF?
A: Assolutamente. Tutti i collegamenti interni CHM vengono tradotti in annotazioni PDF cliccabili.
Q: Posso renderizzare solo un sottoinsieme di capitoli CHM?
A: Usa il metodo setPageNumbers sulle opzioni di visualizzazione per specificare le pagine o i capitoli esatti di cui hai bisogno.
Conclusione
Ora disponi di un flusso di lavoro completo e pronto per la produzione per convertire chm in html, convertire chm in pdf e generare rappresentazioni immagine usando GroupDocs.Viewer per Java. Queste tecniche ti consentono di modernizzare i sistemi di aiuto legacy, migliorare l’accessibilità e integrare la documentazione in qualsiasi soluzione basata su Java.
Pronto per il passo successivo? Consulta la documentazione ufficiale di GroupDocs per personalizzazioni avanzate, come l’iniezione di CSS personalizzato, watermark e elaborazione batch multithread.
Ultimo aggiornamento: 2026-06-30
Testato con: GroupDocs.Viewer Java 25.2
Autore: 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
}