if (da != null) {
currentStream.write("[");
for (int count = 0; count < da.length; count++) {
- if (((int)da[count]) == 0) {
- // the dasharray units in pdf are (whole) numbers
- // in user space units, cannot be 0
- currentStream.write("1");
- } else {
- currentStream.write("" + ((int)da[count]));
- }
+ currentStream.write(PDFNumber.doubleOut(da[count]));
if (count < da.length - 1) {
currentStream.write(" ");
}
}
currentStream.write("] ");
float offset = bs.getDashPhase();
- currentStream.write(((int)offset) + " d\n");
+ currentStream.write(PDFNumber.doubleOut(offset) + " d\n");
}
int ec = bs.getEndCap();
switch (ec) {
<changes>
<release version="FOP Trunk">
+ <action context="Code" dev="JM" type="fix">
+ Bugfix: The generation of the PDF "d" (setdash) command was assuming that
+ only integer values can be used but that isn't the case. Dash patterns
+ PDFGraphics2D would be wrong in the process.
+ </action>
<action context="Code" dev="JM" type="fix">
Bugfix: Fixed a division by zero problem in TTFReader and improved the detection
of the capHeight and xHeight font metric values for TrueType fonts.