迄今爲止,此工作正常,但如何爲生成的圖像添加透明度?pdfBox將pdf轉換爲透明圖像
for (img <- 0 until f.length) {
val inputPdf = PDDocument.load(f(img).getPath).getDocumentCatalog.getAllPages.get(0).asInstanceOf[PDPage]
val outputfile = new File(f(img).getName + ".png")
ImageIO.write(inputPdf.convertToImage(), "png", outputfile)
}
問候 託斯滕
您實際上會將PDF頁面渲染爲位圖圖像。但是PDF頁面被指定爲在所有繪製的東西背後有一個白色背景(當談到透明度時,規範將頁面**概括爲一個透明度組,該透明度組由純粹放置在頁面上的對象組成,白色和完全不透明**)。因此,繪製整個頁面時,結果沒有任何透明度。 – mkl
@mkl PDF自1.4以來似乎支持透明度。 – NiematojakTomasz
@NiematojakTomasz是的,它在內部是在頁面上創建對象時完成的,否則上面「透明組」的概念將毫無意義。但預計將在白色背景上繪製一個作爲最終對象的頁面。 (雖然這只是規範,但在您自己的渲染器中,您可以使用您選擇的背景,包括完全透明的背景,但這就是爲什麼當您被要求繪製時不應該期望現有PDF庫返回透明圖像的原因一頁。) – mkl