我遇到了为生成PDF而加载的TTF字体的问题,最终导致Linux上打开的文件过多。我最后测试的PDFBox版本是2.0.0-RC3。
基本上对于每个PDF我创建一个文档并加载我想要使用的两种字体。生成文档后,我关闭所有资源,但两种字体的文件描述符保持打开状态。
我的问题是如何关闭这两个文件?
这是我的基本代码:
doc = new PDDocument();
page = new PDPage(PDRectangle.A4);
doc.addPage(page);
PDFont font = PDType0Font.load(doc, new File(settings.getProperty("font.location")));
PDFont boldFont = PDType0Font.load(doc, new File(settings.getProperty("bold.font.location")));
PDPageContentStream content = new PDPageContentStream(doc, page);
// add content stuff
content.close();
bos = new ByteArrayOutputStream();
doc.save(bos);
bos.flush();
byte[] bytes = bos.toByteArray();
doc.close();