Author: ssteiner Date: Wed Jan 15 12:01:31 2020 New Revision: 1872811 URL: http://svn.apache.org/viewvc?rev=1872811&view=rev Log: FOP-2904: Handle object for boundingbox
Modified: xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/FOPPDFMultiByteFont.java xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/FOPPDFSingleMultiByteFontTestCase.java Modified: xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/FOPPDFMultiByteFont.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/FOPPDFMultiByteFont.java?rev=1872811&r1=1872810&r2=1872811&view=diff ============================================================================== --- xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/FOPPDFMultiByteFont.java (original) +++ xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/FOPPDFMultiByteFont.java Wed Jan 15 12:01:31 2020 @@ -307,8 +307,11 @@ public class FOPPDFMultiByteFont extends for (Map.Entry<COSName, COSBase> n : dict.entrySet()) { readFontBBox(n.getValue()); if (n.getKey() == COSName.FONT_BBOX) { - COSArray w = (COSArray)n.getValue(); - float[] bboxf = w.toFloatArray(); + COSBase bboxArray = n.getValue(); + if (bboxArray instanceof COSObject) { + bboxArray = ((COSObject) bboxArray).getObject(); + } + float[] bboxf = ((COSArray)bboxArray).toFloatArray(); int[] bbox = new int[bboxf.length]; for (int i = 0; i < bbox.length; i++) { bbox[i] = (int)bboxf[i]; Modified: xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/FOPPDFSingleMultiByteFontTestCase.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/FOPPDFSingleMultiByteFontTestCase.java?rev=1872811&r1=1872810&r2=1872811&view=diff ============================================================================== --- xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/FOPPDFSingleMultiByteFontTestCase.java (original) +++ xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/FOPPDFSingleMultiByteFontTestCase.java Wed Jan 15 12:01:31 2020 @@ -31,8 +31,11 @@ import org.apache.fontbox.cff.CFFParser; import org.apache.fontbox.ttf.GlyphData; import org.apache.fontbox.ttf.GlyphTable; import org.apache.fontbox.type1.Type1Font; +import org.apache.pdfbox.cos.COSArray; import org.apache.pdfbox.cos.COSDictionary; import org.apache.pdfbox.cos.COSName; +import org.apache.pdfbox.cos.COSNumber; +import org.apache.pdfbox.cos.COSObject; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDResources; @@ -194,4 +197,23 @@ public class FOPPDFSingleMultiByteFontTe return getFont(fontData); } } + + @Test + public void testBBox() throws IOException { + COSDictionary dict = new COSDictionary(); + COSArray array = new COSArray(); + array.add(COSNumber.get("1")); + dict.setItem(COSName.FONT_BBOX, new COSObject(array)); + FOPPDFMultiByteFont multiByteFont = new NoAddFontFOPPDFMultiByteFont(dict, ""); + Assert.assertEquals(multiByteFont.getFontBBox()[0], 1); + } + + private static class NoAddFontFOPPDFMultiByteFont extends FOPPDFMultiByteFont { + NoAddFontFOPPDFMultiByteFont(COSDictionary fontData, String name) throws IOException { + super(fontData, name); + } + public String addFont(COSDictionary fontData) { + return null; + } + }; } --------------------------------------------------------------------- To unsubscribe, e-mail: fop-commits-unsubscr...@xmlgraphics.apache.org For additional commands, e-mail: fop-commits-h...@xmlgraphics.apache.org