[
https://issues.apache.org/jira/browse/PDFBOX-2144?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14114311#comment-14114311
]
John Hewson edited comment on PDFBOX-2144 at 8/28/14 8:41 PM:
--------------------------------------------------------------
{quote}
You scare me. What is static and where?
{quote}
Some of it _is_ scary. PDFBox has plenty of static state, fonts are cached
statically, as are CMaps and some ICC_ColorSpace instances. There may be more,
I don't know because nobody designed the system as a whole.
PDFBox has some thread safety issues, even when it's clear where static state
is, it's not clear that it is safe, for example, fonts were being cached
statically, but the fonts themselves were not thread safe. I've been working on
fixing this in PDFBOX-2262.
{quote}
Just replace your static methods by a factory and bind the instance to
somewhere
{quote}
That's what I'm trying to avoid, we can't use PageDrawer as PDFont objects are
created outside of rendering, PDDocument would work though. However, the API
changes needed to pass the FontProvider from PDDocument to PDPage to
PDResources to PDFontFactory to the PDFont classes themselves aren't desirable.
was (Author: jahewson):
{quote}
You scare me. What is static and where?
{quote}
Some of it _is_ scary. PDFBox has plenty of static state, fonts are cached
statically, as are CMaps and some ICC_ColorSpace instances. There may be more,
I don't know because nobody designed the system as a whole.
PDFBox has some thread safety issues, even when it's clear where static state
is, it's not clear that it is safe, for example, fonts were being cached
statically, but the fonts themselves were not thread safe. I've been working on
fixing this in PDFBOX-2262.
{quote}
Just replace your static methods by a factory and bind the instance to
somewhere
{quote}
That's what I'm trying to avoid, we can't use PageDrawer as PDFont objects are
created outside of rendering, PDDocument would work though but the API changes
needed to pass the FontProvider from PDDocument to PDPage to PDResources to
PDFontFactory to the PDFont classes themselves aren't desirable.
> Provide a pluggable font manager
> --------------------------------
>
> Key: PDFBOX-2144
> URL: https://issues.apache.org/jira/browse/PDFBOX-2144
> Project: PDFBox
> Issue Type: Improvement
> Components: Rendering
> Reporter: Petr Slaby
> Assignee: John Hewson
> Attachments: FontManager.patch
>
>
> Our J2EE application has all fonts and resources configured and stored in its
> database. No files are accessed directly from file system or from system
> environment. To make PDFBox compatible with this philosophy, we need the
> FontManager in pdfbox and fontbox to be pluggable, e.g. as shown in the
> attached patch.
> The proposal defines a FontManager interface and default implementation which
> is the original one. FontManager then needs to be configured on and
> propagated from PDFStreamEngine and PageDrawer. It should also be
> configurable on PDFRenderer, which is not shown in the patch. There I would
> suggest to introduce a configuration object which would take care about all
> the current and future options of PDFRenderer.
--
This message was sent by Atlassian JIRA
(v6.2#6252)