Author: ssteiner Date: Fri Oct 13 13:23:42 2017 New Revision: 1812128 URL: http://svn.apache.org/viewvc?rev=1812128&view=rev Log: FOP-2753: PDF to PS allow fop fonts as fallback, add close
Modified: xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/ImageConverterPDF2G2D.java Modified: xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/ImageConverterPDF2G2D.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/ImageConverterPDF2G2D.java?rev=1812128&r1=1812127&r2=1812128&view=diff ============================================================================== --- xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/ImageConverterPDF2G2D.java (original) +++ xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/ImageConverterPDF2G2D.java Fri Oct 13 13:23:42 2017 @@ -147,6 +147,7 @@ public class ImageConverterPDF2G2D exten /** {@inheritDoc} */ public void paint(Graphics2D g2d, Rectangle2D area) { + fopFontProvider.start(); try { PDRectangle mediaBox = page.getCropBox(); AffineTransform at = new AffineTransform(); @@ -156,17 +157,19 @@ public class ImageConverterPDF2G2D exten } if (g2d instanceof PSGraphics2D && new PageUtil().pageHasTransparency(page.getResources())) { drawPageAsImage(at, g2d); - return; + } else { + at.translate(area.getX(), area.getY()); + at.scale(area.getWidth() / mediaBox.getWidth(), + area.getHeight() / mediaBox.getHeight()); + g2d.transform(at); + new PDFRenderer(pdDocument).renderPageToGraphics(selectedPage, g2d); } - at.translate(area.getX(), area.getY()); - at.scale(area.getWidth() / mediaBox.getWidth(), - area.getHeight() / mediaBox.getHeight()); - g2d.transform(at); - new PDFRenderer(pdDocument).renderPageToGraphics(selectedPage, g2d); } catch (UnsupportedOperationException e) { throw e; } catch (Throwable t) { throw new RuntimeException("Error while painting PDF page: " + uri + " " + t.getMessage(), t); + } finally { + fopFontProvider.close(); } } @@ -243,10 +246,14 @@ public class ImageConverterPDF2G2D exten private Map<String, Object> fonts = new HashMap<String, Object>(); private Map<String, TrueTypeFont> ttFonts = new HashMap<String, TrueTypeFont>(); - FopFontProvider() { + void start() { fopFontMapper.fopFontProvider.set(this); } + void close() { + fopFontMapper.fopFontProvider.remove(); + } + private CustomFont getFont(String name) throws IOException { Object typeface = fonts.get(name); if (typeface instanceof LazyFont) { @@ -285,8 +292,16 @@ public class ImageConverterPDF2G2D exten defaultFontMapper = FontMappers.instance(); } + private TrueTypeFont getTrueTypeFont(String baseFont) { + FopFontProvider fontProvider = fopFontProvider.get(); + if (fontProvider == null) { + return null; + } + return fontProvider.getTrueTypeFont(baseFont); + } + public FontMapping<TrueTypeFont> getTrueTypeFont(String baseFont, PDFontDescriptor fontDescriptor) { - TrueTypeFont fopFont = fopFontProvider.get().getTrueTypeFont(baseFont); + TrueTypeFont fopFont = getTrueTypeFont(baseFont); if (fopFont != null) { return new FontMapping<TrueTypeFont>(fopFont, true); } @@ -295,7 +310,7 @@ public class ImageConverterPDF2G2D exten public FontMapping<FontBoxFont> getFontBoxFont(String baseFont, PDFontDescriptor fontDescriptor) { - TrueTypeFont fopFont = fopFontProvider.get().getTrueTypeFont(baseFont); + TrueTypeFont fopFont = getTrueTypeFont(baseFont); if (fopFont != null) { return new FontMapping<FontBoxFont>(fopFont, true); } --------------------------------------------------------------------- To unsubscribe, e-mail: fop-commits-unsubscr...@xmlgraphics.apache.org For additional commands, e-mail: fop-commits-h...@xmlgraphics.apache.org