Est-ce que quelqu'un sait comment faire cela? J'ai essayé avec Jeditorpane mais ça ne marche pas? Toute autre idée?
Merci d'avance. P>
Ceci est le code que j'utilise: p>
3 Réponses :
Vous devez rendre le HTML et sortir le résultat en tant que fichier d'image. Actuellement, il n'y a pas de rendu HTML à part entière dans Core Java, vous aurez donc besoin d'une bibliothèque distincte ou d'une application, Webrenderer par exemple. Il suffit d'appeler simplement à partir d'un filtre de servlet et remplacez la réponse avec les résultats du rendu. P>
edit fort> open source alternative à webrenderer est COBRA P>
Merci @Saul Je construis une application open source, donc je voudrais utiliser des outils open source / libs.
HTMELDITORKIT de Swing fournit un rendu HTML (bien que primitif). télécharger.oracle.com/javase/ 6 / DOCS / API / JAVAX / SWING / TEXT / HTML / ...
@dogbane: HTMELLEDITORKIT ne prend en charge qu'un ensemble très minime d'utilisations de sites Web modernes. Ce n'est pas un moteur de rendu Web à part entière.
Vous pouvez essayer d'utiliser un JEDORPANE comme suit:
//load the webpage into the editor
JEditorPane ed = new JEditorPane(new URL("http://www.google.com"));
ed.setSize(200,200);
//create a new image
BufferedImage image = new BufferedImage(ed.getWidth(), ed.getHeight(),
BufferedImage.TYPE_INT_ARGB);
//paint the editor onto the image
SwingUtilities.paintComponent(image.createGraphics(),
ed,
new JPanel(),
0, 0, image.getWidth(), image.getHeight());
//save the image to file
ImageIO.write((RenderedImage)image, "png", new File("google.png"));
L'écran est tout blanc, blanc en couleur.
Vous pouvez également utiliser HTML2Image Java API de Google. P>
J'imagine parce que Jeditorpane est un composant pivotant et n'a rien à voir avec le HTML.
Hey @bozho, merci pour la réponse. Le problème est l'image résultante, c'est totalement mal formé.
Vous devrez être plus précis. Que faites-vous? Et que se passe-t-il quand vous le faites?
Hey @Mike, je viens de mettre à jour la question avec le code que j'utilise. Par exemple, pour google.com, j'ai reçu une image avec cette taille: 6498 × 574. Le HTML que je veux convertir est généré sous le serveur et peut avoir des tailles variables.