Html2Image的實現且問題(java)

Html2Image 使用java原因將html樣式轉成圖片
使用html2Image,網上有很多關於這方面的代碼,包括github上,但是呢我自己嘗試了很多次,畫出來的東西識別不了一些CSS,即不能識別全部的CSS樣式導致畫出來的圖片不是預期的樣式。

1.嘗試1 gui.ava.html2image

  <dependencies>
        <!-- https://mvnrepository.com/artifact/gui.ava/html2image -->
        <dependency>
            <groupId>gui.ava</groupId>
            <artifactId>html2image</artifactId>
            <version>2.0.1</version>
        </dependency>

    </dependencies>
HtmlImageGenerator htmlImageGenerator = new HtmlImageGenerator();
htmlImageGenerator.loadHtml(htmlText);
BufferedImage img = null;
try {
    img = htmlImageGenerator.getBufferedImage();
// 線程休眠
    Thread.sleep(5000);
} catch (InterruptedException e) {
    e.printStackTrace();
}
htmlImageGenerator.getBufferedImage();
htmlImageGenerator.saveAsImage("C:\\Users\\Administrator\\Desktop\\test.png");
htmlImageGenerator.saveAsHtmlWithMap("cover.html","hello-world.png");

畫出來的圖片佈局是很滿意但是呢,如果html頁面有圖片則需要暫停一下線程估計圖片畫完了,等到線程回覆然後輸出,(這個時間具體多少不可控)。
2.嘗試2 com.github.xuwei-k.html2image

 <dependency>
     <groupId>com.github.xuwei-k</groupId>
     <artifactId>html2image</artifactId>
     <version>0.1.0</version>
 </dependency>

有些CSS樣式無法識別,導致整體佈局有偏差。後來使用最原始的html來畫整體佈局,大致佈局是正確的但是html上左邊和上邊沒有白邊,結果畫出來的就有白邊。包括分辨率什麼的效果也不是很好。
3嘗試三 java原生
跟gui.ava.html2image類似也是需要線程等待。

最後我使用的是java原生的Graphics2D和BufferedImage完成圖片繪製的,沒有再使用html轉圖片。我的時間比較着急所以也沒有再去找有沒有新的方式,所以希望大家有什麼新的方法或者我的方法有問題的地方幫我指出,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章