La conversion programmatique des pages OneNote en fichiers image est un besoin fréquent lors de la création de générateurs d’aperçus ou de visionneuses mobiles. Le SDK Conholdate.Total for Java facilite la conversion de OneNote en image en Java sans nécessiter Microsoft Office sur le serveur. Dans ce guide, vous verrez une implémentation complète, thread‑safe, des options de sortie PNG et JPEG, ainsi que des conseils pour le traitement en mémoire.
Convertir Onenote en image en Java - Guide étape par étape
Initialiser le flux de conversion : Chargez le fichier OneNote dans un
InputStreamet créez une instanceConverter- le cœur du flux de travail de conversion OneNote en image en Java.InputStream fileStream = new BufferedInputStream(new FileInputStream("sample.one")); Converter converter = new Converter(fileStream);Déterminez le nombre de pages à convertir: Récupérez le nombre total de pages depuis le
Converter.int pageCount = converter.getPageCount();Configurer les options d’image pour chaque page: Définissez le format de sortie, la qualité et l’index de page basé sur zéro en utilisant
ImageConvertOptions.ImageConvertOptions options = new ImageConvertOptions(); options.setFormat(ImageSaveOptions.ImageFormat.PNG); options.setQuality(90); options.setPageNumber(pageIndex);Convertir les pages en parallèle : Utilisez un
ExecutorServicepour exécuter les conversions simultanément, en écrivant chaque page dans un fichier PNG distinct.
ExecutorService executor = Executors.newFixedThreadPool(
Runtime.getRuntime().availableProcessors());
executor.submit(() -> {
// conversion logic per page
});
- Conversion optionnelle en mémoire : Pour les scénarios où vous avez besoin des octets d’image directement (par ex., envoi sur un réseau), convertissez la première page en un
ByteArrayOutputStream.
ImageConvertOptions memOptions = new ImageConvertOptions();
memOptions.setFormat(ImageSaveOptions.ImageFormat.JPEG);
memOptions.setPageNumber(0);
ByteArrayOutputStream memoryStream = new ByteArrayOutputStream();
converter.convert(memoryStream, memOptions);
Pour plus de détails sur la classe Converter et ses méthodes, consultez la référence officielle de l’API.
Exemple complet fonctionnel pour convertir OneNote en image en Java - Traitement parallèle des pages
Le code suivant montre une implémentation complète de la façon de convertir Onenote en image en Java en utilisant Conholdate.Total.
import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.options.convert.ImageConvertOptions;
import com.groupdocs.conversion.options.convert.ImageSaveOptions;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class ConvertOneNoteToImage {
public static void main(String[] args) {
String inputPath = "sample.one";
String outputPattern = "output_page_%d.png";
int imageQuality = 90; // 0-100
// Thread pool for parallel page conversion
ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
try (InputStream fileStream = new BufferedInputStream(new FileInputStream(inputPath));
Converter converter = new Converter(fileStream)) {
int pageCount = converter.getPageCount();
for (int i = 0; i < pageCount; i++) {
final int pageIndex = i;
executor.submit(() -> {
ImageConvertOptions options = new ImageConvertOptions();
options.setFormat(ImageSaveOptions.ImageFormat.PNG);
options.setQuality(imageQuality);
options.setPageNumber(pageIndex); // zero‑based page index
String outputPath = String.format(outputPattern, pageIndex + 1);
try (OutputStream outStream = new BufferedOutputStream(new FileOutputStream(outputPath))) {
converter.convert(outStream, options);
System.out.println("Page " + (pageIndex + 1) + " saved to " + outputPath);
} catch (Exception e) {
System.err.println("Failed to convert page " + (pageIndex + 1) + ": " + e.getMessage());
}
});
}
// Example of in‑memory conversion for the first page
ImageConvertOptions memOptions = new ImageConvertOptions();
memOptions.setFormat(ImageSaveOptions.ImageFormat.JPEG);
memOptions.setQuality(imageQuality);
memOptions.setPageNumber(0);
try (ByteArrayOutputStream memoryStream = new ByteArrayOutputStream()) {
converter.convert(memoryStream, memOptions);
byte[] imageBytes = memoryStream.toByteArray();
System.out.println("In‑memory conversion produced " + imageBytes.length + " bytes for page 1.");
// imageBytes can now be sent over network, stored in DB, etc.
} catch (Exception e) {
System.err.println("In‑memory conversion error: " + e.getMessage());
}
} catch (IOException e) {
System.err.println("File access error: " + e.getMessage());
} catch (Exception e) {
System.err.println("Conversion initialization error: " + e.getMessage());
} finally {
executor.shutdown();
try {
if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {
executor.shutdownNow();
}
} catch (InterruptedException ie) {
executor.shutdownNow();
Thread.currentThread().interrupt();
}
}
}
}
Remarque : Cet exemple de code montre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour les chemins de fichiers (
sample.one,output_page_%d.png, etc.) pour qu’ils correspondent à vos emplacements réels, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.
Installation et configuration de Conholdate.Total for Java
Ajoutez le référentiel Maven Conholdate et la dépendance SDK à votre pom.xml :
<repositories>
<repository>
<id>conholdate-repo</id>
<name>Conholdate Maven Repository</name>
<url>https://repository.conholdate.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.9</version>
<type>pom</type>
</dependency>
Téléchargez le dernier package binaire depuis la page de téléchargement. Le SDK nécessite Java 8 ou une version supérieure et s’exécute sur n’importe quelle JVM standard. Pour une utilisation en production, obtenez une licence sur la page de tarification et activez‑la avec une clé temporaire depuis la page de licence temporaire.
Conclusion
En suivant ce guide, vous disposez désormais d’une base solide pour convertir OneNote en image en Java avec Conholdate.Total for Java. L’exemple montre une sortie PNG page par page, un traitement parallèle pour la rapidité et une option en mémoire pour une intégration flexible. N’oubliez pas de configurer le ImageConvertOptions afin qu’il corresponde au format d’image et à la qualité requis, et de gérer les ressources avec des blocs try‑with‑resources comme indiqué. Pour les projets commerciaux, obtenez une licence appropriée via la page de tarification et testez la conversion avec de vrais fichiers OneNote afin de vous assurer que tout le contenu est rendu correctement. L’API étendue du SDK et sa documentation facilitent l’extension de cette solution vers le traitement par lots ou les services cloud.
FAQs
Puis-je convertir Onenote en image en Java sans installer Microsoft Office ?
Oui. Le SDK Conholdate.Total effectue tout le rendu en interne, donc aucune installation d’Office n’est requise sur le serveur.Quels formats d’image la conversion prend-elle en charge ?
Vous pouvez exporter vers PNG, JPEG, BMP, GIF, et TIFF en définissant la propriétéImageSaveOptions.ImageFormat.Comment améliorer les performances pour les grands notebooks ?
Utilisez le pool de threads intégré comme démontré, et privilégiez la conversion en mémoire lorsque vous n’avez besoin que des octets d’image, afin d’éviter les entrées/sorties disque.Où puis-je trouver plus d’exemples et de détails sur l’API ?
La documentation officielle fournit des guides complets, et la référence API répertorie toutes les classes et méthodes.
