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: [email protected]
For additional commands, e-mail: [email protected]