我目前正在使用以下代码将PDF转换为图像:
@SuppressWarnings("unchecked")
public static Image convertPDFtoImage(ByteArrayInputStream bais) {
Image convertedImage = null;
try {
PDDocument document = PDDocument.load(bais);
List<PDPage> list = document.getDocumentCatalog().getAllPages();
PDPage page = list.get(0);
BufferedImage image = page.convertToImage(BufferedImage.TYPE_INT_RGB, 64);
convertedImage = SwingFXUtils.toFXImage(image, null);
document.close();
}
catch (Exception e) {
e.printStackTrace();
}
return convertedImage;
}
然后,我在JavaFX ImageView中展示了转换后的图像。
此外,我需要导入这两个包,尽管我没有使用它们:
import org.apache.commons.logging.LogFactory;
import org.apache.fontbox.afm.AFMParser;
有两个问题:
- 将DPI设置为64(在我看来并不算很高),将一个简单的单页PDF转换为图像通常需要2到3秒钟。这似乎有点慢,是正常的吗?
- 我为什么需要导入这两个包而我并没有使用它们? 如果我不导入它们,就会出现很多错误,转换就无法完成。
我想在JavaFX中快速显示PDF,但两到三秒钟实在太长了。欢迎提供除将其转换为图像外,在JavaFX中显示PDF的其他方法。
非常感谢任何帮助!