You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2016/02/26 19:31:45 UTC
svn commit: r1732533 -
/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java
Author: lehmi
Date: Fri Feb 26 18:31:45 2016
New Revision: 1732533
URL: http://svn.apache.org/viewvc?rev=1732533&view=rev
Log:
PDFBOX-3250: fix name record parser as proposed by Vladimir Dubrov
Modified:
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java
Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java?rev=1732533&r1=1732532&r2=1732533&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java Fri Feb 26 18:31:45 2016
@@ -57,6 +57,7 @@ public class NamingTable extends TTFTabl
* @param data The stream to read the data from.
* @throws IOException If there is an error reading the data.
*/
+ @Override
public void read(TrueTypeFont ttf, TTFDataStream data) throws IOException
{
int formatSelector = data.readUnsignedShort();
@@ -83,11 +84,15 @@ public class NamingTable extends TTFTabl
int platform = nr.getPlatformId();
int encoding = nr.getPlatformEncodingId();
Charset charset = Charsets.ISO_8859_1;
- if (platform == 3 && (encoding == 1 || encoding == 0))
+ if (platform == NameRecord.PLATFORM_WINDOWS && (encoding == NameRecord.ENCODING_WINDOWS_SYMBOL || encoding == NameRecord.ENCODING_WINDOWS_UNICODE_BMP))
{
charset = Charsets.UTF_16;
}
- else if (platform == 2)
+ else if (platform == NameRecord.PLATFORM_UNICODE)
+ {
+ charset = Charsets.UTF_16;
+ }
+ else if (platform == NameRecord.PLATFORM_ISO)
{
if (encoding == 0)
{
@@ -162,7 +167,7 @@ public class NamingTable extends TTFTabl
private String getEnglishName(int nameId)
{
// Unicode, Full, BMP, 1.1, 1.0
- for (int i = 4; i <= 0; i--)
+ for (int i = 4; i >= 0; i--)
{
String nameUni =
getName(nameId,