Added: pdfbox/trunk/fontbox/src/main/resources/org/apache/fontbox/cmap/UniKS-UTF16-V URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/resources/org/apache/fontbox/cmap/UniKS-UTF16-V?rev=1625834&view=auto ============================================================================== --- pdfbox/trunk/fontbox/src/main/resources/org/apache/fontbox/cmap/UniKS-UTF16-V (added) +++ pdfbox/trunk/fontbox/src/main/resources/org/apache/fontbox/cmap/UniKS-UTF16-V Wed Sep 17 21:38:38 2014 @@ -0,0 +1,99 @@ +%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +%%DocumentNeededResources: CMap (UniKS-UTF16-H) +%%IncludeResource: ProcSet (CIDInit) +%%IncludeResource: CMap (UniKS-UTF16-H) +%%BeginResource: CMap (UniKS-UTF16-V) +%%Title: (UniKS-UTF16-V Adobe Korea1 1) +%%Version: 1.002 +%%Copyright: ----------------------------------------------------------- +%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated. +%%Copyright: All rights reserved. +%%Copyright: +%%Copyright: Redistribution and use in source and binary forms, with or +%%Copyright: without modification, are permitted provided that the +%%Copyright: following conditions are met: +%%Copyright: +%%Copyright: Redistributions of source code must retain the above +%%Copyright: copyright notice, this list of conditions and the following +%%Copyright: disclaimer. +%%Copyright: +%%Copyright: Redistributions in binary form must reproduce the above +%%Copyright: copyright notice, this list of conditions and the following +%%Copyright: disclaimer in the documentation and/or other materials +%%Copyright: provided with the distribution. +%%Copyright: +%%Copyright: Neither the name of Adobe Systems Incorporated nor the names +%%Copyright: of its contributors may be used to endorse or promote +%%Copyright: products derived from this software without specific prior +%%Copyright: written permission. +%%Copyright: +%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +%%Copyright: ----------------------------------------------------------- +%%EndComments + +/CIDInit /ProcSet findresource begin + +12 dict begin + +begincmap + +/UniKS-UTF16-H usecmap + +/CIDSystemInfo 3 dict dup begin + /Registry (Adobe) def + /Ordering (Korea1) def + /Supplement 1 def +end def + +/CMapName /UniKS-UTF16-V def +/CMapVersion 1.002 def +/CMapType 1 def + +/XUID [1 10 25545] def + +/WMode 1 def + +11 begincidchar +<2016> 8061 +<2025> 8058 +<3013> 8075 +<ff01> 8076 +<ff0c> 8079 +<ff0e> 8080 +<ff3b> 8087 +<ff3d> 8088 +<ff3f> 8089 +<ff5e> 8062 +<ffe3> 8093 +endcidchar + +7 begincidrange +<2013> <2014> 8059 +<3001> <3002> 8056 +<3008> <3011> 8065 +<3014> <3015> 8063 +<ff08> <ff09> 8077 +<ff1a> <ff1f> 8081 +<ff5b> <ff5d> 8090 +endcidrange + +endcmap +CMapName currentdict /CMap defineresource pop +end +end + +%%EndResource +%%EOF
Modified: pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/cmap/TestCMapParser.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/cmap/TestCMapParser.java?rev=1625834&r1=1625833&r2=1625834&view=diff ============================================================================== --- pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/cmap/TestCMapParser.java (original) +++ pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/cmap/TestCMapParser.java Wed Sep 17 21:38:38 2014 @@ -40,7 +40,7 @@ public class TestCMapParser extends Test File inDir = new File(resourceDir); CMapParser parser = new CMapParser(); - CMap cMap = parser.parse(resourceDir, new FileInputStream(new File(inDir, "CMapTest"))); + CMap cMap = parser.parse(new FileInputStream(new File(inDir, "CMapTest"))); // char mappings byte[] bytes1 = {0, 1}; Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/CMapManager.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/CMapManager.java?rev=1625834&r1=1625833&r2=1625834&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/CMapManager.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/CMapManager.java Wed Sep 17 21:38:38 2014 @@ -31,7 +31,6 @@ import java.util.Map; */ class CMapManager { - protected static final String CMAP_RESOURCE_ROOT = "org/apache/pdfbox/resources/cmap/"; protected static Map<String, CMap> cMapCache = Collections.synchronizedMap(new HashMap<String, CMap>()); @@ -47,18 +46,13 @@ class CMapManager { return cmap; } - return parseCMap(ResourceLoader.loadResource(CMAP_RESOURCE_ROOT + cMapName), true); - } - /** - * Parse an embedded CMap. - * - * @param cMapStream the CMap to be read - * @return the parsed CMap - */ - public static CMap parseCMap(InputStream cMapStream) throws IOException - { - return parseCMap(cMapStream, true); + CMapParser parser = new CMapParser(); + CMap targetCmap = parser.parsePredefined(cMapName); + + // limit the cache to predefined CMaps + cMapCache.put(targetCmap.getName(), targetCmap); + return targetCmap; } /** @@ -67,18 +61,13 @@ class CMapManager * @param cMapStream the CMap to be read * @return the parsed CMap */ - private static CMap parseCMap(InputStream cMapStream, boolean isPredefined) throws IOException + public static CMap parseCMap(InputStream cMapStream) throws IOException { CMap targetCmap = null; if (cMapStream != null) { CMapParser parser = new CMapParser(); - targetCmap = parser.parse(CMAP_RESOURCE_ROOT, cMapStream); - // limit the cache to predefined CMaps - if (isPredefined) - { - cMapCache.put(targetCmap.getName(), targetCmap); - } + targetCmap = parser.parse(cMapStream); } return targetCmap; } Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ExternalFonts.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ExternalFonts.java?rev=1625834&r1=1625833&r2=1625834&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ExternalFonts.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ExternalFonts.java Wed Sep 17 21:38:38 2014 @@ -36,6 +36,7 @@ import org.apache.fontbox.ttf.Type1Equiv import org.apache.fontbox.ttf.TrueTypeFont; import org.apache.fontbox.type1.Type1Font; import org.apache.pdfbox.io.IOUtils; +import org.apache.pdfbox.util.ResourceLoader; /** * External font service, locates non-embedded fonts via a pluggable FontProvider. @@ -56,15 +57,15 @@ public final class ExternalFonts private static FontProvider fontProvider; /** fallback fonts, used as as a last resort */ - private static TrueTypeFont ttfFallbackFont; - private static CFFCIDFont cidFallbackFont; + private static final TrueTypeFont ttfFallbackFont; + private static final CFFCIDFont cidFallbackFont; static { try { // ttf String ttfName = "org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf"; - InputStream ttfStream = org.apache.fontbox.util.ResourceLoader.loadResource(ttfName); + InputStream ttfStream = ResourceLoader.loadResource(ttfName); if (ttfStream == null) { throw new IOException("Error loading resource: " + ttfName); @@ -74,7 +75,7 @@ public final class ExternalFonts // cff String cffName = "org/apache/pdfbox/resources/otf/AdobeBlank.otf"; - InputStream cffStream = org.apache.fontbox.util.ResourceLoader.loadResource(cffName); + InputStream cffStream = ResourceLoader.loadResource(cffName); if (cffStream == null) { throw new IOException("Error loading resource: " + cffName); Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/font/Type0FontValidator.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/font/Type0FontValidator.java?rev=1625834&r1=1625833&r2=1625834&view=diff ============================================================================== --- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/font/Type0FontValidator.java (original) +++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/font/Type0FontValidator.java Wed Sep 17 21:38:38 2014 @@ -248,7 +248,7 @@ public class Type0FontValidator extends try { // extract information from the CMap stream - CMap fontboxCMap = new CMapParser().parse(null, aCMap.getUnfilteredStream()); + CMap fontboxCMap = new CMapParser().parse(aCMap.getUnfilteredStream()); int wmValue = fontboxCMap.getWMode(); String cmnValue = fontboxCMap.getName();