File tree Expand file tree Collapse file tree 1 file changed +27
-1
lines changed
fontbox/src/main/java/org/apache/fontbox/cff Expand file tree Collapse file tree 1 file changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -76,7 +76,33 @@ private void convertType1ToType2(List<Object> sequence)
7676 {
7777 pathCount = 0 ;
7878 List <Number > numbers = new ArrayList <>();
79- sequence .forEach (obj -> {
79+
80+ List <Object > newSequence = new ArrayList <>(sequence .size ());
81+ for (int i = 0 ; i < sequence .size (); ++i )
82+ {
83+ if (sequence .get (i ) == CharStringCommand .DIV && i >= 2 )
84+ {
85+ Object num = sequence .get (i - 2 );
86+ Object den = sequence .get (i - 1 );
87+ if (num instanceof Number && den instanceof Number )
88+ {
89+ float f = ((Number ) num ).floatValue () / ((Number ) den ).floatValue ();
90+ newSequence .remove (newSequence .size () - 1 );
91+ newSequence .remove (newSequence .size () - 1 );
92+ newSequence .add (f );
93+ }
94+ else
95+ {
96+ newSequence .add (sequence .get (i )); // GIGO
97+ }
98+ }
99+ else
100+ {
101+ newSequence .add (sequence .get (i ));
102+ }
103+ }
104+
105+ newSequence .forEach (obj -> {
80106 if (obj instanceof CharStringCommand )
81107 {
82108 List <Number > results = convertType2Command (numbers , (CharStringCommand ) obj );
You can’t perform that action at this time.
0 commit comments