0
我試圖使用PDFBox將圖像寫入PDF。我正在使用他們的樣本(如附件)。一切都很好,但寫入3.5MB jpeg(3200 * 2500px)大約需要2秒。將PDF添加到PDF極其緩慢
這是正常的嗎?有什麼辦法可以讓它更快(至少10倍)?
public void createPDFFromImage(String inputFile, String image, String outputFile)
throws IOException, COSVisitorException
{
// the document
PDDocument doc = null;
try
{
doc = PDDocument.load(inputFile);
//we will add the image to the first page.
PDPage page = (PDPage)doc.getDocumentCatalog().getAllPages().get(0);
PDXObjectImage ximage = null;
if(image.toLowerCase().endsWith(".jpg"))
{
ximage = new PDJpeg(doc, new FileInputStream(image));
}
else if (image.toLowerCase().endsWith(".tif") || image.toLowerCase().endsWith(".tiff"))
{
ximage = new PDCcitt(doc, new RandomAccessFile(new File(image),"r"));
}
else
{
//BufferedImage awtImage = ImageIO.read(new File(image));
//ximage = new PDPixelMap(doc, awtImage);
throw new IOException("Image type not supported:" + image);
}
PDPageContentStream contentStream = new PDPageContentStream(doc, page, true, true);
contentStream.drawImage(ximage, 20, 20);
contentStream.close();
doc.save(outputFile);
}
finally
{
if(doc != null)
{
doc.close();
}
}
}
我看過1.8源代碼,時間用在ImageIO.read()中。圖像被讀取一次以獲得圖像信息(例如大小),這就是爲什麼。 –