Hi,
> However, it is my personal experience that you can easily parallelize
certain tasks calling pdfbox library methods using a miminal amount of care
and design in the way you invoke and synchronize the threads.
I have now changed my code that the font is stored in a
ByteArrayInputStream (So he does not need to be loaded every time.).
Then a separate PDFont is created for each task.
private static ByteArrayFileInputStream libertine_R = null;
public static PDFont getLibertine_R(final PDDocument document)
throws IOException {
if (libertine_R == null) {
synchronized (FontLibertine.class) {
if (libertine_R == null) {
libertine_R = new ByteArrayFileInputStream(
FontLibertine.class.getResourceAsStream("ttf/LinLibertine_Rah.ttf"));
}
}
}
PDFont font;
synchronized (libertine_R) {
libertine_R.reset();
font = PDTrueTypeFont.loadTTF(document, libertine_R);
}
return font;
}
The creation of PDFs is now 40 percent faster.
- Which framework do you use for your multi-threaded approach?
ThreadPoolExecutor and LinkedBlockingQueue<Runnable>
With the above solution I can work and create hundreds of PDFs in multi
threads.
Thank you!
By
Michael
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]