You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2015/02/01 01:57:14 UTC
svn commit: r1656260 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
Author: jahewson
Date: Sun Feb 1 00:57:14 2015
New Revision: 1656260
URL: http://svn.apache.org/r1656260
Log:
PDFBOX-2649: encode string only once
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java?rev=1656260&r1=1656259&r2=1656260&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java Sun Feb 1 00:57:14 2015
@@ -294,22 +294,16 @@ public abstract class PDFont implements
*/
public float getStringWidth(String text) throws IOException
{
+ byte[] bytes = encode(text);
+ ByteArrayInputStream in = new ByteArrayInputStream(bytes);
+
float width = 0;
- int offset = 0, length = text.length();
- while (offset < length)
+ while (in.available() > 0)
{
- int codePoint = text.codePointAt(offset);
- offset += Character.charCount(codePoint);
-
- byte[] bytes = encode(text);
- ByteArrayInputStream in = new ByteArrayInputStream(bytes);
- while (in.available() > 0)
- {
- int code = readCode(in);
- width += getWidth(code);
- }
-
+ int code = readCode(in);
+ width += getWidth(code);
}
+
return width;
}