java實現ppt/pptx轉圖片,轉pdf的兩種方式poi與aspose比較以及後續的各自實現

                                  poi與aspose的比較

1.常見的ppt轉pdf的方案有兩種

a.一種是ppt先轉換爲png等圖片格式的圖片,然後在合成圖片生成pdf。

b.直接將ppt轉爲pdf

以上兩種方式中:

方式a可以通過poi相關全程實現,也可以使用aspose+poi的方式實現。兩種實現方式分別爲

ppt/pptx轉png圖片階段:poi或者aspose,其中poi在這個階段的速度比aspose快很多,但是有一點,就是偶爾會底層報錯,但是aspose出錯的可能性極低。具體怎末選,看你是看重速度還是上傳的成功率。速度雖然不能該變,但是如果實時性不是很強,可以涉及異步的方式來消弱轉換的耗時問題。需要注意的是,如果服務器硬件,如cpu,內存不高的情況下,執行這個ppt轉png的過程比較消耗資源,cpu,內存都會瞬間飆升,如果業務上這個功能用到的還比較多,建議和業務服務器分開。當然,如果cpu,內存很大,試一試就知道能不能抗住。如果調用這個方法cpu沒有起到立竿見影的飆升狀況,就不用考慮單獨整個文件服務器了,哈哈。

png轉pdf階段:poi相關,主要用到的包是這個:

        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox</artifactId>
            <version>2.0.18</version>
        </dependency>

這個階段和上一個階段比,這麼說具體點。就是ppt轉png用60-80s,png轉pdf只用5-9s即可。

方式b是通過aspose來實現的。這個過程怎麼說呢,我這裏是感覺比較慢,但是幾乎都能成功轉換,就是說成功率很高。並沒有網上說的非常快,雖然這個包是收費的,但是免費的破解還是有的,我用的就是破解的。也或許是這個原因才慢吧,我感覺不至於,但是收費的是按轉換次數收費,太特麼貴了,用不起啥法。。。上面說的兩種方式java代碼我都會貼出來。

另外:網上還說通過openoffice的方式實現,這個我是調研過了,可行性真的可以說,別浪費時間了。這個不太靠譜!

爲什麼這麼說呢,首先你要接受安裝一個openservice的服務端,並且你本地開發用的時windows,但是項目上線你的安裝linux版本的,就算你windows沒出問題,也不能保證linux的沒問題。並且這個服務佔用內存200M吧。如果你們公司這塊業務不是很多,偶爾會用到,那這個一直啓動的服務端就顯得很浪費呀。這都是其次,因爲我試了不下五種java方式來本機開發,沒有一個能成功的,後來試了幾天,果斷不行,放棄了。

 

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