Details
-
Improvement
-
Status: Closed
-
Trivial
-
Resolution: Fixed
-
2.0.2, 2.0.3, 3.0.0 PDFBox
-
Ubuntu 14.04
Description
Drawing lines in a PDF (and also other operations) writes the coordinates to the content stream. Currently, the PDAbstractContentStream#writeOperand(float) method uses the NumberFormat class to convert the float values. This is inefficient for multiple reasons:
- NumberFormat is designed to format numbers locale dependent. That is not needed in this case
- NumberFormat uses a pattern to format the value which is also not needed in this case
- The formatting first creates a String object, converts it to a byte array with ASCII encoding and then writes it to the stream. This generates a lot of garbage.
A different approach to formatting real operands should be used.