first commit
This commit is contained in:
commit
4d332ef662
27586 changed files with 3281783 additions and 0 deletions
|
|
@ -0,0 +1,39 @@
|
|||
package org.apache.commons.logging;
|
||||
|
||||
public interface Log {
|
||||
void debug(Object paramObject);
|
||||
|
||||
void debug(Object paramObject, Throwable paramThrowable);
|
||||
|
||||
void error(Object paramObject);
|
||||
|
||||
void error(Object paramObject, Throwable paramThrowable);
|
||||
|
||||
void fatal(Object paramObject);
|
||||
|
||||
void fatal(Object paramObject, Throwable paramThrowable);
|
||||
|
||||
void info(Object paramObject);
|
||||
|
||||
void info(Object paramObject, Throwable paramThrowable);
|
||||
|
||||
boolean isDebugEnabled();
|
||||
|
||||
boolean isErrorEnabled();
|
||||
|
||||
boolean isFatalEnabled();
|
||||
|
||||
boolean isInfoEnabled();
|
||||
|
||||
boolean isTraceEnabled();
|
||||
|
||||
boolean isWarnEnabled();
|
||||
|
||||
void trace(Object paramObject);
|
||||
|
||||
void trace(Object paramObject, Throwable paramThrowable);
|
||||
|
||||
void warn(Object paramObject);
|
||||
|
||||
void warn(Object paramObject, Throwable paramThrowable);
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package org.apache.commons.logging;
|
||||
|
||||
public class LogConfigurationException extends RuntimeException {
|
||||
private static final long serialVersionUID = 8486587136871052495L;
|
||||
|
||||
public LogConfigurationException() {}
|
||||
|
||||
public LogConfigurationException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
public LogConfigurationException(Throwable cause) {
|
||||
this((cause == null) ? null : cause.toString(), cause);
|
||||
}
|
||||
|
||||
public LogConfigurationException(String message, Throwable cause) {
|
||||
super(message + " (Caused by " + cause + ")");
|
||||
this.cause = cause;
|
||||
}
|
||||
|
||||
protected Throwable cause = null;
|
||||
|
||||
public Throwable getCause() {
|
||||
return this.cause;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,693 @@
|
|||
package org.apache.commons.logging;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.PrintStream;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Properties;
|
||||
|
||||
public abstract class LogFactory {
|
||||
private static PrintStream diagnosticsStream = null;
|
||||
|
||||
protected static Hashtable factories = null;
|
||||
|
||||
protected static volatile LogFactory nullClassLoaderFactory = null;
|
||||
|
||||
private static final Hashtable createFactoryStore() {
|
||||
String str;
|
||||
Hashtable result = null;
|
||||
try {
|
||||
str = getSystemProperty("org.apache.commons.logging.LogFactory.HashtableImpl", null);
|
||||
} catch (SecurityException ex) {
|
||||
str = null;
|
||||
}
|
||||
if (str == null)
|
||||
str = "org.apache.commons.logging.impl.WeakHashtable";
|
||||
try {
|
||||
Class implementationClass = Class.forName(str);
|
||||
result = (Hashtable)implementationClass.newInstance();
|
||||
} catch (Throwable t) {
|
||||
handleThrowable(t);
|
||||
if (!"org.apache.commons.logging.impl.WeakHashtable".equals(str))
|
||||
if (isDiagnosticsEnabled()) {
|
||||
logDiagnostic("[ERROR] LogFactory: Load of custom hashtable failed");
|
||||
} else {
|
||||
System.err.println("[ERROR] LogFactory: Load of custom hashtable failed");
|
||||
}
|
||||
}
|
||||
if (result == null)
|
||||
result = new Hashtable();
|
||||
return result;
|
||||
}
|
||||
|
||||
private static String trim(String src) {
|
||||
if (src == null)
|
||||
return null;
|
||||
return src.trim();
|
||||
}
|
||||
|
||||
protected static void handleThrowable(Throwable t) {
|
||||
if (t instanceof ThreadDeath)
|
||||
throw (ThreadDeath)t;
|
||||
if (t instanceof VirtualMachineError)
|
||||
throw (VirtualMachineError)t;
|
||||
}
|
||||
|
||||
public static LogFactory getFactory() throws LogConfigurationException {
|
||||
ClassLoader contextClassLoader = getContextClassLoaderInternal();
|
||||
if (contextClassLoader == null)
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Context classloader is null.");
|
||||
LogFactory factory = getCachedFactory(contextClassLoader);
|
||||
if (factory != null)
|
||||
return factory;
|
||||
if (isDiagnosticsEnabled()) {
|
||||
logDiagnostic("[LOOKUP] LogFactory implementation requested for the first time for context classloader " + objectId(contextClassLoader));
|
||||
logHierarchy("[LOOKUP] ", contextClassLoader);
|
||||
}
|
||||
Properties props = getConfigurationFile(contextClassLoader, "commons-logging.properties");
|
||||
ClassLoader baseClassLoader = contextClassLoader;
|
||||
if (props != null) {
|
||||
String useTCCLStr = props.getProperty("use_tccl");
|
||||
if (useTCCLStr != null)
|
||||
if (!Boolean.valueOf(useTCCLStr).booleanValue())
|
||||
baseClassLoader = thisClassLoader;
|
||||
}
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[LOOKUP] Looking for system property [org.apache.commons.logging.LogFactory] to define the LogFactory subclass to use...");
|
||||
try {
|
||||
String factoryClass = getSystemProperty("org.apache.commons.logging.LogFactory", null);
|
||||
if (factoryClass != null) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[LOOKUP] Creating an instance of LogFactory class '" + factoryClass + "' as specified by system property " + "org.apache.commons.logging.LogFactory");
|
||||
factory = newFactory(factoryClass, baseClassLoader, contextClassLoader);
|
||||
} else if (isDiagnosticsEnabled()) {
|
||||
logDiagnostic("[LOOKUP] No system property [org.apache.commons.logging.LogFactory] defined.");
|
||||
}
|
||||
} catch (SecurityException e) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[LOOKUP] A security exception occurred while trying to create an instance of the custom factory class: [" + trim(e.getMessage()) + "]. Trying alternative implementations...");
|
||||
} catch (RuntimeException e) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[LOOKUP] An exception occurred while trying to create an instance of the custom factory class: [" + trim(e.getMessage()) + "] as specified by a system property.");
|
||||
throw e;
|
||||
}
|
||||
if (factory == null) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[LOOKUP] Looking for a resource file of name [META-INF/services/org.apache.commons.logging.LogFactory] to define the LogFactory subclass to use...");
|
||||
try {
|
||||
InputStream is = getResourceAsStream(contextClassLoader, "META-INF/services/org.apache.commons.logging.LogFactory");
|
||||
if (is != null) {
|
||||
BufferedReader bufferedReader;
|
||||
try {
|
||||
bufferedReader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
bufferedReader = new BufferedReader(new InputStreamReader(is));
|
||||
}
|
||||
String factoryClassName = bufferedReader.readLine();
|
||||
bufferedReader.close();
|
||||
if (factoryClassName != null && !"".equals(factoryClassName)) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[LOOKUP] Creating an instance of LogFactory class " + factoryClassName + " as specified by file '" + "META-INF/services/org.apache.commons.logging.LogFactory" + "' which was present in the path of the context classloader.");
|
||||
factory = newFactory(factoryClassName, baseClassLoader, contextClassLoader);
|
||||
}
|
||||
} else if (isDiagnosticsEnabled()) {
|
||||
logDiagnostic("[LOOKUP] No resource file with name 'META-INF/services/org.apache.commons.logging.LogFactory' found.");
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[LOOKUP] A security exception occurred while trying to create an instance of the custom factory class: [" + trim(ex.getMessage()) + "]. Trying alternative implementations...");
|
||||
}
|
||||
}
|
||||
if (factory == null)
|
||||
if (props != null) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[LOOKUP] Looking in properties file for entry with key 'org.apache.commons.logging.LogFactory' to define the LogFactory subclass to use...");
|
||||
String factoryClass = props.getProperty("org.apache.commons.logging.LogFactory");
|
||||
if (factoryClass != null) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[LOOKUP] Properties file specifies LogFactory subclass '" + factoryClass + "'");
|
||||
factory = newFactory(factoryClass, baseClassLoader, contextClassLoader);
|
||||
} else if (isDiagnosticsEnabled()) {
|
||||
logDiagnostic("[LOOKUP] Properties file has no entry specifying LogFactory subclass.");
|
||||
}
|
||||
} else if (isDiagnosticsEnabled()) {
|
||||
logDiagnostic("[LOOKUP] No properties file available to determine LogFactory subclass from..");
|
||||
}
|
||||
if (factory == null) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[LOOKUP] Loading the default LogFactory implementation 'org.apache.commons.logging.impl.LogFactoryImpl' via the same classloader that loaded this LogFactory class (ie not looking in the context classloader).");
|
||||
factory = newFactory("org.apache.commons.logging.impl.LogFactoryImpl", thisClassLoader, contextClassLoader);
|
||||
}
|
||||
if (factory != null) {
|
||||
cacheFactory(contextClassLoader, factory);
|
||||
if (props != null) {
|
||||
Enumeration names = props.propertyNames();
|
||||
while (names.hasMoreElements()) {
|
||||
String name = (String)names.nextElement();
|
||||
String value = props.getProperty(name);
|
||||
factory.setAttribute(name, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
return factory;
|
||||
}
|
||||
|
||||
public static Log getLog(Class clazz) throws LogConfigurationException {
|
||||
return getFactory().getInstance(clazz);
|
||||
}
|
||||
|
||||
public static Log getLog(String name) throws LogConfigurationException {
|
||||
return getFactory().getInstance(name);
|
||||
}
|
||||
|
||||
public static void release(ClassLoader classLoader) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Releasing factory for classloader " + objectId(classLoader));
|
||||
Hashtable factories = LogFactory.factories;
|
||||
synchronized (factories) {
|
||||
if (classLoader == null) {
|
||||
if (nullClassLoaderFactory != null) {
|
||||
nullClassLoaderFactory.release();
|
||||
nullClassLoaderFactory = null;
|
||||
}
|
||||
} else {
|
||||
LogFactory factory = (LogFactory)factories.get(classLoader);
|
||||
if (factory != null) {
|
||||
factory.release();
|
||||
factories.remove(classLoader);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void releaseAll() {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Releasing factory for all classloaders.");
|
||||
Hashtable factories = LogFactory.factories;
|
||||
synchronized (factories) {
|
||||
Enumeration elements = factories.elements();
|
||||
while (elements.hasMoreElements()) {
|
||||
LogFactory element = (LogFactory)elements.nextElement();
|
||||
element.release();
|
||||
}
|
||||
factories.clear();
|
||||
if (nullClassLoaderFactory != null) {
|
||||
nullClassLoaderFactory.release();
|
||||
nullClassLoaderFactory = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected static ClassLoader getClassLoader(Class clazz) {
|
||||
try {
|
||||
return clazz.getClassLoader();
|
||||
} catch (SecurityException ex) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Unable to get classloader for class '" + clazz + "' due to security restrictions - " + ex.getMessage());
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
protected static ClassLoader getContextClassLoader() throws LogConfigurationException {
|
||||
return directGetContextClassLoader();
|
||||
}
|
||||
|
||||
private static ClassLoader getContextClassLoaderInternal() throws LogConfigurationException {
|
||||
return (ClassLoader)AccessController.doPrivileged(new PrivilegedAction() {
|
||||
public Object run() {
|
||||
return LogFactory.directGetContextClassLoader();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected static ClassLoader directGetContextClassLoader() throws LogConfigurationException {
|
||||
ClassLoader classLoader = null;
|
||||
try {
|
||||
classLoader = Thread.currentThread().getContextClassLoader();
|
||||
} catch (SecurityException ex) {}
|
||||
return classLoader;
|
||||
}
|
||||
|
||||
private static LogFactory getCachedFactory(ClassLoader contextClassLoader) {
|
||||
if (contextClassLoader == null)
|
||||
return nullClassLoaderFactory;
|
||||
return (LogFactory)factories.get(contextClassLoader);
|
||||
}
|
||||
|
||||
private static void cacheFactory(ClassLoader classLoader, LogFactory factory) {
|
||||
if (factory != null)
|
||||
if (classLoader == null) {
|
||||
nullClassLoaderFactory = factory;
|
||||
} else {
|
||||
factories.put(classLoader, factory);
|
||||
}
|
||||
}
|
||||
|
||||
protected static LogFactory newFactory(String factoryClass, ClassLoader classLoader, ClassLoader contextClassLoader) throws LogConfigurationException {
|
||||
Object result = AccessController.doPrivileged(new PrivilegedAction(factoryClass, classLoader) {
|
||||
private final String val$factoryClass;
|
||||
|
||||
private final ClassLoader val$classLoader;
|
||||
|
||||
{
|
||||
this.val$factoryClass = param1String;
|
||||
this.val$classLoader = param1ClassLoader;
|
||||
}
|
||||
|
||||
public Object run() {
|
||||
return LogFactory.createFactory(this.val$factoryClass, this.val$classLoader);
|
||||
}
|
||||
});
|
||||
if (result instanceof LogConfigurationException) {
|
||||
LogConfigurationException ex = (LogConfigurationException)result;
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("An error occurred while loading the factory class:" + ex.getMessage());
|
||||
throw ex;
|
||||
}
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Created object " + objectId(result) + " to manage classloader " + objectId(contextClassLoader));
|
||||
return (LogFactory)result;
|
||||
}
|
||||
|
||||
protected static LogFactory newFactory(String factoryClass, ClassLoader classLoader) {
|
||||
return newFactory(factoryClass, classLoader, null);
|
||||
}
|
||||
|
||||
protected static Object createFactory(String factoryClass, ClassLoader classLoader) {
|
||||
Class logFactoryClass = null;
|
||||
try {
|
||||
if (classLoader != null)
|
||||
try {
|
||||
logFactoryClass = classLoader.loadClass(factoryClass);
|
||||
if (LogFactory.class.isAssignableFrom(logFactoryClass)) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Loaded class " + logFactoryClass.getName() + " from classloader " + objectId(classLoader));
|
||||
} else if (isDiagnosticsEnabled()) {
|
||||
logDiagnostic("Factory class " + logFactoryClass.getName() + " loaded from classloader " + objectId(logFactoryClass.getClassLoader()) + " does not extend '" + LogFactory.class.getName() + "' as loaded by this classloader.");
|
||||
logHierarchy("[BAD CL TREE] ", classLoader);
|
||||
}
|
||||
return logFactoryClass.newInstance();
|
||||
} catch (ClassNotFoundException ex) {
|
||||
if (classLoader == thisClassLoader) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Unable to locate any class called '" + factoryClass + "' via classloader " + objectId(classLoader));
|
||||
throw ex;
|
||||
}
|
||||
} catch (NoClassDefFoundError e) {
|
||||
if (classLoader == thisClassLoader) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Class '" + factoryClass + "' cannot be loaded" + " via classloader " + objectId(classLoader) + " - it depends on some other class that cannot be found.");
|
||||
throw e;
|
||||
}
|
||||
} catch (ClassCastException e) {
|
||||
if (classLoader == thisClassLoader) {
|
||||
boolean implementsLogFactory = implementsLogFactory(logFactoryClass);
|
||||
StringBuffer msg = new StringBuffer();
|
||||
msg.append("The application has specified that a custom LogFactory implementation ");
|
||||
msg.append("should be used but Class '");
|
||||
msg.append(factoryClass);
|
||||
msg.append("' cannot be converted to '");
|
||||
msg.append(LogFactory.class.getName());
|
||||
msg.append("'. ");
|
||||
if (implementsLogFactory) {
|
||||
msg.append("The conflict is caused by the presence of multiple LogFactory classes ");
|
||||
msg.append("in incompatible classloaders. ");
|
||||
msg.append("Background can be found in http://commons.apache.org/logging/tech.html. ");
|
||||
msg.append("If you have not explicitly specified a custom LogFactory then it is likely ");
|
||||
msg.append("that the container has set one without your knowledge. ");
|
||||
msg.append("In this case, consider using the commons-logging-adapters.jar file or ");
|
||||
msg.append("specifying the standard LogFactory from the command line. ");
|
||||
} else {
|
||||
msg.append("Please check the custom implementation. ");
|
||||
}
|
||||
msg.append("Help can be found @http://commons.apache.org/logging/troubleshooting.html.");
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic(msg.toString());
|
||||
throw new ClassCastException(msg.toString());
|
||||
}
|
||||
}
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Unable to load factory class via classloader " + objectId(classLoader) + " - trying the classloader associated with this LogFactory.");
|
||||
logFactoryClass = Class.forName(factoryClass);
|
||||
return logFactoryClass.newInstance();
|
||||
} catch (Exception e) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Unable to create LogFactory instance.");
|
||||
if (logFactoryClass != null && !LogFactory.class.isAssignableFrom(logFactoryClass))
|
||||
return new LogConfigurationException("The chosen LogFactory implementation does not extend LogFactory. Please check your configuration.", e);
|
||||
return new LogConfigurationException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean implementsLogFactory(Class logFactoryClass) {
|
||||
boolean implementsLogFactory = false;
|
||||
if (logFactoryClass != null)
|
||||
try {
|
||||
ClassLoader logFactoryClassLoader = logFactoryClass.getClassLoader();
|
||||
if (logFactoryClassLoader == null) {
|
||||
logDiagnostic("[CUSTOM LOG FACTORY] was loaded by the boot classloader");
|
||||
} else {
|
||||
logHierarchy("[CUSTOM LOG FACTORY] ", logFactoryClassLoader);
|
||||
Class factoryFromCustomLoader = Class.forName("org.apache.commons.logging.LogFactory", false, logFactoryClassLoader);
|
||||
implementsLogFactory = factoryFromCustomLoader.isAssignableFrom(logFactoryClass);
|
||||
if (implementsLogFactory) {
|
||||
logDiagnostic("[CUSTOM LOG FACTORY] " + logFactoryClass.getName() + " implements LogFactory but was loaded by an incompatible classloader.");
|
||||
} else {
|
||||
logDiagnostic("[CUSTOM LOG FACTORY] " + logFactoryClass.getName() + " does not implement LogFactory.");
|
||||
}
|
||||
}
|
||||
} catch (SecurityException e) {
|
||||
logDiagnostic("[CUSTOM LOG FACTORY] SecurityException thrown whilst trying to determine whether the compatibility was caused by a classloader conflict: " + e.getMessage());
|
||||
} catch (LinkageError e) {
|
||||
logDiagnostic("[CUSTOM LOG FACTORY] LinkageError thrown whilst trying to determine whether the compatibility was caused by a classloader conflict: " + e.getMessage());
|
||||
} catch (ClassNotFoundException e) {
|
||||
logDiagnostic("[CUSTOM LOG FACTORY] LogFactory class cannot be loaded by classloader which loaded the custom LogFactory implementation. Is the custom factory in the right classloader?");
|
||||
}
|
||||
return implementsLogFactory;
|
||||
}
|
||||
|
||||
private static InputStream getResourceAsStream(ClassLoader loader, String name) {
|
||||
return (InputStream)AccessController.doPrivileged(new PrivilegedAction(loader, name) {
|
||||
private final ClassLoader val$loader;
|
||||
|
||||
private final String val$name;
|
||||
|
||||
{
|
||||
this.val$loader = param1ClassLoader;
|
||||
this.val$name = param1String;
|
||||
}
|
||||
|
||||
public Object run() {
|
||||
if (this.val$loader != null)
|
||||
return this.val$loader.getResourceAsStream(this.val$name);
|
||||
return ClassLoader.getSystemResourceAsStream(this.val$name);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static Enumeration getResources(ClassLoader loader, String name) {
|
||||
PrivilegedAction action = new PrivilegedAction(loader, name) {
|
||||
private final ClassLoader val$loader;
|
||||
|
||||
private final String val$name;
|
||||
|
||||
{
|
||||
this.val$loader = param1ClassLoader;
|
||||
this.val$name = param1String;
|
||||
}
|
||||
|
||||
public Object run() {
|
||||
try {
|
||||
if (this.val$loader != null)
|
||||
return this.val$loader.getResources(this.val$name);
|
||||
return ClassLoader.getSystemResources(this.val$name);
|
||||
} catch (IOException e) {
|
||||
if (LogFactory.isDiagnosticsEnabled())
|
||||
LogFactory.logDiagnostic("Exception while trying to find configuration file " + this.val$name + ":" + e.getMessage());
|
||||
return null;
|
||||
} catch (NoSuchMethodError e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
Object result = AccessController.doPrivileged(action);
|
||||
return (Enumeration)result;
|
||||
}
|
||||
|
||||
private static Properties getProperties(URL url) {
|
||||
PrivilegedAction action = new PrivilegedAction(url) {
|
||||
private final URL val$url;
|
||||
|
||||
{
|
||||
this.val$url = param1URL;
|
||||
}
|
||||
|
||||
public Object run() {
|
||||
InputStream stream = null;
|
||||
try {
|
||||
URLConnection connection = this.val$url.openConnection();
|
||||
connection.setUseCaches(false);
|
||||
stream = connection.getInputStream();
|
||||
if (stream != null) {
|
||||
Properties props = new Properties();
|
||||
props.load(stream);
|
||||
stream.close();
|
||||
stream = null;
|
||||
return props;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
if (LogFactory.isDiagnosticsEnabled())
|
||||
LogFactory.logDiagnostic("Unable to read URL " + this.val$url);
|
||||
} finally {
|
||||
if (stream != null)
|
||||
try {
|
||||
stream.close();
|
||||
} catch (IOException e) {
|
||||
if (LogFactory.isDiagnosticsEnabled())
|
||||
LogFactory.logDiagnostic("Unable to close stream for URL " + this.val$url);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
};
|
||||
return (Properties)AccessController.doPrivileged(action);
|
||||
}
|
||||
|
||||
private static final Properties getConfigurationFile(ClassLoader classLoader, String fileName) {
|
||||
Properties props = null;
|
||||
double priority = 0.0D;
|
||||
URL propsUrl = null;
|
||||
try {
|
||||
Enumeration urls = getResources(classLoader, fileName);
|
||||
if (urls == null)
|
||||
return null;
|
||||
while (urls.hasMoreElements()) {
|
||||
URL url = (URL)urls.nextElement();
|
||||
Properties newProps = getProperties(url);
|
||||
if (newProps != null) {
|
||||
if (props == null) {
|
||||
propsUrl = url;
|
||||
props = newProps;
|
||||
String priorityStr = props.getProperty("priority");
|
||||
priority = 0.0D;
|
||||
if (priorityStr != null)
|
||||
priority = Double.parseDouble(priorityStr);
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[LOOKUP] Properties file found at '" + url + "'" + " with priority " + priority);
|
||||
continue;
|
||||
}
|
||||
String newPriorityStr = newProps.getProperty("priority");
|
||||
double newPriority = 0.0D;
|
||||
if (newPriorityStr != null)
|
||||
newPriority = Double.parseDouble(newPriorityStr);
|
||||
if (newPriority > priority) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[LOOKUP] Properties file at '" + url + "'" + " with priority " + newPriority + " overrides file at '" + propsUrl + "'" + " with priority " + priority);
|
||||
propsUrl = url;
|
||||
props = newProps;
|
||||
priority = newPriority;
|
||||
continue;
|
||||
}
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[LOOKUP] Properties file at '" + url + "'" + " with priority " + newPriority + " does not override file at '" + propsUrl + "'" + " with priority " + priority);
|
||||
}
|
||||
}
|
||||
} catch (SecurityException e) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("SecurityException thrown while trying to find/read config files.");
|
||||
}
|
||||
if (isDiagnosticsEnabled())
|
||||
if (props == null) {
|
||||
logDiagnostic("[LOOKUP] No properties file of name '" + fileName + "' found.");
|
||||
} else {
|
||||
logDiagnostic("[LOOKUP] Properties file of name '" + fileName + "' found at '" + propsUrl + '"');
|
||||
}
|
||||
return props;
|
||||
}
|
||||
|
||||
private static String getSystemProperty(String key, String def) throws SecurityException {
|
||||
return (String)AccessController.doPrivileged(new PrivilegedAction(key, def) {
|
||||
private final String val$key;
|
||||
|
||||
private final String val$def;
|
||||
|
||||
{
|
||||
this.val$key = param1String1;
|
||||
this.val$def = param1String2;
|
||||
}
|
||||
|
||||
public Object run() {
|
||||
return System.getProperty(this.val$key, this.val$def);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static PrintStream initDiagnostics() {
|
||||
String dest;
|
||||
try {
|
||||
dest = getSystemProperty("org.apache.commons.logging.diagnostics.dest", null);
|
||||
if (dest == null)
|
||||
return null;
|
||||
} catch (SecurityException ex) {
|
||||
return null;
|
||||
}
|
||||
if (dest.equals("STDOUT"))
|
||||
return System.out;
|
||||
if (dest.equals("STDERR"))
|
||||
return System.err;
|
||||
try {
|
||||
FileOutputStream fos = new FileOutputStream(dest, true);
|
||||
return new PrintStream(fos);
|
||||
} catch (IOException ex) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
protected static boolean isDiagnosticsEnabled() {
|
||||
return (diagnosticsStream != null);
|
||||
}
|
||||
|
||||
private static final void logDiagnostic(String msg) {
|
||||
if (diagnosticsStream != null) {
|
||||
diagnosticsStream.print(diagnosticPrefix);
|
||||
diagnosticsStream.println(msg);
|
||||
diagnosticsStream.flush();
|
||||
}
|
||||
}
|
||||
|
||||
protected static final void logRawDiagnostic(String msg) {
|
||||
if (diagnosticsStream != null) {
|
||||
diagnosticsStream.println(msg);
|
||||
diagnosticsStream.flush();
|
||||
}
|
||||
}
|
||||
|
||||
private static void logClassLoaderEnvironment(Class clazz) {
|
||||
ClassLoader classLoader;
|
||||
if (!isDiagnosticsEnabled())
|
||||
return;
|
||||
try {
|
||||
logDiagnostic("[ENV] Extension directories (java.ext.dir): " + System.getProperty("java.ext.dir"));
|
||||
logDiagnostic("[ENV] Application classpath (java.class.path): " + System.getProperty("java.class.path"));
|
||||
} catch (SecurityException ex) {
|
||||
logDiagnostic("[ENV] Security setting prevent interrogation of system classpaths.");
|
||||
}
|
||||
String className = clazz.getName();
|
||||
try {
|
||||
classLoader = getClassLoader(clazz);
|
||||
} catch (SecurityException ex) {
|
||||
logDiagnostic("[ENV] Security forbids determining the classloader for " + className);
|
||||
return;
|
||||
}
|
||||
logDiagnostic("[ENV] Class " + className + " was loaded via classloader " + objectId(classLoader));
|
||||
logHierarchy("[ENV] Ancestry of classloader which loaded " + className + " is ", classLoader);
|
||||
}
|
||||
|
||||
private static void logHierarchy(String prefix, ClassLoader classLoader) {
|
||||
ClassLoader systemClassLoader;
|
||||
if (!isDiagnosticsEnabled())
|
||||
return;
|
||||
if (classLoader != null) {
|
||||
String classLoaderString = classLoader.toString();
|
||||
logDiagnostic(prefix + objectId(classLoader) + " == '" + classLoaderString + "'");
|
||||
}
|
||||
try {
|
||||
systemClassLoader = ClassLoader.getSystemClassLoader();
|
||||
} catch (SecurityException ex) {
|
||||
logDiagnostic(prefix + "Security forbids determining the system classloader.");
|
||||
return;
|
||||
}
|
||||
if (classLoader != null) {
|
||||
StringBuffer buf = new StringBuffer(prefix + "ClassLoader tree:");
|
||||
while (true) {
|
||||
buf.append(objectId(classLoader));
|
||||
if (classLoader == systemClassLoader)
|
||||
buf.append(" (SYSTEM) ");
|
||||
try {
|
||||
classLoader = classLoader.getParent();
|
||||
} catch (SecurityException ex) {
|
||||
buf.append(" --> SECRET");
|
||||
break;
|
||||
}
|
||||
buf.append(" --> ");
|
||||
if (classLoader == null) {
|
||||
buf.append("BOOT");
|
||||
break;
|
||||
}
|
||||
}
|
||||
logDiagnostic(buf.toString());
|
||||
}
|
||||
}
|
||||
|
||||
public static String objectId(Object o) {
|
||||
if (o == null)
|
||||
return "null";
|
||||
return o.getClass().getName() + "@" + System.identityHashCode(o);
|
||||
}
|
||||
|
||||
private static final ClassLoader thisClassLoader = getClassLoader(LogFactory.class);
|
||||
|
||||
public static final String PRIORITY_KEY = "priority";
|
||||
|
||||
public static final String TCCL_KEY = "use_tccl";
|
||||
|
||||
public static final String FACTORY_PROPERTY = "org.apache.commons.logging.LogFactory";
|
||||
|
||||
public static final String FACTORY_DEFAULT = "org.apache.commons.logging.impl.LogFactoryImpl";
|
||||
|
||||
public static final String FACTORY_PROPERTIES = "commons-logging.properties";
|
||||
|
||||
protected static final String SERVICE_ID = "META-INF/services/org.apache.commons.logging.LogFactory";
|
||||
|
||||
public static final String DIAGNOSTICS_DEST_PROPERTY = "org.apache.commons.logging.diagnostics.dest";
|
||||
|
||||
private static final String diagnosticPrefix;
|
||||
|
||||
public static final String HASHTABLE_IMPLEMENTATION_PROPERTY = "org.apache.commons.logging.LogFactory.HashtableImpl";
|
||||
|
||||
private static final String WEAK_HASHTABLE_CLASSNAME = "org.apache.commons.logging.impl.WeakHashtable";
|
||||
|
||||
static {
|
||||
String str;
|
||||
try {
|
||||
ClassLoader classLoader = thisClassLoader;
|
||||
if (thisClassLoader == null) {
|
||||
str = "BOOTLOADER";
|
||||
} else {
|
||||
str = objectId(classLoader);
|
||||
}
|
||||
} catch (SecurityException e) {
|
||||
str = "UNKNOWN";
|
||||
}
|
||||
diagnosticPrefix = "[LogFactory from " + str + "] ";
|
||||
diagnosticsStream = initDiagnostics();
|
||||
logClassLoaderEnvironment(LogFactory.class);
|
||||
factories = createFactoryStore();
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("BOOTSTRAP COMPLETED");
|
||||
}
|
||||
|
||||
public abstract Object getAttribute(String paramString);
|
||||
|
||||
public abstract String[] getAttributeNames();
|
||||
|
||||
public abstract Log getInstance(Class paramClass) throws LogConfigurationException;
|
||||
|
||||
public abstract Log getInstance(String paramString) throws LogConfigurationException;
|
||||
|
||||
public abstract void release();
|
||||
|
||||
public abstract void removeAttribute(String paramString);
|
||||
|
||||
public abstract void setAttribute(String paramString, Object paramObject);
|
||||
}
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
package org.apache.commons.logging;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.Hashtable;
|
||||
import org.apache.commons.logging.impl.NoOpLog;
|
||||
|
||||
public class LogSource {
|
||||
protected static Hashtable logs = new Hashtable();
|
||||
|
||||
protected static boolean log4jIsAvailable = false;
|
||||
|
||||
protected static boolean jdk14IsAvailable = false;
|
||||
|
||||
protected static Constructor logImplctor = null;
|
||||
|
||||
static {
|
||||
try {
|
||||
log4jIsAvailable = (null != Class.forName("org.apache.log4j.Logger"));
|
||||
} catch (Throwable t) {
|
||||
log4jIsAvailable = false;
|
||||
}
|
||||
try {
|
||||
jdk14IsAvailable = (null != Class.forName("java.util.logging.Logger") && null != Class.forName("org.apache.commons.logging.impl.Jdk14Logger"));
|
||||
} catch (Throwable t) {
|
||||
jdk14IsAvailable = false;
|
||||
}
|
||||
String name = null;
|
||||
try {
|
||||
name = System.getProperty("org.apache.commons.logging.log");
|
||||
if (name == null)
|
||||
name = System.getProperty("org.apache.commons.logging.Log");
|
||||
} catch (Throwable t) {}
|
||||
if (name != null) {
|
||||
try {
|
||||
setLogImplementation(name);
|
||||
} catch (Throwable t) {
|
||||
try {
|
||||
setLogImplementation("org.apache.commons.logging.impl.NoOpLog");
|
||||
} catch (Throwable u) {}
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
if (log4jIsAvailable) {
|
||||
setLogImplementation("org.apache.commons.logging.impl.Log4JLogger");
|
||||
} else if (jdk14IsAvailable) {
|
||||
setLogImplementation("org.apache.commons.logging.impl.Jdk14Logger");
|
||||
} else {
|
||||
setLogImplementation("org.apache.commons.logging.impl.NoOpLog");
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
try {
|
||||
setLogImplementation("org.apache.commons.logging.impl.NoOpLog");
|
||||
} catch (Throwable u) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void setLogImplementation(String classname) throws LinkageError, NoSuchMethodException, SecurityException, ClassNotFoundException {
|
||||
try {
|
||||
Class logclass = Class.forName(classname);
|
||||
Class[] argtypes = new Class[1];
|
||||
argtypes[0] = "".getClass();
|
||||
logImplctor = logclass.getConstructor(argtypes);
|
||||
} catch (Throwable t) {
|
||||
logImplctor = null;
|
||||
}
|
||||
}
|
||||
|
||||
public static void setLogImplementation(Class logclass) throws LinkageError, ExceptionInInitializerError, NoSuchMethodException, SecurityException {
|
||||
Class[] argtypes = new Class[1];
|
||||
argtypes[0] = "".getClass();
|
||||
logImplctor = logclass.getConstructor(argtypes);
|
||||
}
|
||||
|
||||
public static Log getInstance(String name) {
|
||||
Log log = (Log)logs.get(name);
|
||||
if (null == log) {
|
||||
log = makeNewLogInstance(name);
|
||||
logs.put(name, log);
|
||||
}
|
||||
return log;
|
||||
}
|
||||
|
||||
public static Log getInstance(Class clazz) {
|
||||
return getInstance(clazz.getName());
|
||||
}
|
||||
|
||||
public static Log makeNewLogInstance(String name) {
|
||||
NoOpLog noOpLog;
|
||||
try {
|
||||
Object[] args = { name };
|
||||
noOpLog = (NoOpLog)logImplctor.newInstance(args);
|
||||
} catch (Throwable t) {
|
||||
noOpLog = null;
|
||||
}
|
||||
if (null == noOpLog)
|
||||
noOpLog = new NoOpLog(name);
|
||||
return noOpLog;
|
||||
}
|
||||
|
||||
public static String[] getLogNames() {
|
||||
return (String[])logs.keySet().toArray(new String[logs.size()]);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
package org.apache.commons.logging.impl;
|
||||
|
||||
import org.apache.avalon.framework.logger.Logger;
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
public class AvalonLogger implements Log {
|
||||
private static volatile Logger defaultLogger = null;
|
||||
|
||||
private final transient Logger logger;
|
||||
|
||||
public AvalonLogger(Logger logger) {
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
public AvalonLogger(String name) {
|
||||
if (defaultLogger == null)
|
||||
throw new NullPointerException("default logger has to be specified if this constructor is used!");
|
||||
this.logger = defaultLogger.getChildLogger(name);
|
||||
}
|
||||
|
||||
public Logger getLogger() {
|
||||
return this.logger;
|
||||
}
|
||||
|
||||
public static void setDefaultLogger(Logger logger) {
|
||||
defaultLogger = logger;
|
||||
}
|
||||
|
||||
public void debug(Object message, Throwable t) {
|
||||
if (getLogger().isDebugEnabled())
|
||||
getLogger().debug(String.valueOf(message), t);
|
||||
}
|
||||
|
||||
public void debug(Object message) {
|
||||
if (getLogger().isDebugEnabled())
|
||||
getLogger().debug(String.valueOf(message));
|
||||
}
|
||||
|
||||
public void error(Object message, Throwable t) {
|
||||
if (getLogger().isErrorEnabled())
|
||||
getLogger().error(String.valueOf(message), t);
|
||||
}
|
||||
|
||||
public void error(Object message) {
|
||||
if (getLogger().isErrorEnabled())
|
||||
getLogger().error(String.valueOf(message));
|
||||
}
|
||||
|
||||
public void fatal(Object message, Throwable t) {
|
||||
if (getLogger().isFatalErrorEnabled())
|
||||
getLogger().fatalError(String.valueOf(message), t);
|
||||
}
|
||||
|
||||
public void fatal(Object message) {
|
||||
if (getLogger().isFatalErrorEnabled())
|
||||
getLogger().fatalError(String.valueOf(message));
|
||||
}
|
||||
|
||||
public void info(Object message, Throwable t) {
|
||||
if (getLogger().isInfoEnabled())
|
||||
getLogger().info(String.valueOf(message), t);
|
||||
}
|
||||
|
||||
public void info(Object message) {
|
||||
if (getLogger().isInfoEnabled())
|
||||
getLogger().info(String.valueOf(message));
|
||||
}
|
||||
|
||||
public boolean isDebugEnabled() {
|
||||
return getLogger().isDebugEnabled();
|
||||
}
|
||||
|
||||
public boolean isErrorEnabled() {
|
||||
return getLogger().isErrorEnabled();
|
||||
}
|
||||
|
||||
public boolean isFatalEnabled() {
|
||||
return getLogger().isFatalErrorEnabled();
|
||||
}
|
||||
|
||||
public boolean isInfoEnabled() {
|
||||
return getLogger().isInfoEnabled();
|
||||
}
|
||||
|
||||
public boolean isTraceEnabled() {
|
||||
return getLogger().isDebugEnabled();
|
||||
}
|
||||
|
||||
public boolean isWarnEnabled() {
|
||||
return getLogger().isWarnEnabled();
|
||||
}
|
||||
|
||||
public void trace(Object message, Throwable t) {
|
||||
if (getLogger().isDebugEnabled())
|
||||
getLogger().debug(String.valueOf(message), t);
|
||||
}
|
||||
|
||||
public void trace(Object message) {
|
||||
if (getLogger().isDebugEnabled())
|
||||
getLogger().debug(String.valueOf(message));
|
||||
}
|
||||
|
||||
public void warn(Object message, Throwable t) {
|
||||
if (getLogger().isWarnEnabled())
|
||||
getLogger().warn(String.valueOf(message), t);
|
||||
}
|
||||
|
||||
public void warn(Object message) {
|
||||
if (getLogger().isWarnEnabled())
|
||||
getLogger().warn(String.valueOf(message));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,147 @@
|
|||
package org.apache.commons.logging.impl;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.io.Serializable;
|
||||
import java.io.StringWriter;
|
||||
import java.util.StringTokenizer;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.LogRecord;
|
||||
import java.util.logging.Logger;
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
public class Jdk13LumberjackLogger implements Log, Serializable {
|
||||
private static final long serialVersionUID = -8649807923527610591L;
|
||||
|
||||
protected transient Logger logger = null;
|
||||
|
||||
protected String name = null;
|
||||
|
||||
private String sourceClassName = "unknown";
|
||||
|
||||
private String sourceMethodName = "unknown";
|
||||
|
||||
private boolean classAndMethodFound = false;
|
||||
|
||||
protected static final Level dummyLevel = Level.FINE;
|
||||
|
||||
public Jdk13LumberjackLogger(String name) {
|
||||
this.name = name;
|
||||
this.logger = getLogger();
|
||||
}
|
||||
|
||||
private void log(Level level, String msg, Throwable ex) {
|
||||
if (getLogger().isLoggable(level)) {
|
||||
LogRecord record = new LogRecord(level, msg);
|
||||
if (!this.classAndMethodFound)
|
||||
getClassAndMethod();
|
||||
record.setSourceClassName(this.sourceClassName);
|
||||
record.setSourceMethodName(this.sourceMethodName);
|
||||
if (ex != null)
|
||||
record.setThrown(ex);
|
||||
getLogger().log(record);
|
||||
}
|
||||
}
|
||||
|
||||
private void getClassAndMethod() {
|
||||
try {
|
||||
Throwable throwable = new Throwable();
|
||||
throwable.fillInStackTrace();
|
||||
StringWriter stringWriter = new StringWriter();
|
||||
PrintWriter printWriter = new PrintWriter(stringWriter);
|
||||
throwable.printStackTrace(printWriter);
|
||||
String traceString = stringWriter.getBuffer().toString();
|
||||
StringTokenizer tokenizer = new StringTokenizer(traceString, "\n");
|
||||
tokenizer.nextToken();
|
||||
String line = tokenizer.nextToken();
|
||||
while (line.indexOf(getClass().getName()) == -1)
|
||||
line = tokenizer.nextToken();
|
||||
while (line.indexOf(getClass().getName()) >= 0)
|
||||
line = tokenizer.nextToken();
|
||||
int start = line.indexOf("at ") + 3;
|
||||
int end = line.indexOf('(');
|
||||
String temp = line.substring(start, end);
|
||||
int lastPeriod = temp.lastIndexOf('.');
|
||||
this.sourceClassName = temp.substring(0, lastPeriod);
|
||||
this.sourceMethodName = temp.substring(lastPeriod + 1);
|
||||
} catch (Exception ex) {}
|
||||
this.classAndMethodFound = true;
|
||||
}
|
||||
|
||||
public void debug(Object message) {
|
||||
log(Level.FINE, String.valueOf(message), null);
|
||||
}
|
||||
|
||||
public void debug(Object message, Throwable exception) {
|
||||
log(Level.FINE, String.valueOf(message), exception);
|
||||
}
|
||||
|
||||
public void error(Object message) {
|
||||
log(Level.SEVERE, String.valueOf(message), null);
|
||||
}
|
||||
|
||||
public void error(Object message, Throwable exception) {
|
||||
log(Level.SEVERE, String.valueOf(message), exception);
|
||||
}
|
||||
|
||||
public void fatal(Object message) {
|
||||
log(Level.SEVERE, String.valueOf(message), null);
|
||||
}
|
||||
|
||||
public void fatal(Object message, Throwable exception) {
|
||||
log(Level.SEVERE, String.valueOf(message), exception);
|
||||
}
|
||||
|
||||
public Logger getLogger() {
|
||||
if (this.logger == null)
|
||||
this.logger = Logger.getLogger(this.name);
|
||||
return this.logger;
|
||||
}
|
||||
|
||||
public void info(Object message) {
|
||||
log(Level.INFO, String.valueOf(message), null);
|
||||
}
|
||||
|
||||
public void info(Object message, Throwable exception) {
|
||||
log(Level.INFO, String.valueOf(message), exception);
|
||||
}
|
||||
|
||||
public boolean isDebugEnabled() {
|
||||
return getLogger().isLoggable(Level.FINE);
|
||||
}
|
||||
|
||||
public boolean isErrorEnabled() {
|
||||
return getLogger().isLoggable(Level.SEVERE);
|
||||
}
|
||||
|
||||
public boolean isFatalEnabled() {
|
||||
return getLogger().isLoggable(Level.SEVERE);
|
||||
}
|
||||
|
||||
public boolean isInfoEnabled() {
|
||||
return getLogger().isLoggable(Level.INFO);
|
||||
}
|
||||
|
||||
public boolean isTraceEnabled() {
|
||||
return getLogger().isLoggable(Level.FINEST);
|
||||
}
|
||||
|
||||
public boolean isWarnEnabled() {
|
||||
return getLogger().isLoggable(Level.WARNING);
|
||||
}
|
||||
|
||||
public void trace(Object message) {
|
||||
log(Level.FINEST, String.valueOf(message), null);
|
||||
}
|
||||
|
||||
public void trace(Object message, Throwable exception) {
|
||||
log(Level.FINEST, String.valueOf(message), exception);
|
||||
}
|
||||
|
||||
public void warn(Object message) {
|
||||
log(Level.WARNING, String.valueOf(message), null);
|
||||
}
|
||||
|
||||
public void warn(Object message, Throwable exception) {
|
||||
log(Level.WARNING, String.valueOf(message), exception);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
package org.apache.commons.logging.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
public class Jdk14Logger implements Log, Serializable {
|
||||
private static final long serialVersionUID = 4784713551416303804L;
|
||||
|
||||
protected static final Level dummyLevel = Level.FINE;
|
||||
|
||||
public Jdk14Logger(String name) {
|
||||
this.name = name;
|
||||
this.logger = getLogger();
|
||||
}
|
||||
|
||||
protected transient Logger logger = null;
|
||||
|
||||
protected String name = null;
|
||||
|
||||
protected void log(Level level, String msg, Throwable ex) {
|
||||
Logger logger = getLogger();
|
||||
if (logger.isLoggable(level)) {
|
||||
Throwable dummyException = new Throwable();
|
||||
StackTraceElement[] locations = dummyException.getStackTrace();
|
||||
String cname = this.name;
|
||||
String method = "unknown";
|
||||
if (locations != null && locations.length > 2) {
|
||||
StackTraceElement caller = locations[2];
|
||||
method = caller.getMethodName();
|
||||
}
|
||||
if (ex == null) {
|
||||
logger.logp(level, cname, method, msg);
|
||||
} else {
|
||||
logger.logp(level, cname, method, msg, ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void debug(Object message) {
|
||||
log(Level.FINE, String.valueOf(message), null);
|
||||
}
|
||||
|
||||
public void debug(Object message, Throwable exception) {
|
||||
log(Level.FINE, String.valueOf(message), exception);
|
||||
}
|
||||
|
||||
public void error(Object message) {
|
||||
log(Level.SEVERE, String.valueOf(message), null);
|
||||
}
|
||||
|
||||
public void error(Object message, Throwable exception) {
|
||||
log(Level.SEVERE, String.valueOf(message), exception);
|
||||
}
|
||||
|
||||
public void fatal(Object message) {
|
||||
log(Level.SEVERE, String.valueOf(message), null);
|
||||
}
|
||||
|
||||
public void fatal(Object message, Throwable exception) {
|
||||
log(Level.SEVERE, String.valueOf(message), exception);
|
||||
}
|
||||
|
||||
public Logger getLogger() {
|
||||
if (this.logger == null)
|
||||
this.logger = Logger.getLogger(this.name);
|
||||
return this.logger;
|
||||
}
|
||||
|
||||
public void info(Object message) {
|
||||
log(Level.INFO, String.valueOf(message), null);
|
||||
}
|
||||
|
||||
public void info(Object message, Throwable exception) {
|
||||
log(Level.INFO, String.valueOf(message), exception);
|
||||
}
|
||||
|
||||
public boolean isDebugEnabled() {
|
||||
return getLogger().isLoggable(Level.FINE);
|
||||
}
|
||||
|
||||
public boolean isErrorEnabled() {
|
||||
return getLogger().isLoggable(Level.SEVERE);
|
||||
}
|
||||
|
||||
public boolean isFatalEnabled() {
|
||||
return getLogger().isLoggable(Level.SEVERE);
|
||||
}
|
||||
|
||||
public boolean isInfoEnabled() {
|
||||
return getLogger().isLoggable(Level.INFO);
|
||||
}
|
||||
|
||||
public boolean isTraceEnabled() {
|
||||
return getLogger().isLoggable(Level.FINEST);
|
||||
}
|
||||
|
||||
public boolean isWarnEnabled() {
|
||||
return getLogger().isLoggable(Level.WARNING);
|
||||
}
|
||||
|
||||
public void trace(Object message) {
|
||||
log(Level.FINEST, String.valueOf(message), null);
|
||||
}
|
||||
|
||||
public void trace(Object message, Throwable exception) {
|
||||
log(Level.FINEST, String.valueOf(message), exception);
|
||||
}
|
||||
|
||||
public void warn(Object message) {
|
||||
log(Level.WARNING, String.valueOf(message), null);
|
||||
}
|
||||
|
||||
public void warn(Object message, Throwable exception) {
|
||||
log(Level.WARNING, String.valueOf(message), exception);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
package org.apache.commons.logging.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.log4j.Level;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.log4j.Priority;
|
||||
|
||||
public class Log4JLogger implements Log, Serializable {
|
||||
private static final long serialVersionUID = 5160705895411730424L;
|
||||
|
||||
private static final String FQCN = Log4JLogger.class.getName();
|
||||
|
||||
private volatile transient Logger logger = null;
|
||||
|
||||
private final String name;
|
||||
|
||||
private static final Priority traceLevel;
|
||||
|
||||
static {
|
||||
Level level;
|
||||
if (!Priority.class.isAssignableFrom(Level.class))
|
||||
throw new InstantiationError("Log4J 1.2 not available");
|
||||
try {
|
||||
Priority _traceLevel = (Priority)Level.class.getDeclaredField("TRACE").get(null);
|
||||
} catch (Exception ex) {
|
||||
level = Level.DEBUG;
|
||||
}
|
||||
traceLevel = (Priority)level;
|
||||
}
|
||||
|
||||
public Log4JLogger() {
|
||||
this.name = null;
|
||||
}
|
||||
|
||||
public Log4JLogger(String name) {
|
||||
this.name = name;
|
||||
this.logger = getLogger();
|
||||
}
|
||||
|
||||
public Log4JLogger(Logger logger) {
|
||||
if (logger == null)
|
||||
throw new IllegalArgumentException("Warning - null logger in constructor; possible log4j misconfiguration.");
|
||||
this.name = logger.getName();
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
public void trace(Object message) {
|
||||
getLogger().log(FQCN, traceLevel, message, null);
|
||||
}
|
||||
|
||||
public void trace(Object message, Throwable t) {
|
||||
getLogger().log(FQCN, traceLevel, message, t);
|
||||
}
|
||||
|
||||
public void debug(Object message) {
|
||||
getLogger().log(FQCN, (Priority)Level.DEBUG, message, null);
|
||||
}
|
||||
|
||||
public void debug(Object message, Throwable t) {
|
||||
getLogger().log(FQCN, (Priority)Level.DEBUG, message, t);
|
||||
}
|
||||
|
||||
public void info(Object message) {
|
||||
getLogger().log(FQCN, (Priority)Level.INFO, message, null);
|
||||
}
|
||||
|
||||
public void info(Object message, Throwable t) {
|
||||
getLogger().log(FQCN, (Priority)Level.INFO, message, t);
|
||||
}
|
||||
|
||||
public void warn(Object message) {
|
||||
getLogger().log(FQCN, (Priority)Level.WARN, message, null);
|
||||
}
|
||||
|
||||
public void warn(Object message, Throwable t) {
|
||||
getLogger().log(FQCN, (Priority)Level.WARN, message, t);
|
||||
}
|
||||
|
||||
public void error(Object message) {
|
||||
getLogger().log(FQCN, (Priority)Level.ERROR, message, null);
|
||||
}
|
||||
|
||||
public void error(Object message, Throwable t) {
|
||||
getLogger().log(FQCN, (Priority)Level.ERROR, message, t);
|
||||
}
|
||||
|
||||
public void fatal(Object message) {
|
||||
getLogger().log(FQCN, (Priority)Level.FATAL, message, null);
|
||||
}
|
||||
|
||||
public void fatal(Object message, Throwable t) {
|
||||
getLogger().log(FQCN, (Priority)Level.FATAL, message, t);
|
||||
}
|
||||
|
||||
public Logger getLogger() {
|
||||
Logger result = this.logger;
|
||||
if (result == null)
|
||||
synchronized (this) {
|
||||
result = this.logger;
|
||||
if (result == null)
|
||||
this.logger = result = Logger.getLogger(this.name);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public boolean isDebugEnabled() {
|
||||
return getLogger().isDebugEnabled();
|
||||
}
|
||||
|
||||
public boolean isErrorEnabled() {
|
||||
return getLogger().isEnabledFor((Priority)Level.ERROR);
|
||||
}
|
||||
|
||||
public boolean isFatalEnabled() {
|
||||
return getLogger().isEnabledFor((Priority)Level.FATAL);
|
||||
}
|
||||
|
||||
public boolean isInfoEnabled() {
|
||||
return getLogger().isInfoEnabled();
|
||||
}
|
||||
|
||||
public boolean isTraceEnabled() {
|
||||
return getLogger().isEnabledFor(traceLevel);
|
||||
}
|
||||
|
||||
public boolean isWarnEnabled() {
|
||||
return getLogger().isEnabledFor((Priority)Level.WARN);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,587 @@
|
|||
package org.apache.commons.logging.impl;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
import java.io.Writer;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.URL;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.util.Hashtable;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogConfigurationException;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
public class LogFactoryImpl extends LogFactory {
|
||||
private static final String LOGGING_IMPL_LOG4J_LOGGER = "org.apache.commons.logging.impl.Log4JLogger";
|
||||
|
||||
private static final String LOGGING_IMPL_JDK14_LOGGER = "org.apache.commons.logging.impl.Jdk14Logger";
|
||||
|
||||
private static final String LOGGING_IMPL_LUMBERJACK_LOGGER = "org.apache.commons.logging.impl.Jdk13LumberjackLogger";
|
||||
|
||||
private static final String LOGGING_IMPL_SIMPLE_LOGGER = "org.apache.commons.logging.impl.SimpleLog";
|
||||
|
||||
private static final String PKG_IMPL = "org.apache.commons.logging.impl.";
|
||||
|
||||
private static final int PKG_LEN = "org.apache.commons.logging.impl.".length();
|
||||
|
||||
public static final String LOG_PROPERTY = "org.apache.commons.logging.Log";
|
||||
|
||||
protected static final String LOG_PROPERTY_OLD = "org.apache.commons.logging.log";
|
||||
|
||||
public static final String ALLOW_FLAWED_CONTEXT_PROPERTY = "org.apache.commons.logging.Log.allowFlawedContext";
|
||||
|
||||
public static final String ALLOW_FLAWED_DISCOVERY_PROPERTY = "org.apache.commons.logging.Log.allowFlawedDiscovery";
|
||||
|
||||
public static final String ALLOW_FLAWED_HIERARCHY_PROPERTY = "org.apache.commons.logging.Log.allowFlawedHierarchy";
|
||||
|
||||
public LogFactoryImpl() {
|
||||
initDiagnostics();
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Instance created.");
|
||||
}
|
||||
|
||||
private static final String[] classesToDiscover = new String[] { "org.apache.commons.logging.impl.Log4JLogger", "org.apache.commons.logging.impl.Jdk14Logger", "org.apache.commons.logging.impl.Jdk13LumberjackLogger", "org.apache.commons.logging.impl.SimpleLog" };
|
||||
|
||||
private boolean useTCCL = true;
|
||||
|
||||
private String diagnosticPrefix;
|
||||
|
||||
protected Hashtable attributes = new Hashtable();
|
||||
|
||||
protected Hashtable instances = new Hashtable();
|
||||
|
||||
private String logClassName;
|
||||
|
||||
protected Constructor logConstructor = null;
|
||||
|
||||
protected Class[] logConstructorSignature = new Class[] { String.class };
|
||||
|
||||
protected Method logMethod = null;
|
||||
|
||||
protected Class[] logMethodSignature = new Class[] { LogFactory.class };
|
||||
|
||||
private boolean allowFlawedContext;
|
||||
|
||||
private boolean allowFlawedDiscovery;
|
||||
|
||||
private boolean allowFlawedHierarchy;
|
||||
|
||||
public Object getAttribute(String name) {
|
||||
return this.attributes.get(name);
|
||||
}
|
||||
|
||||
public String[] getAttributeNames() {
|
||||
return (String[])this.attributes.keySet().toArray(new String[this.attributes.size()]);
|
||||
}
|
||||
|
||||
public Log getInstance(Class clazz) throws LogConfigurationException {
|
||||
return getInstance(clazz.getName());
|
||||
}
|
||||
|
||||
public Log getInstance(String name) throws LogConfigurationException {
|
||||
Log instance = (Log)this.instances.get(name);
|
||||
if (instance == null) {
|
||||
instance = newInstance(name);
|
||||
this.instances.put(name, instance);
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void release() {
|
||||
logDiagnostic("Releasing all known loggers");
|
||||
this.instances.clear();
|
||||
}
|
||||
|
||||
public void removeAttribute(String name) {
|
||||
this.attributes.remove(name);
|
||||
}
|
||||
|
||||
public void setAttribute(String name, Object value) {
|
||||
if (this.logConstructor != null)
|
||||
logDiagnostic("setAttribute: call too late; configuration already performed.");
|
||||
if (value == null) {
|
||||
this.attributes.remove(name);
|
||||
} else {
|
||||
this.attributes.put(name, value);
|
||||
}
|
||||
if (name.equals("use_tccl"))
|
||||
this.useTCCL = (value != null && Boolean.valueOf(value.toString()).booleanValue());
|
||||
}
|
||||
|
||||
protected static ClassLoader getContextClassLoader() throws LogConfigurationException {
|
||||
return LogFactory.getContextClassLoader();
|
||||
}
|
||||
|
||||
protected static boolean isDiagnosticsEnabled() {
|
||||
return LogFactory.isDiagnosticsEnabled();
|
||||
}
|
||||
|
||||
protected static ClassLoader getClassLoader(Class clazz) {
|
||||
return LogFactory.getClassLoader(clazz);
|
||||
}
|
||||
|
||||
private void initDiagnostics() {
|
||||
String str;
|
||||
Class clazz = getClass();
|
||||
ClassLoader classLoader = getClassLoader(clazz);
|
||||
try {
|
||||
if (classLoader == null) {
|
||||
str = "BOOTLOADER";
|
||||
} else {
|
||||
str = objectId(classLoader);
|
||||
}
|
||||
} catch (SecurityException e) {
|
||||
str = "UNKNOWN";
|
||||
}
|
||||
this.diagnosticPrefix = "[LogFactoryImpl@" + System.identityHashCode(this) + " from " + str + "] ";
|
||||
}
|
||||
|
||||
protected void logDiagnostic(String msg) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logRawDiagnostic(this.diagnosticPrefix + msg);
|
||||
}
|
||||
|
||||
protected String getLogClassName() {
|
||||
if (this.logClassName == null)
|
||||
discoverLogImplementation(getClass().getName());
|
||||
return this.logClassName;
|
||||
}
|
||||
|
||||
protected Constructor getLogConstructor() throws LogConfigurationException {
|
||||
if (this.logConstructor == null)
|
||||
discoverLogImplementation(getClass().getName());
|
||||
return this.logConstructor;
|
||||
}
|
||||
|
||||
protected boolean isJdk13LumberjackAvailable() {
|
||||
return isLogLibraryAvailable("Jdk13Lumberjack", "org.apache.commons.logging.impl.Jdk13LumberjackLogger");
|
||||
}
|
||||
|
||||
protected boolean isJdk14Available() {
|
||||
return isLogLibraryAvailable("Jdk14", "org.apache.commons.logging.impl.Jdk14Logger");
|
||||
}
|
||||
|
||||
protected boolean isLog4JAvailable() {
|
||||
return isLogLibraryAvailable("Log4J", "org.apache.commons.logging.impl.Log4JLogger");
|
||||
}
|
||||
|
||||
protected Log newInstance(String name) throws LogConfigurationException {
|
||||
try {
|
||||
Log instance;
|
||||
if (this.logConstructor == null) {
|
||||
instance = discoverLogImplementation(name);
|
||||
} else {
|
||||
Object[] params = { name };
|
||||
instance = (Log)this.logConstructor.newInstance(params);
|
||||
}
|
||||
if (this.logMethod != null) {
|
||||
Object[] params = { this };
|
||||
this.logMethod.invoke(instance, params);
|
||||
}
|
||||
return instance;
|
||||
} catch (LogConfigurationException lce) {
|
||||
throw lce;
|
||||
} catch (InvocationTargetException e) {
|
||||
Throwable c = e.getTargetException();
|
||||
throw new LogConfigurationException((c == null) ? e : c);
|
||||
} catch (Throwable t) {
|
||||
handleThrowable(t);
|
||||
throw new LogConfigurationException(t);
|
||||
}
|
||||
}
|
||||
|
||||
private static ClassLoader getContextClassLoaderInternal() throws LogConfigurationException {
|
||||
return (ClassLoader)AccessController.doPrivileged(new PrivilegedAction() {
|
||||
public Object run() {
|
||||
return LogFactoryImpl.directGetContextClassLoader();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static String getSystemProperty(String key, String def) throws SecurityException {
|
||||
return (String)AccessController.doPrivileged(new PrivilegedAction(key, def) {
|
||||
private final String val$key;
|
||||
|
||||
private final String val$def;
|
||||
|
||||
{
|
||||
this.val$key = param1String1;
|
||||
this.val$def = param1String2;
|
||||
}
|
||||
|
||||
public Object run() {
|
||||
return System.getProperty(this.val$key, this.val$def);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private ClassLoader getParentClassLoader(ClassLoader cl) {
|
||||
try {
|
||||
return (ClassLoader)AccessController.doPrivileged(new PrivilegedAction(this, cl) {
|
||||
private final ClassLoader val$cl;
|
||||
|
||||
private final LogFactoryImpl this$0;
|
||||
|
||||
{
|
||||
this.this$0 = this$0;
|
||||
this.val$cl = param1ClassLoader;
|
||||
}
|
||||
|
||||
public Object run() {
|
||||
return this.val$cl.getParent();
|
||||
}
|
||||
});
|
||||
} catch (SecurityException ex) {
|
||||
logDiagnostic("[SECURITY] Unable to obtain parent classloader");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isLogLibraryAvailable(String name, String classname) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Checking for '" + name + "'.");
|
||||
try {
|
||||
Log log = createLogFromClass(classname, getClass().getName(), false);
|
||||
if (log == null) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Did not find '" + name + "'.");
|
||||
return false;
|
||||
}
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Found '" + name + "'.");
|
||||
return true;
|
||||
} catch (LogConfigurationException e) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Logging system '" + name + "' is available but not useable.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private String getConfigurationValue(String property) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[ENV] Trying to get configuration for item " + property);
|
||||
Object valueObj = getAttribute(property);
|
||||
if (valueObj != null) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[ENV] Found LogFactory attribute [" + valueObj + "] for " + property);
|
||||
return valueObj.toString();
|
||||
}
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[ENV] No LogFactory attribute found for " + property);
|
||||
try {
|
||||
String value = getSystemProperty(property, null);
|
||||
if (value != null) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[ENV] Found system property [" + value + "] for " + property);
|
||||
return value;
|
||||
}
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[ENV] No system property found for property " + property);
|
||||
} catch (SecurityException e) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[ENV] Security prevented reading system property " + property);
|
||||
}
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[ENV] No configuration defined for item " + property);
|
||||
return null;
|
||||
}
|
||||
|
||||
private boolean getBooleanConfiguration(String key, boolean dflt) {
|
||||
String val = getConfigurationValue(key);
|
||||
if (val == null)
|
||||
return dflt;
|
||||
return Boolean.valueOf(val).booleanValue();
|
||||
}
|
||||
|
||||
private void initConfiguration() {
|
||||
this.allowFlawedContext = getBooleanConfiguration("org.apache.commons.logging.Log.allowFlawedContext", true);
|
||||
this.allowFlawedDiscovery = getBooleanConfiguration("org.apache.commons.logging.Log.allowFlawedDiscovery", true);
|
||||
this.allowFlawedHierarchy = getBooleanConfiguration("org.apache.commons.logging.Log.allowFlawedHierarchy", true);
|
||||
}
|
||||
|
||||
private Log discoverLogImplementation(String logCategory) throws LogConfigurationException {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Discovering a Log implementation...");
|
||||
initConfiguration();
|
||||
Log result = null;
|
||||
String specifiedLogClassName = findUserSpecifiedLogClassName();
|
||||
if (specifiedLogClassName != null) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Attempting to load user-specified log class '" + specifiedLogClassName + "'...");
|
||||
result = createLogFromClass(specifiedLogClassName, logCategory, true);
|
||||
if (result == null) {
|
||||
StringBuffer messageBuffer = new StringBuffer("User-specified log class '");
|
||||
messageBuffer.append(specifiedLogClassName);
|
||||
messageBuffer.append("' cannot be found or is not useable.");
|
||||
informUponSimilarName(messageBuffer, specifiedLogClassName, "org.apache.commons.logging.impl.Log4JLogger");
|
||||
informUponSimilarName(messageBuffer, specifiedLogClassName, "org.apache.commons.logging.impl.Jdk14Logger");
|
||||
informUponSimilarName(messageBuffer, specifiedLogClassName, "org.apache.commons.logging.impl.Jdk13LumberjackLogger");
|
||||
informUponSimilarName(messageBuffer, specifiedLogClassName, "org.apache.commons.logging.impl.SimpleLog");
|
||||
throw new LogConfigurationException(messageBuffer.toString());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("No user-specified Log implementation; performing discovery using the standard supported logging implementations...");
|
||||
for (int i = 0; i < classesToDiscover.length && result == null; i++)
|
||||
result = createLogFromClass(classesToDiscover[i], logCategory, true);
|
||||
if (result == null)
|
||||
throw new LogConfigurationException("No suitable Log implementation");
|
||||
return result;
|
||||
}
|
||||
|
||||
private void informUponSimilarName(StringBuffer messageBuffer, String name, String candidate) {
|
||||
if (name.equals(candidate))
|
||||
return;
|
||||
if (name.regionMatches(true, 0, candidate, 0, PKG_LEN + 5)) {
|
||||
messageBuffer.append(" Did you mean '");
|
||||
messageBuffer.append(candidate);
|
||||
messageBuffer.append("'?");
|
||||
}
|
||||
}
|
||||
|
||||
private String findUserSpecifiedLogClassName() {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Trying to get log class from attribute 'org.apache.commons.logging.Log'");
|
||||
String specifiedClass = (String)getAttribute("org.apache.commons.logging.Log");
|
||||
if (specifiedClass == null) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Trying to get log class from attribute 'org.apache.commons.logging.log'");
|
||||
specifiedClass = (String)getAttribute("org.apache.commons.logging.log");
|
||||
}
|
||||
if (specifiedClass == null) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Trying to get log class from system property 'org.apache.commons.logging.Log'");
|
||||
try {
|
||||
specifiedClass = getSystemProperty("org.apache.commons.logging.Log", null);
|
||||
} catch (SecurityException e) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("No access allowed to system property 'org.apache.commons.logging.Log' - " + e.getMessage());
|
||||
}
|
||||
}
|
||||
if (specifiedClass == null) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Trying to get log class from system property 'org.apache.commons.logging.log'");
|
||||
try {
|
||||
specifiedClass = getSystemProperty("org.apache.commons.logging.log", null);
|
||||
} catch (SecurityException e) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("No access allowed to system property 'org.apache.commons.logging.log' - " + e.getMessage());
|
||||
}
|
||||
}
|
||||
if (specifiedClass != null)
|
||||
specifiedClass = specifiedClass.trim();
|
||||
return specifiedClass;
|
||||
}
|
||||
|
||||
private Log createLogFromClass(String logAdapterClassName, String logCategory, boolean affectState) throws LogConfigurationException {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Attempting to instantiate '" + logAdapterClassName + "'");
|
||||
Object[] params = { logCategory };
|
||||
Log logAdapter = null;
|
||||
Constructor constructor = null;
|
||||
Class logAdapterClass = null;
|
||||
ClassLoader currentCL = getBaseClassLoader();
|
||||
while (true) {
|
||||
logDiagnostic("Trying to load '" + logAdapterClassName + "' from classloader " + objectId(currentCL));
|
||||
try {
|
||||
Class clazz;
|
||||
if (isDiagnosticsEnabled()) {
|
||||
URL url;
|
||||
String resourceName = logAdapterClassName.replace('.', '/') + ".class";
|
||||
if (currentCL != null) {
|
||||
url = currentCL.getResource(resourceName);
|
||||
} else {
|
||||
url = ClassLoader.getSystemResource(resourceName + ".class");
|
||||
}
|
||||
if (url == null) {
|
||||
logDiagnostic("Class '" + logAdapterClassName + "' [" + resourceName + "] cannot be found.");
|
||||
} else {
|
||||
logDiagnostic("Class '" + logAdapterClassName + "' was found at '" + url + "'");
|
||||
}
|
||||
}
|
||||
try {
|
||||
clazz = Class.forName(logAdapterClassName, true, currentCL);
|
||||
} catch (ClassNotFoundException originalClassNotFoundException) {
|
||||
String msg = originalClassNotFoundException.getMessage();
|
||||
logDiagnostic("The log adapter '" + logAdapterClassName + "' is not available via classloader " + objectId(currentCL) + ": " + msg.trim());
|
||||
try {
|
||||
clazz = Class.forName(logAdapterClassName);
|
||||
} catch (ClassNotFoundException secondaryClassNotFoundException) {
|
||||
msg = secondaryClassNotFoundException.getMessage();
|
||||
logDiagnostic("The log adapter '" + logAdapterClassName + "' is not available via the LogFactoryImpl class classloader: " + msg.trim());
|
||||
break;
|
||||
}
|
||||
}
|
||||
constructor = clazz.getConstructor(this.logConstructorSignature);
|
||||
Object o = constructor.newInstance(params);
|
||||
if (o instanceof Log) {
|
||||
logAdapterClass = clazz;
|
||||
logAdapter = (Log)o;
|
||||
break;
|
||||
}
|
||||
handleFlawedHierarchy(currentCL, clazz);
|
||||
} catch (NoClassDefFoundError e) {
|
||||
String msg = e.getMessage();
|
||||
logDiagnostic("The log adapter '" + logAdapterClassName + "' is missing dependencies when loaded via classloader " + objectId(currentCL) + ": " + msg.trim());
|
||||
break;
|
||||
} catch (ExceptionInInitializerError e) {
|
||||
String msg = e.getMessage();
|
||||
logDiagnostic("The log adapter '" + logAdapterClassName + "' is unable to initialize itself when loaded via classloader " + objectId(currentCL) + ": " + msg.trim());
|
||||
break;
|
||||
} catch (LogConfigurationException e) {
|
||||
throw e;
|
||||
} catch (Throwable t) {
|
||||
handleThrowable(t);
|
||||
handleFlawedDiscovery(logAdapterClassName, currentCL, t);
|
||||
}
|
||||
if (currentCL == null)
|
||||
break;
|
||||
currentCL = getParentClassLoader(currentCL);
|
||||
}
|
||||
if (logAdapterClass != null && affectState) {
|
||||
this.logClassName = logAdapterClassName;
|
||||
this.logConstructor = constructor;
|
||||
try {
|
||||
this.logMethod = logAdapterClass.getMethod("setLogFactory", this.logMethodSignature);
|
||||
logDiagnostic("Found method setLogFactory(LogFactory) in '" + logAdapterClassName + "'");
|
||||
} catch (Throwable t) {
|
||||
handleThrowable(t);
|
||||
this.logMethod = null;
|
||||
logDiagnostic("[INFO] '" + logAdapterClassName + "' from classloader " + objectId(currentCL) + " does not declare optional method " + "setLogFactory(LogFactory)");
|
||||
}
|
||||
logDiagnostic("Log adapter '" + logAdapterClassName + "' from classloader " + objectId(logAdapterClass.getClassLoader()) + " has been selected for use.");
|
||||
}
|
||||
return logAdapter;
|
||||
}
|
||||
|
||||
private ClassLoader getBaseClassLoader() throws LogConfigurationException {
|
||||
ClassLoader thisClassLoader = getClassLoader(LogFactoryImpl.class);
|
||||
if (!this.useTCCL)
|
||||
return thisClassLoader;
|
||||
ClassLoader contextClassLoader = getContextClassLoaderInternal();
|
||||
ClassLoader baseClassLoader = getLowestClassLoader(contextClassLoader, thisClassLoader);
|
||||
if (baseClassLoader == null) {
|
||||
if (this.allowFlawedContext) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("[WARNING] the context classloader is not part of a parent-child relationship with the classloader that loaded LogFactoryImpl.");
|
||||
return contextClassLoader;
|
||||
}
|
||||
throw new LogConfigurationException("Bad classloader hierarchy; LogFactoryImpl was loaded via a classloader that is not related to the current context classloader.");
|
||||
}
|
||||
if (baseClassLoader != contextClassLoader)
|
||||
if (this.allowFlawedContext) {
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic("Warning: the context classloader is an ancestor of the classloader that loaded LogFactoryImpl; it should be the same or a descendant. The application using commons-logging should ensure the context classloader is used correctly.");
|
||||
} else {
|
||||
throw new LogConfigurationException("Bad classloader hierarchy; LogFactoryImpl was loaded via a classloader that is not related to the current context classloader.");
|
||||
}
|
||||
return baseClassLoader;
|
||||
}
|
||||
|
||||
private ClassLoader getLowestClassLoader(ClassLoader c1, ClassLoader c2) {
|
||||
if (c1 == null)
|
||||
return c2;
|
||||
if (c2 == null)
|
||||
return c1;
|
||||
ClassLoader current = c1;
|
||||
while (current != null) {
|
||||
if (current == c2)
|
||||
return c1;
|
||||
current = getParentClassLoader(current);
|
||||
}
|
||||
current = c2;
|
||||
while (current != null) {
|
||||
if (current == c1)
|
||||
return c2;
|
||||
current = getParentClassLoader(current);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void handleFlawedDiscovery(String logAdapterClassName, ClassLoader classLoader, Throwable discoveryFlaw) {
|
||||
if (isDiagnosticsEnabled()) {
|
||||
logDiagnostic("Could not instantiate Log '" + logAdapterClassName + "' -- " + discoveryFlaw.getClass().getName() + ": " + discoveryFlaw.getLocalizedMessage());
|
||||
if (discoveryFlaw instanceof InvocationTargetException) {
|
||||
InvocationTargetException ite = (InvocationTargetException)discoveryFlaw;
|
||||
Throwable cause = ite.getTargetException();
|
||||
if (cause != null) {
|
||||
logDiagnostic("... InvocationTargetException: " + cause.getClass().getName() + ": " + cause.getLocalizedMessage());
|
||||
if (cause instanceof ExceptionInInitializerError) {
|
||||
ExceptionInInitializerError eiie = (ExceptionInInitializerError)cause;
|
||||
Throwable cause2 = eiie.getException();
|
||||
if (cause2 != null) {
|
||||
StringWriter sw = new StringWriter();
|
||||
cause2.printStackTrace(new PrintWriter((Writer)sw, true));
|
||||
logDiagnostic("... ExceptionInInitializerError: " + sw.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!this.allowFlawedDiscovery)
|
||||
throw new LogConfigurationException(discoveryFlaw);
|
||||
}
|
||||
|
||||
private void handleFlawedHierarchy(ClassLoader badClassLoader, Class badClass) throws LogConfigurationException {
|
||||
boolean implementsLog = false;
|
||||
String logInterfaceName = Log.class.getName();
|
||||
Class[] interfaces = badClass.getInterfaces();
|
||||
for (int i = 0; i < interfaces.length; i++) {
|
||||
if (logInterfaceName.equals(interfaces[i].getName())) {
|
||||
implementsLog = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (implementsLog) {
|
||||
if (isDiagnosticsEnabled())
|
||||
try {
|
||||
ClassLoader logInterfaceClassLoader = getClassLoader(Log.class);
|
||||
logDiagnostic("Class '" + badClass.getName() + "' was found in classloader " + objectId(badClassLoader) + ". It is bound to a Log interface which is not" + " the one loaded from classloader " + objectId(logInterfaceClassLoader));
|
||||
} catch (Throwable t) {
|
||||
handleThrowable(t);
|
||||
logDiagnostic("Error while trying to output diagnostics about bad class '" + badClass + "'");
|
||||
}
|
||||
if (!this.allowFlawedHierarchy) {
|
||||
StringBuffer msg = new StringBuffer();
|
||||
msg.append("Terminating logging for this context ");
|
||||
msg.append("due to bad log hierarchy. ");
|
||||
msg.append("You have more than one version of '");
|
||||
msg.append(Log.class.getName());
|
||||
msg.append("' visible.");
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic(msg.toString());
|
||||
throw new LogConfigurationException(msg.toString());
|
||||
}
|
||||
if (isDiagnosticsEnabled()) {
|
||||
StringBuffer msg = new StringBuffer();
|
||||
msg.append("Warning: bad log hierarchy. ");
|
||||
msg.append("You have more than one version of '");
|
||||
msg.append(Log.class.getName());
|
||||
msg.append("' visible.");
|
||||
logDiagnostic(msg.toString());
|
||||
}
|
||||
} else {
|
||||
if (!this.allowFlawedDiscovery) {
|
||||
StringBuffer msg = new StringBuffer();
|
||||
msg.append("Terminating logging for this context. ");
|
||||
msg.append("Log class '");
|
||||
msg.append(badClass.getName());
|
||||
msg.append("' does not implement the Log interface.");
|
||||
if (isDiagnosticsEnabled())
|
||||
logDiagnostic(msg.toString());
|
||||
throw new LogConfigurationException(msg.toString());
|
||||
}
|
||||
if (isDiagnosticsEnabled()) {
|
||||
StringBuffer msg = new StringBuffer();
|
||||
msg.append("[WARNING] Log class '");
|
||||
msg.append(badClass.getName());
|
||||
msg.append("' does not implement the Log interface.");
|
||||
logDiagnostic(msg.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
package org.apache.commons.logging.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.log.Hierarchy;
|
||||
import org.apache.log.Logger;
|
||||
|
||||
public class LogKitLogger implements Log, Serializable {
|
||||
private static final long serialVersionUID = 3768538055836059519L;
|
||||
|
||||
protected volatile transient Logger logger = null;
|
||||
|
||||
protected String name = null;
|
||||
|
||||
public LogKitLogger(String name) {
|
||||
this.name = name;
|
||||
this.logger = getLogger();
|
||||
}
|
||||
|
||||
public Logger getLogger() {
|
||||
Logger result = this.logger;
|
||||
if (result == null)
|
||||
synchronized (this) {
|
||||
result = this.logger;
|
||||
if (result == null)
|
||||
this.logger = result = Hierarchy.getDefaultHierarchy().getLoggerFor(this.name);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public void trace(Object message) {
|
||||
debug(message);
|
||||
}
|
||||
|
||||
public void trace(Object message, Throwable t) {
|
||||
debug(message, t);
|
||||
}
|
||||
|
||||
public void debug(Object message) {
|
||||
if (message != null)
|
||||
getLogger().debug(String.valueOf(message));
|
||||
}
|
||||
|
||||
public void debug(Object message, Throwable t) {
|
||||
if (message != null)
|
||||
getLogger().debug(String.valueOf(message), t);
|
||||
}
|
||||
|
||||
public void info(Object message) {
|
||||
if (message != null)
|
||||
getLogger().info(String.valueOf(message));
|
||||
}
|
||||
|
||||
public void info(Object message, Throwable t) {
|
||||
if (message != null)
|
||||
getLogger().info(String.valueOf(message), t);
|
||||
}
|
||||
|
||||
public void warn(Object message) {
|
||||
if (message != null)
|
||||
getLogger().warn(String.valueOf(message));
|
||||
}
|
||||
|
||||
public void warn(Object message, Throwable t) {
|
||||
if (message != null)
|
||||
getLogger().warn(String.valueOf(message), t);
|
||||
}
|
||||
|
||||
public void error(Object message) {
|
||||
if (message != null)
|
||||
getLogger().error(String.valueOf(message));
|
||||
}
|
||||
|
||||
public void error(Object message, Throwable t) {
|
||||
if (message != null)
|
||||
getLogger().error(String.valueOf(message), t);
|
||||
}
|
||||
|
||||
public void fatal(Object message) {
|
||||
if (message != null)
|
||||
getLogger().fatalError(String.valueOf(message));
|
||||
}
|
||||
|
||||
public void fatal(Object message, Throwable t) {
|
||||
if (message != null)
|
||||
getLogger().fatalError(String.valueOf(message), t);
|
||||
}
|
||||
|
||||
public boolean isDebugEnabled() {
|
||||
return getLogger().isDebugEnabled();
|
||||
}
|
||||
|
||||
public boolean isErrorEnabled() {
|
||||
return getLogger().isErrorEnabled();
|
||||
}
|
||||
|
||||
public boolean isFatalEnabled() {
|
||||
return getLogger().isFatalErrorEnabled();
|
||||
}
|
||||
|
||||
public boolean isInfoEnabled() {
|
||||
return getLogger().isInfoEnabled();
|
||||
}
|
||||
|
||||
public boolean isTraceEnabled() {
|
||||
return getLogger().isDebugEnabled();
|
||||
}
|
||||
|
||||
public boolean isWarnEnabled() {
|
||||
return getLogger().isWarnEnabled();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package org.apache.commons.logging.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
public class NoOpLog implements Log, Serializable {
|
||||
private static final long serialVersionUID = 561423906191706148L;
|
||||
|
||||
public NoOpLog() {}
|
||||
|
||||
public NoOpLog(String name) {}
|
||||
|
||||
public void trace(Object message) {}
|
||||
|
||||
public void trace(Object message, Throwable t) {}
|
||||
|
||||
public void debug(Object message) {}
|
||||
|
||||
public void debug(Object message, Throwable t) {}
|
||||
|
||||
public void info(Object message) {}
|
||||
|
||||
public void info(Object message, Throwable t) {}
|
||||
|
||||
public void warn(Object message) {}
|
||||
|
||||
public void warn(Object message, Throwable t) {}
|
||||
|
||||
public void error(Object message) {}
|
||||
|
||||
public void error(Object message, Throwable t) {}
|
||||
|
||||
public void fatal(Object message) {}
|
||||
|
||||
public void fatal(Object message, Throwable t) {}
|
||||
|
||||
public final boolean isDebugEnabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public final boolean isErrorEnabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public final boolean isFatalEnabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public final boolean isInfoEnabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public final boolean isTraceEnabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public final boolean isWarnEnabled() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
package org.apache.commons.logging.impl;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import javax.servlet.ServletContextEvent;
|
||||
import javax.servlet.ServletContextListener;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
public class ServletContextCleaner implements ServletContextListener {
|
||||
private static final Class[] RELEASE_SIGNATURE = new Class[] { ClassLoader.class };
|
||||
|
||||
public void contextDestroyed(ServletContextEvent sce) {
|
||||
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
|
||||
Object[] params = new Object[1];
|
||||
params[0] = tccl;
|
||||
ClassLoader loader = tccl;
|
||||
while (loader != null) {
|
||||
try {
|
||||
Class logFactoryClass = loader.loadClass("org.apache.commons.logging.LogFactory");
|
||||
Method releaseMethod = logFactoryClass.getMethod("release", RELEASE_SIGNATURE);
|
||||
releaseMethod.invoke(null, params);
|
||||
loader = logFactoryClass.getClassLoader().getParent();
|
||||
} catch (ClassNotFoundException ex) {
|
||||
loader = null;
|
||||
} catch (NoSuchMethodException ex) {
|
||||
System.err.println("LogFactory instance found which does not support release method!");
|
||||
loader = null;
|
||||
} catch (IllegalAccessException ex) {
|
||||
System.err.println("LogFactory instance found which is not accessable!");
|
||||
loader = null;
|
||||
} catch (InvocationTargetException ex) {
|
||||
System.err.println("LogFactory instance release method failed!");
|
||||
loader = null;
|
||||
}
|
||||
}
|
||||
LogFactory.release(tccl);
|
||||
}
|
||||
|
||||
public void contextInitialized(ServletContextEvent sce) {}
|
||||
}
|
||||
|
|
@ -0,0 +1,318 @@
|
|||
package org.apache.commons.logging.impl;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.Serializable;
|
||||
import java.io.StringWriter;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Properties;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogConfigurationException;
|
||||
|
||||
public class SimpleLog implements Log, Serializable {
|
||||
private static final long serialVersionUID = 136942970684951178L;
|
||||
|
||||
protected static final String systemPrefix = "org.apache.commons.logging.simplelog.";
|
||||
|
||||
protected static final Properties simpleLogProps = new Properties();
|
||||
|
||||
protected static final String DEFAULT_DATE_TIME_FORMAT = "yyyy/MM/dd HH:mm:ss:SSS zzz";
|
||||
|
||||
protected static volatile boolean showLogName = false;
|
||||
|
||||
protected static volatile boolean showShortName = true;
|
||||
|
||||
protected static volatile boolean showDateTime = false;
|
||||
|
||||
protected static volatile String dateTimeFormat = "yyyy/MM/dd HH:mm:ss:SSS zzz";
|
||||
|
||||
protected static DateFormat dateFormatter = null;
|
||||
|
||||
public static final int LOG_LEVEL_TRACE = 1;
|
||||
|
||||
public static final int LOG_LEVEL_DEBUG = 2;
|
||||
|
||||
public static final int LOG_LEVEL_INFO = 3;
|
||||
|
||||
public static final int LOG_LEVEL_WARN = 4;
|
||||
|
||||
public static final int LOG_LEVEL_ERROR = 5;
|
||||
|
||||
public static final int LOG_LEVEL_FATAL = 6;
|
||||
|
||||
public static final int LOG_LEVEL_ALL = 0;
|
||||
|
||||
public static final int LOG_LEVEL_OFF = 7;
|
||||
|
||||
private static String getStringProperty(String name) {
|
||||
String prop = null;
|
||||
try {
|
||||
prop = System.getProperty(name);
|
||||
} catch (SecurityException e) {}
|
||||
return (prop == null) ? simpleLogProps.getProperty(name) : prop;
|
||||
}
|
||||
|
||||
private static String getStringProperty(String name, String dephault) {
|
||||
String prop = getStringProperty(name);
|
||||
return (prop == null) ? dephault : prop;
|
||||
}
|
||||
|
||||
private static boolean getBooleanProperty(String name, boolean dephault) {
|
||||
String prop = getStringProperty(name);
|
||||
return (prop == null) ? dephault : "true".equalsIgnoreCase(prop);
|
||||
}
|
||||
|
||||
static {
|
||||
InputStream in = getResourceAsStream("simplelog.properties");
|
||||
if (null != in)
|
||||
try {
|
||||
simpleLogProps.load(in);
|
||||
in.close();
|
||||
} catch (IOException e) {}
|
||||
showLogName = getBooleanProperty("org.apache.commons.logging.simplelog.showlogname", showLogName);
|
||||
showShortName = getBooleanProperty("org.apache.commons.logging.simplelog.showShortLogname", showShortName);
|
||||
showDateTime = getBooleanProperty("org.apache.commons.logging.simplelog.showdatetime", showDateTime);
|
||||
if (showDateTime) {
|
||||
dateTimeFormat = getStringProperty("org.apache.commons.logging.simplelog.dateTimeFormat", dateTimeFormat);
|
||||
try {
|
||||
dateFormatter = new SimpleDateFormat(dateTimeFormat);
|
||||
} catch (IllegalArgumentException e) {
|
||||
dateTimeFormat = "yyyy/MM/dd HH:mm:ss:SSS zzz";
|
||||
dateFormatter = new SimpleDateFormat(dateTimeFormat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected volatile String logName = null;
|
||||
|
||||
protected volatile int currentLogLevel;
|
||||
|
||||
private volatile String shortLogName = null;
|
||||
|
||||
public SimpleLog(String name) {
|
||||
this.logName = name;
|
||||
setLevel(3);
|
||||
String lvl = getStringProperty("org.apache.commons.logging.simplelog.log." + this.logName);
|
||||
int i = String.valueOf(name).lastIndexOf(".");
|
||||
while (null == lvl && i > -1) {
|
||||
name = name.substring(0, i);
|
||||
lvl = getStringProperty("org.apache.commons.logging.simplelog.log." + name);
|
||||
i = String.valueOf(name).lastIndexOf(".");
|
||||
}
|
||||
if (null == lvl)
|
||||
lvl = getStringProperty("org.apache.commons.logging.simplelog.defaultlog");
|
||||
if ("all".equalsIgnoreCase(lvl)) {
|
||||
setLevel(0);
|
||||
} else if ("trace".equalsIgnoreCase(lvl)) {
|
||||
setLevel(1);
|
||||
} else if ("debug".equalsIgnoreCase(lvl)) {
|
||||
setLevel(2);
|
||||
} else if ("info".equalsIgnoreCase(lvl)) {
|
||||
setLevel(3);
|
||||
} else if ("warn".equalsIgnoreCase(lvl)) {
|
||||
setLevel(4);
|
||||
} else if ("error".equalsIgnoreCase(lvl)) {
|
||||
setLevel(5);
|
||||
} else if ("fatal".equalsIgnoreCase(lvl)) {
|
||||
setLevel(6);
|
||||
} else if ("off".equalsIgnoreCase(lvl)) {
|
||||
setLevel(7);
|
||||
}
|
||||
}
|
||||
|
||||
public void setLevel(int currentLogLevel) {
|
||||
this.currentLogLevel = currentLogLevel;
|
||||
}
|
||||
|
||||
public int getLevel() {
|
||||
return this.currentLogLevel;
|
||||
}
|
||||
|
||||
protected void log(int type, Object message, Throwable t) {
|
||||
StringBuffer buf = new StringBuffer();
|
||||
if (showDateTime) {
|
||||
String dateText;
|
||||
Date now = new Date();
|
||||
synchronized (dateFormatter) {
|
||||
dateText = dateFormatter.format(now);
|
||||
}
|
||||
buf.append(dateText);
|
||||
buf.append(" ");
|
||||
}
|
||||
switch (type) {
|
||||
case 1:
|
||||
buf.append("[TRACE] ");
|
||||
break;
|
||||
case 2:
|
||||
buf.append("[DEBUG] ");
|
||||
break;
|
||||
case 3:
|
||||
buf.append("[INFO] ");
|
||||
break;
|
||||
case 4:
|
||||
buf.append("[WARN] ");
|
||||
break;
|
||||
case 5:
|
||||
buf.append("[ERROR] ");
|
||||
break;
|
||||
case 6:
|
||||
buf.append("[FATAL] ");
|
||||
break;
|
||||
}
|
||||
if (showShortName) {
|
||||
if (this.shortLogName == null) {
|
||||
String slName = this.logName.substring(this.logName.lastIndexOf(".") + 1);
|
||||
this.shortLogName = slName.substring(slName.lastIndexOf("/") + 1);
|
||||
}
|
||||
buf.append(String.valueOf(this.shortLogName)).append(" - ");
|
||||
} else if (showLogName) {
|
||||
buf.append(String.valueOf(this.logName)).append(" - ");
|
||||
}
|
||||
buf.append(String.valueOf(message));
|
||||
if (t != null) {
|
||||
buf.append(" <");
|
||||
buf.append(t.toString());
|
||||
buf.append(">");
|
||||
StringWriter sw = new StringWriter(1024);
|
||||
PrintWriter pw = new PrintWriter(sw);
|
||||
t.printStackTrace(pw);
|
||||
pw.close();
|
||||
buf.append(sw.toString());
|
||||
}
|
||||
write(buf);
|
||||
}
|
||||
|
||||
protected void write(StringBuffer buffer) {
|
||||
System.err.println(buffer.toString());
|
||||
}
|
||||
|
||||
protected boolean isLevelEnabled(int logLevel) {
|
||||
return (logLevel >= this.currentLogLevel);
|
||||
}
|
||||
|
||||
public final void debug(Object message) {
|
||||
if (isLevelEnabled(2))
|
||||
log(2, message, null);
|
||||
}
|
||||
|
||||
public final void debug(Object message, Throwable t) {
|
||||
if (isLevelEnabled(2))
|
||||
log(2, message, t);
|
||||
}
|
||||
|
||||
public final void trace(Object message) {
|
||||
if (isLevelEnabled(1))
|
||||
log(1, message, null);
|
||||
}
|
||||
|
||||
public final void trace(Object message, Throwable t) {
|
||||
if (isLevelEnabled(1))
|
||||
log(1, message, t);
|
||||
}
|
||||
|
||||
public final void info(Object message) {
|
||||
if (isLevelEnabled(3))
|
||||
log(3, message, null);
|
||||
}
|
||||
|
||||
public final void info(Object message, Throwable t) {
|
||||
if (isLevelEnabled(3))
|
||||
log(3, message, t);
|
||||
}
|
||||
|
||||
public final void warn(Object message) {
|
||||
if (isLevelEnabled(4))
|
||||
log(4, message, null);
|
||||
}
|
||||
|
||||
public final void warn(Object message, Throwable t) {
|
||||
if (isLevelEnabled(4))
|
||||
log(4, message, t);
|
||||
}
|
||||
|
||||
public final void error(Object message) {
|
||||
if (isLevelEnabled(5))
|
||||
log(5, message, null);
|
||||
}
|
||||
|
||||
public final void error(Object message, Throwable t) {
|
||||
if (isLevelEnabled(5))
|
||||
log(5, message, t);
|
||||
}
|
||||
|
||||
public final void fatal(Object message) {
|
||||
if (isLevelEnabled(6))
|
||||
log(6, message, null);
|
||||
}
|
||||
|
||||
public final void fatal(Object message, Throwable t) {
|
||||
if (isLevelEnabled(6))
|
||||
log(6, message, t);
|
||||
}
|
||||
|
||||
public final boolean isDebugEnabled() {
|
||||
return isLevelEnabled(2);
|
||||
}
|
||||
|
||||
public final boolean isErrorEnabled() {
|
||||
return isLevelEnabled(5);
|
||||
}
|
||||
|
||||
public final boolean isFatalEnabled() {
|
||||
return isLevelEnabled(6);
|
||||
}
|
||||
|
||||
public final boolean isInfoEnabled() {
|
||||
return isLevelEnabled(3);
|
||||
}
|
||||
|
||||
public final boolean isTraceEnabled() {
|
||||
return isLevelEnabled(1);
|
||||
}
|
||||
|
||||
public final boolean isWarnEnabled() {
|
||||
return isLevelEnabled(4);
|
||||
}
|
||||
|
||||
private static ClassLoader getContextClassLoader() {
|
||||
ClassLoader classLoader = null;
|
||||
try {
|
||||
Method method = Thread.class.getMethod("getContextClassLoader", null);
|
||||
try {
|
||||
classLoader = (ClassLoader)method.invoke(Thread.currentThread(), null);
|
||||
} catch (IllegalAccessException e) {
|
||||
|
||||
} catch (InvocationTargetException e) {
|
||||
if (!(e.getTargetException() instanceof SecurityException))
|
||||
throw new LogConfigurationException("Unexpected InvocationTargetException", e.getTargetException());
|
||||
}
|
||||
} catch (NoSuchMethodException e) {}
|
||||
if (classLoader == null)
|
||||
classLoader = SimpleLog.class.getClassLoader();
|
||||
return classLoader;
|
||||
}
|
||||
|
||||
private static InputStream getResourceAsStream(String name) {
|
||||
return (InputStream)AccessController.doPrivileged(new PrivilegedAction(name) {
|
||||
private final String val$name;
|
||||
|
||||
{
|
||||
this.val$name = param1String;
|
||||
}
|
||||
|
||||
public Object run() {
|
||||
ClassLoader threadCL = SimpleLog.getContextClassLoader();
|
||||
if (threadCL != null)
|
||||
return threadCL.getResourceAsStream(this.val$name);
|
||||
return ClassLoader.getSystemResourceAsStream(this.val$name);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,279 @@
|
|||
package org.apache.commons.logging.impl;
|
||||
|
||||
import java.lang.ref.ReferenceQueue;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashSet;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public final class WeakHashtable extends Hashtable {
|
||||
private static final long serialVersionUID = -1546036869799732453L;
|
||||
|
||||
private static final int MAX_CHANGES_BEFORE_PURGE = 100;
|
||||
|
||||
private static final int PARTIAL_PURGE_COUNT = 10;
|
||||
|
||||
private final ReferenceQueue queue = new ReferenceQueue();
|
||||
|
||||
private int changeCount = 0;
|
||||
|
||||
public boolean containsKey(Object key) {
|
||||
Referenced referenced = new Referenced(key);
|
||||
return super.containsKey(referenced);
|
||||
}
|
||||
|
||||
public Enumeration elements() {
|
||||
purge();
|
||||
return super.elements();
|
||||
}
|
||||
|
||||
public Set entrySet() {
|
||||
purge();
|
||||
Set referencedEntries = super.entrySet();
|
||||
Set unreferencedEntries = new HashSet();
|
||||
for (Iterator it = referencedEntries.iterator(); it.hasNext(); ) {
|
||||
Map.Entry entry = (Map.Entry)it.next();
|
||||
Referenced referencedKey = (Referenced)entry.getKey();
|
||||
Object key = referencedKey.getValue();
|
||||
Object value = entry.getValue();
|
||||
if (key != null) {
|
||||
Entry dereferencedEntry = new Entry(key, value);
|
||||
unreferencedEntries.add(dereferencedEntry);
|
||||
}
|
||||
}
|
||||
return unreferencedEntries;
|
||||
}
|
||||
|
||||
public Object get(Object key) {
|
||||
Referenced referenceKey = new Referenced(key);
|
||||
return super.get(referenceKey);
|
||||
}
|
||||
|
||||
public Enumeration keys() {
|
||||
purge();
|
||||
Enumeration enumer = super.keys();
|
||||
return new Enumeration(this, enumer) {
|
||||
private final Enumeration val$enumer;
|
||||
|
||||
private final WeakHashtable this$0;
|
||||
|
||||
{
|
||||
this.this$0 = this$0;
|
||||
this.val$enumer = param1Enumeration;
|
||||
}
|
||||
|
||||
public boolean hasMoreElements() {
|
||||
return this.val$enumer.hasMoreElements();
|
||||
}
|
||||
|
||||
public Object nextElement() {
|
||||
WeakHashtable.Referenced nextReference = (WeakHashtable.Referenced)this.val$enumer.nextElement();
|
||||
return nextReference.getValue();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public Set keySet() {
|
||||
purge();
|
||||
Set referencedKeys = super.keySet();
|
||||
Set unreferencedKeys = new HashSet();
|
||||
for (Iterator it = referencedKeys.iterator(); it.hasNext(); ) {
|
||||
Referenced referenceKey = (Referenced)it.next();
|
||||
Object keyValue = referenceKey.getValue();
|
||||
if (keyValue != null)
|
||||
unreferencedKeys.add(keyValue);
|
||||
}
|
||||
return unreferencedKeys;
|
||||
}
|
||||
|
||||
public synchronized Object put(Object key, Object value) {
|
||||
if (key == null)
|
||||
throw new NullPointerException("Null keys are not allowed");
|
||||
if (value == null)
|
||||
throw new NullPointerException("Null values are not allowed");
|
||||
if (this.changeCount++ > 100) {
|
||||
purge();
|
||||
this.changeCount = 0;
|
||||
} else if (this.changeCount % 10 == 0) {
|
||||
purgeOne();
|
||||
}
|
||||
Referenced keyRef = new Referenced(key, this.queue);
|
||||
return super.put(keyRef, value);
|
||||
}
|
||||
|
||||
public void putAll(Map t) {
|
||||
if (t != null) {
|
||||
Set entrySet = t.entrySet();
|
||||
for (Iterator it = entrySet.iterator(); it.hasNext(); ) {
|
||||
Map.Entry entry = (Map.Entry)it.next();
|
||||
put(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Collection values() {
|
||||
purge();
|
||||
return super.values();
|
||||
}
|
||||
|
||||
public synchronized Object remove(Object key) {
|
||||
if (this.changeCount++ > 100) {
|
||||
purge();
|
||||
this.changeCount = 0;
|
||||
} else if (this.changeCount % 10 == 0) {
|
||||
purgeOne();
|
||||
}
|
||||
return super.remove(new Referenced(key));
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
purge();
|
||||
return super.isEmpty();
|
||||
}
|
||||
|
||||
public int size() {
|
||||
purge();
|
||||
return super.size();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
purge();
|
||||
return super.toString();
|
||||
}
|
||||
|
||||
protected void rehash() {
|
||||
purge();
|
||||
super.rehash();
|
||||
}
|
||||
|
||||
private void purge() {
|
||||
List toRemove = new ArrayList();
|
||||
synchronized (this.queue) {
|
||||
WeakKey key;
|
||||
while ((key = (WeakKey)this.queue.poll()) != null)
|
||||
toRemove.add(key.getReferenced());
|
||||
}
|
||||
int size = toRemove.size();
|
||||
for (int i = 0; i < size; i++)
|
||||
super.remove(toRemove.get(i));
|
||||
}
|
||||
|
||||
private void purgeOne() {
|
||||
synchronized (this.queue) {
|
||||
WeakKey key = (WeakKey)this.queue.poll();
|
||||
if (key != null)
|
||||
super.remove(key.getReferenced());
|
||||
}
|
||||
}
|
||||
|
||||
private static final class Entry implements Map.Entry {
|
||||
private final Object key;
|
||||
|
||||
private final Object value;
|
||||
|
||||
Entry(Object x0, Object x1, WeakHashtable.null x2) {
|
||||
this(x0, x1);
|
||||
}
|
||||
|
||||
private Entry(Object key, Object value) {
|
||||
this.key = key;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public boolean equals(Object o) {
|
||||
boolean result = false;
|
||||
if (o != null && o instanceof Map.Entry) {
|
||||
Map.Entry entry = (Map.Entry)o;
|
||||
result = (((getKey() == null) ? (entry.getKey() == null) : getKey().equals(entry.getKey())) && ((getValue() == null) ? (entry.getValue() == null) : getValue().equals(entry.getValue())));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return ((getKey() == null) ? 0 : getKey().hashCode()) ^ ((getValue() == null) ? 0 : getValue().hashCode());
|
||||
}
|
||||
|
||||
public Object setValue(Object value) {
|
||||
throw new UnsupportedOperationException("Entry.setValue is not supported.");
|
||||
}
|
||||
|
||||
public Object getValue() {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
public Object getKey() {
|
||||
return this.key;
|
||||
}
|
||||
}
|
||||
|
||||
private static final class Referenced {
|
||||
private final WeakReference reference;
|
||||
|
||||
private final int hashCode;
|
||||
|
||||
Referenced(Object x0, WeakHashtable.null x1) {
|
||||
this(x0);
|
||||
}
|
||||
|
||||
Referenced(Object x0, ReferenceQueue x1, WeakHashtable.null x2) {
|
||||
this(x0, x1);
|
||||
}
|
||||
|
||||
private Referenced(Object referant) {
|
||||
this.reference = new WeakReference(referant);
|
||||
this.hashCode = referant.hashCode();
|
||||
}
|
||||
|
||||
private Referenced(Object key, ReferenceQueue queue) {
|
||||
this.reference = new WeakHashtable.WeakKey(key, queue, this);
|
||||
this.hashCode = key.hashCode();
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return this.hashCode;
|
||||
}
|
||||
|
||||
private Object getValue() {
|
||||
return this.reference.get();
|
||||
}
|
||||
|
||||
public boolean equals(Object o) {
|
||||
boolean result = false;
|
||||
if (o instanceof Referenced) {
|
||||
Referenced otherKey = (Referenced)o;
|
||||
Object thisKeyValue = getValue();
|
||||
Object otherKeyValue = otherKey.getValue();
|
||||
if (thisKeyValue == null) {
|
||||
result = (otherKeyValue == null);
|
||||
result = (result && hashCode() == otherKey.hashCode());
|
||||
} else {
|
||||
result = thisKeyValue.equals(otherKeyValue);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
private static final class WeakKey extends WeakReference {
|
||||
private final WeakHashtable.Referenced referenced;
|
||||
|
||||
WeakKey(Object x0, ReferenceQueue x1, WeakHashtable.Referenced x2, WeakHashtable.null x3) {
|
||||
this(x0, x1, x2);
|
||||
}
|
||||
|
||||
private WeakKey(Object key, ReferenceQueue queue, WeakHashtable.Referenced referenced) {
|
||||
super(key, queue);
|
||||
this.referenced = referenced;
|
||||
}
|
||||
|
||||
private WeakHashtable.Referenced getReferenced() {
|
||||
return this.referenced;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package org.apache.fontbox;
|
||||
|
||||
import java.io.IOException;
|
||||
import org.apache.fontbox.encoding.Encoding;
|
||||
|
||||
public interface EncodedFont {
|
||||
Encoding getEncoding() throws IOException;
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package org.apache.fontbox;
|
||||
|
||||
import java.awt.geom.GeneralPath;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import org.apache.fontbox.util.BoundingBox;
|
||||
|
||||
public interface FontBoxFont {
|
||||
String getName() throws IOException;
|
||||
|
||||
BoundingBox getFontBBox() throws IOException;
|
||||
|
||||
List<Number> getFontMatrix() throws IOException;
|
||||
|
||||
GeneralPath getPath(String paramString) throws IOException;
|
||||
|
||||
float getWidth(String paramString) throws IOException;
|
||||
|
||||
boolean hasGlyph(String paramString) throws IOException;
|
||||
}
|
||||
|
|
@ -0,0 +1,659 @@
|
|||
package org.apache.fontbox.afm;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.StringTokenizer;
|
||||
import org.apache.fontbox.util.BoundingBox;
|
||||
import org.apache.fontbox.util.Charsets;
|
||||
|
||||
public class AFMParser {
|
||||
public static final String COMMENT = "Comment";
|
||||
|
||||
public static final String START_FONT_METRICS = "StartFontMetrics";
|
||||
|
||||
public static final String END_FONT_METRICS = "EndFontMetrics";
|
||||
|
||||
public static final String FONT_NAME = "FontName";
|
||||
|
||||
public static final String FULL_NAME = "FullName";
|
||||
|
||||
public static final String FAMILY_NAME = "FamilyName";
|
||||
|
||||
public static final String WEIGHT = "Weight";
|
||||
|
||||
public static final String FONT_BBOX = "FontBBox";
|
||||
|
||||
public static final String VERSION = "Version";
|
||||
|
||||
public static final String NOTICE = "Notice";
|
||||
|
||||
public static final String ENCODING_SCHEME = "EncodingScheme";
|
||||
|
||||
public static final String MAPPING_SCHEME = "MappingScheme";
|
||||
|
||||
public static final String ESC_CHAR = "EscChar";
|
||||
|
||||
public static final String CHARACTER_SET = "CharacterSet";
|
||||
|
||||
public static final String CHARACTERS = "Characters";
|
||||
|
||||
public static final String IS_BASE_FONT = "IsBaseFont";
|
||||
|
||||
public static final String V_VECTOR = "VVector";
|
||||
|
||||
public static final String IS_FIXED_V = "IsFixedV";
|
||||
|
||||
public static final String CAP_HEIGHT = "CapHeight";
|
||||
|
||||
public static final String X_HEIGHT = "XHeight";
|
||||
|
||||
public static final String ASCENDER = "Ascender";
|
||||
|
||||
public static final String DESCENDER = "Descender";
|
||||
|
||||
public static final String UNDERLINE_POSITION = "UnderlinePosition";
|
||||
|
||||
public static final String UNDERLINE_THICKNESS = "UnderlineThickness";
|
||||
|
||||
public static final String ITALIC_ANGLE = "ItalicAngle";
|
||||
|
||||
public static final String CHAR_WIDTH = "CharWidth";
|
||||
|
||||
public static final String IS_FIXED_PITCH = "IsFixedPitch";
|
||||
|
||||
public static final String START_CHAR_METRICS = "StartCharMetrics";
|
||||
|
||||
public static final String END_CHAR_METRICS = "EndCharMetrics";
|
||||
|
||||
public static final String CHARMETRICS_C = "C";
|
||||
|
||||
public static final String CHARMETRICS_CH = "CH";
|
||||
|
||||
public static final String CHARMETRICS_WX = "WX";
|
||||
|
||||
public static final String CHARMETRICS_W0X = "W0X";
|
||||
|
||||
public static final String CHARMETRICS_W1X = "W1X";
|
||||
|
||||
public static final String CHARMETRICS_WY = "WY";
|
||||
|
||||
public static final String CHARMETRICS_W0Y = "W0Y";
|
||||
|
||||
public static final String CHARMETRICS_W1Y = "W1Y";
|
||||
|
||||
public static final String CHARMETRICS_W = "W";
|
||||
|
||||
public static final String CHARMETRICS_W0 = "W0";
|
||||
|
||||
public static final String CHARMETRICS_W1 = "W1";
|
||||
|
||||
public static final String CHARMETRICS_VV = "VV";
|
||||
|
||||
public static final String CHARMETRICS_N = "N";
|
||||
|
||||
public static final String CHARMETRICS_B = "B";
|
||||
|
||||
public static final String CHARMETRICS_L = "L";
|
||||
|
||||
public static final String STD_HW = "StdHW";
|
||||
|
||||
public static final String STD_VW = "StdVW";
|
||||
|
||||
public static final String START_TRACK_KERN = "StartTrackKern";
|
||||
|
||||
public static final String END_TRACK_KERN = "EndTrackKern";
|
||||
|
||||
public static final String START_KERN_DATA = "StartKernData";
|
||||
|
||||
public static final String END_KERN_DATA = "EndKernData";
|
||||
|
||||
public static final String START_KERN_PAIRS = "StartKernPairs";
|
||||
|
||||
public static final String END_KERN_PAIRS = "EndKernPairs";
|
||||
|
||||
public static final String START_KERN_PAIRS0 = "StartKernPairs0";
|
||||
|
||||
public static final String START_KERN_PAIRS1 = "StartKernPairs1";
|
||||
|
||||
public static final String START_COMPOSITES = "StartComposites";
|
||||
|
||||
public static final String END_COMPOSITES = "EndComposites";
|
||||
|
||||
public static final String CC = "CC";
|
||||
|
||||
public static final String PCC = "PCC";
|
||||
|
||||
public static final String KERN_PAIR_KP = "KP";
|
||||
|
||||
public static final String KERN_PAIR_KPH = "KPH";
|
||||
|
||||
public static final String KERN_PAIR_KPX = "KPX";
|
||||
|
||||
public static final String KERN_PAIR_KPY = "KPY";
|
||||
|
||||
private static final int BITS_IN_HEX = 16;
|
||||
|
||||
private final InputStream input;
|
||||
|
||||
public AFMParser(InputStream in) {
|
||||
this.input = in;
|
||||
}
|
||||
|
||||
public FontMetrics parse() throws IOException {
|
||||
return parseFontMetric(false);
|
||||
}
|
||||
|
||||
public FontMetrics parse(boolean reducedDataset) throws IOException {
|
||||
return parseFontMetric(reducedDataset);
|
||||
}
|
||||
|
||||
private FontMetrics parseFontMetric(boolean reducedDataset) throws IOException {
|
||||
FontMetrics fontMetrics = new FontMetrics();
|
||||
String startFontMetrics = readString();
|
||||
if (!"StartFontMetrics".equals(startFontMetrics))
|
||||
throw new IOException("Error: The AFM file should start with StartFontMetrics and not '" + startFontMetrics + "'");
|
||||
fontMetrics.setAFMVersion(readFloat());
|
||||
boolean charMetricsRead = false;
|
||||
String nextCommand;
|
||||
while (!"EndFontMetrics".equals(nextCommand = readString())) {
|
||||
if ("FontName".equals(nextCommand)) {
|
||||
fontMetrics.setFontName(readLine());
|
||||
continue;
|
||||
}
|
||||
if ("FullName".equals(nextCommand)) {
|
||||
fontMetrics.setFullName(readLine());
|
||||
continue;
|
||||
}
|
||||
if ("FamilyName".equals(nextCommand)) {
|
||||
fontMetrics.setFamilyName(readLine());
|
||||
continue;
|
||||
}
|
||||
if ("Weight".equals(nextCommand)) {
|
||||
fontMetrics.setWeight(readLine());
|
||||
continue;
|
||||
}
|
||||
if ("FontBBox".equals(nextCommand)) {
|
||||
BoundingBox bBox = new BoundingBox();
|
||||
bBox.setLowerLeftX(readFloat());
|
||||
bBox.setLowerLeftY(readFloat());
|
||||
bBox.setUpperRightX(readFloat());
|
||||
bBox.setUpperRightY(readFloat());
|
||||
fontMetrics.setFontBBox(bBox);
|
||||
continue;
|
||||
}
|
||||
if ("Version".equals(nextCommand)) {
|
||||
fontMetrics.setFontVersion(readLine());
|
||||
continue;
|
||||
}
|
||||
if ("Notice".equals(nextCommand)) {
|
||||
fontMetrics.setNotice(readLine());
|
||||
continue;
|
||||
}
|
||||
if ("EncodingScheme".equals(nextCommand)) {
|
||||
fontMetrics.setEncodingScheme(readLine());
|
||||
continue;
|
||||
}
|
||||
if ("MappingScheme".equals(nextCommand)) {
|
||||
fontMetrics.setMappingScheme(readInt());
|
||||
continue;
|
||||
}
|
||||
if ("EscChar".equals(nextCommand)) {
|
||||
fontMetrics.setEscChar(readInt());
|
||||
continue;
|
||||
}
|
||||
if ("CharacterSet".equals(nextCommand)) {
|
||||
fontMetrics.setCharacterSet(readLine());
|
||||
continue;
|
||||
}
|
||||
if ("Characters".equals(nextCommand)) {
|
||||
fontMetrics.setCharacters(readInt());
|
||||
continue;
|
||||
}
|
||||
if ("IsBaseFont".equals(nextCommand)) {
|
||||
fontMetrics.setIsBaseFont(readBoolean());
|
||||
continue;
|
||||
}
|
||||
if ("VVector".equals(nextCommand)) {
|
||||
float[] vector = new float[2];
|
||||
vector[0] = readFloat();
|
||||
vector[1] = readFloat();
|
||||
fontMetrics.setVVector(vector);
|
||||
continue;
|
||||
}
|
||||
if ("IsFixedV".equals(nextCommand)) {
|
||||
fontMetrics.setIsFixedV(readBoolean());
|
||||
continue;
|
||||
}
|
||||
if ("CapHeight".equals(nextCommand)) {
|
||||
fontMetrics.setCapHeight(readFloat());
|
||||
continue;
|
||||
}
|
||||
if ("XHeight".equals(nextCommand)) {
|
||||
fontMetrics.setXHeight(readFloat());
|
||||
continue;
|
||||
}
|
||||
if ("Ascender".equals(nextCommand)) {
|
||||
fontMetrics.setAscender(readFloat());
|
||||
continue;
|
||||
}
|
||||
if ("Descender".equals(nextCommand)) {
|
||||
fontMetrics.setDescender(readFloat());
|
||||
continue;
|
||||
}
|
||||
if ("StdHW".equals(nextCommand)) {
|
||||
fontMetrics.setStandardHorizontalWidth(readFloat());
|
||||
continue;
|
||||
}
|
||||
if ("StdVW".equals(nextCommand)) {
|
||||
fontMetrics.setStandardVerticalWidth(readFloat());
|
||||
continue;
|
||||
}
|
||||
if ("Comment".equals(nextCommand)) {
|
||||
fontMetrics.addComment(readLine());
|
||||
continue;
|
||||
}
|
||||
if ("UnderlinePosition".equals(nextCommand)) {
|
||||
fontMetrics.setUnderlinePosition(readFloat());
|
||||
continue;
|
||||
}
|
||||
if ("UnderlineThickness".equals(nextCommand)) {
|
||||
fontMetrics.setUnderlineThickness(readFloat());
|
||||
continue;
|
||||
}
|
||||
if ("ItalicAngle".equals(nextCommand)) {
|
||||
fontMetrics.setItalicAngle(readFloat());
|
||||
continue;
|
||||
}
|
||||
if ("CharWidth".equals(nextCommand)) {
|
||||
float[] widths = new float[2];
|
||||
widths[0] = readFloat();
|
||||
widths[1] = readFloat();
|
||||
fontMetrics.setCharWidth(widths);
|
||||
continue;
|
||||
}
|
||||
if ("IsFixedPitch".equals(nextCommand)) {
|
||||
fontMetrics.setFixedPitch(readBoolean());
|
||||
continue;
|
||||
}
|
||||
if ("StartCharMetrics".equals(nextCommand)) {
|
||||
int count = readInt();
|
||||
List<CharMetric> charMetrics = new ArrayList<CharMetric>(count);
|
||||
for (int i = 0; i < count; i++) {
|
||||
CharMetric charMetric = parseCharMetric();
|
||||
charMetrics.add(charMetric);
|
||||
}
|
||||
String end = readString();
|
||||
if (!end.equals("EndCharMetrics"))
|
||||
throw new IOException("Error: Expected 'EndCharMetrics' actual '" + end + "'");
|
||||
charMetricsRead = true;
|
||||
fontMetrics.setCharMetrics(charMetrics);
|
||||
continue;
|
||||
}
|
||||
if (!reducedDataset && "StartComposites".equals(nextCommand)) {
|
||||
int count = readInt();
|
||||
for (int i = 0; i < count; i++) {
|
||||
Composite part = parseComposite();
|
||||
fontMetrics.addComposite(part);
|
||||
}
|
||||
String end = readString();
|
||||
if (!end.equals("EndComposites"))
|
||||
throw new IOException("Error: Expected 'EndComposites' actual '" + end + "'");
|
||||
continue;
|
||||
}
|
||||
if (!reducedDataset && "StartKernData".equals(nextCommand)) {
|
||||
parseKernData(fontMetrics);
|
||||
continue;
|
||||
}
|
||||
if (reducedDataset && charMetricsRead)
|
||||
break;
|
||||
throw new IOException("Unknown AFM key '" + nextCommand + "'");
|
||||
}
|
||||
return fontMetrics;
|
||||
}
|
||||
|
||||
private void parseKernData(FontMetrics fontMetrics) throws IOException {
|
||||
String nextCommand;
|
||||
while (!(nextCommand = readString()).equals("EndKernData")) {
|
||||
if ("StartTrackKern".equals(nextCommand)) {
|
||||
int count = readInt();
|
||||
for (int i = 0; i < count; i++) {
|
||||
TrackKern kern = new TrackKern();
|
||||
kern.setDegree(readInt());
|
||||
kern.setMinPointSize(readFloat());
|
||||
kern.setMinKern(readFloat());
|
||||
kern.setMaxPointSize(readFloat());
|
||||
kern.setMaxKern(readFloat());
|
||||
fontMetrics.addTrackKern(kern);
|
||||
}
|
||||
String end = readString();
|
||||
if (!end.equals("EndTrackKern"))
|
||||
throw new IOException("Error: Expected 'EndTrackKern' actual '" + end + "'");
|
||||
continue;
|
||||
}
|
||||
if ("StartKernPairs".equals(nextCommand)) {
|
||||
int count = readInt();
|
||||
for (int i = 0; i < count; i++) {
|
||||
KernPair pair = parseKernPair();
|
||||
fontMetrics.addKernPair(pair);
|
||||
}
|
||||
String end = readString();
|
||||
if (!end.equals("EndKernPairs"))
|
||||
throw new IOException("Error: Expected 'EndKernPairs' actual '" + end + "'");
|
||||
continue;
|
||||
}
|
||||
if ("StartKernPairs0".equals(nextCommand)) {
|
||||
int count = readInt();
|
||||
for (int i = 0; i < count; i++) {
|
||||
KernPair pair = parseKernPair();
|
||||
fontMetrics.addKernPair0(pair);
|
||||
}
|
||||
String end = readString();
|
||||
if (!end.equals("EndKernPairs"))
|
||||
throw new IOException("Error: Expected 'EndKernPairs' actual '" + end + "'");
|
||||
continue;
|
||||
}
|
||||
if ("StartKernPairs1".equals(nextCommand)) {
|
||||
int count = readInt();
|
||||
for (int i = 0; i < count; i++) {
|
||||
KernPair pair = parseKernPair();
|
||||
fontMetrics.addKernPair1(pair);
|
||||
}
|
||||
String end = readString();
|
||||
if (!end.equals("EndKernPairs"))
|
||||
throw new IOException("Error: Expected 'EndKernPairs' actual '" + end + "'");
|
||||
continue;
|
||||
}
|
||||
throw new IOException("Unknown kerning data type '" + nextCommand + "'");
|
||||
}
|
||||
}
|
||||
|
||||
private KernPair parseKernPair() throws IOException {
|
||||
KernPair kernPair = new KernPair();
|
||||
String cmd = readString();
|
||||
if ("KP".equals(cmd)) {
|
||||
String first = readString();
|
||||
String second = readString();
|
||||
float x = readFloat();
|
||||
float y = readFloat();
|
||||
kernPair.setFirstKernCharacter(first);
|
||||
kernPair.setSecondKernCharacter(second);
|
||||
kernPair.setX(x);
|
||||
kernPair.setY(y);
|
||||
} else if ("KPH".equals(cmd)) {
|
||||
String first = hexToString(readString());
|
||||
String second = hexToString(readString());
|
||||
float x = readFloat();
|
||||
float y = readFloat();
|
||||
kernPair.setFirstKernCharacter(first);
|
||||
kernPair.setSecondKernCharacter(second);
|
||||
kernPair.setX(x);
|
||||
kernPair.setY(y);
|
||||
} else if ("KPX".equals(cmd)) {
|
||||
String first = readString();
|
||||
String second = readString();
|
||||
float x = readFloat();
|
||||
kernPair.setFirstKernCharacter(first);
|
||||
kernPair.setSecondKernCharacter(second);
|
||||
kernPair.setX(x);
|
||||
kernPair.setY(0.0F);
|
||||
} else if ("KPY".equals(cmd)) {
|
||||
String first = readString();
|
||||
String second = readString();
|
||||
float y = readFloat();
|
||||
kernPair.setFirstKernCharacter(first);
|
||||
kernPair.setSecondKernCharacter(second);
|
||||
kernPair.setX(0.0F);
|
||||
kernPair.setY(y);
|
||||
} else {
|
||||
throw new IOException("Error expected kern pair command actual='" + cmd + "'");
|
||||
}
|
||||
return kernPair;
|
||||
}
|
||||
|
||||
private String hexToString(String hexString) throws IOException {
|
||||
if (hexString.length() < 2)
|
||||
throw new IOException("Error: Expected hex string of length >= 2 not='" + hexString);
|
||||
if (hexString.charAt(0) != '<' || hexString.charAt(hexString.length() - 1) != '>')
|
||||
throw new IOException("String should be enclosed by angle brackets '" + hexString + "'");
|
||||
hexString = hexString.substring(1, hexString.length() - 1);
|
||||
byte[] data = new byte[hexString.length() / 2];
|
||||
for (int i = 0; i < hexString.length(); i += 2) {
|
||||
String hex = "" + hexString.charAt(i) + hexString.charAt(i + 1);
|
||||
try {
|
||||
data[i / 2] = (byte)Integer.parseInt(hex, 16);
|
||||
} catch (NumberFormatException e) {
|
||||
throw new IOException("Error parsing AFM file:" + e);
|
||||
}
|
||||
}
|
||||
return new String(data, Charsets.ISO_8859_1);
|
||||
}
|
||||
|
||||
private Composite parseComposite() throws IOException {
|
||||
int partCount;
|
||||
Composite composite = new Composite();
|
||||
String partData = readLine();
|
||||
StringTokenizer tokenizer = new StringTokenizer(partData, " ;");
|
||||
String cc = tokenizer.nextToken();
|
||||
if (!cc.equals("CC"))
|
||||
throw new IOException("Expected 'CC' actual='" + cc + "'");
|
||||
String name = tokenizer.nextToken();
|
||||
composite.setName(name);
|
||||
try {
|
||||
partCount = Integer.parseInt(tokenizer.nextToken());
|
||||
} catch (NumberFormatException e) {
|
||||
throw new IOException("Error parsing AFM document:" + e);
|
||||
}
|
||||
for (int i = 0; i < partCount; i++) {
|
||||
CompositePart part = new CompositePart();
|
||||
String pcc = tokenizer.nextToken();
|
||||
if (!pcc.equals("PCC"))
|
||||
throw new IOException("Expected 'PCC' actual='" + pcc + "'");
|
||||
String partName = tokenizer.nextToken();
|
||||
try {
|
||||
int x = Integer.parseInt(tokenizer.nextToken());
|
||||
int y = Integer.parseInt(tokenizer.nextToken());
|
||||
part.setName(partName);
|
||||
part.setXDisplacement(x);
|
||||
part.setYDisplacement(y);
|
||||
composite.addPart(part);
|
||||
} catch (NumberFormatException e) {
|
||||
throw new IOException("Error parsing AFM document:" + e);
|
||||
}
|
||||
}
|
||||
return composite;
|
||||
}
|
||||
|
||||
private CharMetric parseCharMetric() throws IOException {
|
||||
CharMetric charMetric = new CharMetric();
|
||||
String metrics = readLine();
|
||||
StringTokenizer metricsTokenizer = new StringTokenizer(metrics);
|
||||
try {
|
||||
while (metricsTokenizer.hasMoreTokens()) {
|
||||
String nextCommand = metricsTokenizer.nextToken();
|
||||
if (nextCommand.equals("C")) {
|
||||
String charCode = metricsTokenizer.nextToken();
|
||||
charMetric.setCharacterCode(Integer.parseInt(charCode));
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("CH")) {
|
||||
String charCode = metricsTokenizer.nextToken();
|
||||
charMetric.setCharacterCode(Integer.parseInt(charCode, 16));
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("WX")) {
|
||||
String wx = metricsTokenizer.nextToken();
|
||||
charMetric.setWx(Float.parseFloat(wx));
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("W0X")) {
|
||||
String w0x = metricsTokenizer.nextToken();
|
||||
charMetric.setW0x(Float.parseFloat(w0x));
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("W1X")) {
|
||||
String w1x = metricsTokenizer.nextToken();
|
||||
charMetric.setW0x(Float.parseFloat(w1x));
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("WY")) {
|
||||
String wy = metricsTokenizer.nextToken();
|
||||
charMetric.setWy(Float.parseFloat(wy));
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("W0Y")) {
|
||||
String w0y = metricsTokenizer.nextToken();
|
||||
charMetric.setW0y(Float.parseFloat(w0y));
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("W1Y")) {
|
||||
String w1y = metricsTokenizer.nextToken();
|
||||
charMetric.setW0y(Float.parseFloat(w1y));
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("W")) {
|
||||
String w0 = metricsTokenizer.nextToken();
|
||||
String w1 = metricsTokenizer.nextToken();
|
||||
float[] w = new float[2];
|
||||
w[0] = Float.parseFloat(w0);
|
||||
w[1] = Float.parseFloat(w1);
|
||||
charMetric.setW(w);
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("W0")) {
|
||||
String w00 = metricsTokenizer.nextToken();
|
||||
String w01 = metricsTokenizer.nextToken();
|
||||
float[] w0 = new float[2];
|
||||
w0[0] = Float.parseFloat(w00);
|
||||
w0[1] = Float.parseFloat(w01);
|
||||
charMetric.setW0(w0);
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("W1")) {
|
||||
String w10 = metricsTokenizer.nextToken();
|
||||
String w11 = metricsTokenizer.nextToken();
|
||||
float[] w1 = new float[2];
|
||||
w1[0] = Float.parseFloat(w10);
|
||||
w1[1] = Float.parseFloat(w11);
|
||||
charMetric.setW1(w1);
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("VV")) {
|
||||
String vv0 = metricsTokenizer.nextToken();
|
||||
String vv1 = metricsTokenizer.nextToken();
|
||||
float[] vv = new float[2];
|
||||
vv[0] = Float.parseFloat(vv0);
|
||||
vv[1] = Float.parseFloat(vv1);
|
||||
charMetric.setVv(vv);
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("N")) {
|
||||
String name = metricsTokenizer.nextToken();
|
||||
charMetric.setName(name);
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("B")) {
|
||||
String llx = metricsTokenizer.nextToken();
|
||||
String lly = metricsTokenizer.nextToken();
|
||||
String urx = metricsTokenizer.nextToken();
|
||||
String ury = metricsTokenizer.nextToken();
|
||||
BoundingBox box = new BoundingBox();
|
||||
box.setLowerLeftX(Float.parseFloat(llx));
|
||||
box.setLowerLeftY(Float.parseFloat(lly));
|
||||
box.setUpperRightX(Float.parseFloat(urx));
|
||||
box.setUpperRightY(Float.parseFloat(ury));
|
||||
charMetric.setBoundingBox(box);
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
if (nextCommand.equals("L")) {
|
||||
String successor = metricsTokenizer.nextToken();
|
||||
String ligature = metricsTokenizer.nextToken();
|
||||
Ligature lig = new Ligature();
|
||||
lig.setSuccessor(successor);
|
||||
lig.setLigature(ligature);
|
||||
charMetric.addLigature(lig);
|
||||
verifySemicolon(metricsTokenizer);
|
||||
continue;
|
||||
}
|
||||
throw new IOException("Unknown CharMetrics command '" + nextCommand + "'");
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
throw new IOException("Error: Corrupt AFM document:" + e);
|
||||
}
|
||||
return charMetric;
|
||||
}
|
||||
|
||||
private void verifySemicolon(StringTokenizer tokenizer) throws IOException {
|
||||
if (tokenizer.hasMoreTokens()) {
|
||||
String semicolon = tokenizer.nextToken();
|
||||
if (!semicolon.equals(";"))
|
||||
throw new IOException("Error: Expected semicolon in stream actual='" + semicolon + "'");
|
||||
} else {
|
||||
throw new IOException("CharMetrics is missing a semicolon after a command");
|
||||
}
|
||||
}
|
||||
|
||||
private boolean readBoolean() throws IOException {
|
||||
String theBoolean = readString();
|
||||
return Boolean.valueOf(theBoolean);
|
||||
}
|
||||
|
||||
private int readInt() throws IOException {
|
||||
String theInt = readString();
|
||||
try {
|
||||
return Integer.parseInt(theInt);
|
||||
} catch (NumberFormatException e) {
|
||||
throw new IOException("Error parsing AFM document:" + e);
|
||||
}
|
||||
}
|
||||
|
||||
private float readFloat() throws IOException {
|
||||
String theFloat = readString();
|
||||
return Float.parseFloat(theFloat);
|
||||
}
|
||||
|
||||
private String readLine() throws IOException {
|
||||
StringBuilder buf = new StringBuilder(60);
|
||||
int nextByte = this.input.read();
|
||||
while (isWhitespace(nextByte))
|
||||
nextByte = this.input.read();
|
||||
buf.append((char)nextByte);
|
||||
while (!isEOL(nextByte = this.input.read()))
|
||||
buf.append((char)nextByte);
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
private String readString() throws IOException {
|
||||
StringBuilder buf = new StringBuilder(24);
|
||||
int nextByte = this.input.read();
|
||||
while (isWhitespace(nextByte))
|
||||
nextByte = this.input.read();
|
||||
buf.append((char)nextByte);
|
||||
while (!isWhitespace(nextByte = this.input.read()))
|
||||
buf.append((char)nextByte);
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
private boolean isEOL(int character) {
|
||||
return (character == 13 || character == 10);
|
||||
}
|
||||
|
||||
private boolean isWhitespace(int character) {
|
||||
return (character == 32 || character == 9 || character == 13 || character == 10);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,151 @@
|
|||
package org.apache.fontbox.afm;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fontbox.util.BoundingBox;
|
||||
|
||||
public class CharMetric {
|
||||
private int characterCode;
|
||||
|
||||
private float wx;
|
||||
|
||||
private float w0x;
|
||||
|
||||
private float w1x;
|
||||
|
||||
private float wy;
|
||||
|
||||
private float w0y;
|
||||
|
||||
private float w1y;
|
||||
|
||||
private float[] w;
|
||||
|
||||
private float[] w0;
|
||||
|
||||
private float[] w1;
|
||||
|
||||
private float[] vv;
|
||||
|
||||
private String name;
|
||||
|
||||
private BoundingBox boundingBox;
|
||||
|
||||
private List<Ligature> ligatures = new ArrayList<Ligature>();
|
||||
|
||||
public BoundingBox getBoundingBox() {
|
||||
return this.boundingBox;
|
||||
}
|
||||
|
||||
public void setBoundingBox(BoundingBox bBox) {
|
||||
this.boundingBox = bBox;
|
||||
}
|
||||
|
||||
public int getCharacterCode() {
|
||||
return this.characterCode;
|
||||
}
|
||||
|
||||
public void setCharacterCode(int cCode) {
|
||||
this.characterCode = cCode;
|
||||
}
|
||||
|
||||
public void addLigature(Ligature ligature) {
|
||||
this.ligatures.add(ligature);
|
||||
}
|
||||
|
||||
public List<Ligature> getLigatures() {
|
||||
return this.ligatures;
|
||||
}
|
||||
|
||||
public void setLigatures(List<Ligature> lig) {
|
||||
this.ligatures = lig;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public void setName(String n) {
|
||||
this.name = n;
|
||||
}
|
||||
|
||||
public float[] getVv() {
|
||||
return this.vv;
|
||||
}
|
||||
|
||||
public void setVv(float[] vvValue) {
|
||||
this.vv = vvValue;
|
||||
}
|
||||
|
||||
public float[] getW() {
|
||||
return this.w;
|
||||
}
|
||||
|
||||
public void setW(float[] wValue) {
|
||||
this.w = wValue;
|
||||
}
|
||||
|
||||
public float[] getW0() {
|
||||
return this.w0;
|
||||
}
|
||||
|
||||
public void setW0(float[] w0Value) {
|
||||
this.w0 = w0Value;
|
||||
}
|
||||
|
||||
public float getW0x() {
|
||||
return this.w0x;
|
||||
}
|
||||
|
||||
public void setW0x(float w0xValue) {
|
||||
this.w0x = w0xValue;
|
||||
}
|
||||
|
||||
public float getW0y() {
|
||||
return this.w0y;
|
||||
}
|
||||
|
||||
public void setW0y(float w0yValue) {
|
||||
this.w0y = w0yValue;
|
||||
}
|
||||
|
||||
public float[] getW1() {
|
||||
return this.w1;
|
||||
}
|
||||
|
||||
public void setW1(float[] w1Value) {
|
||||
this.w1 = w1Value;
|
||||
}
|
||||
|
||||
public float getW1x() {
|
||||
return this.w1x;
|
||||
}
|
||||
|
||||
public void setW1x(float w1xValue) {
|
||||
this.w1x = w1xValue;
|
||||
}
|
||||
|
||||
public float getW1y() {
|
||||
return this.w1y;
|
||||
}
|
||||
|
||||
public void setW1y(float w1yValue) {
|
||||
this.w1y = w1yValue;
|
||||
}
|
||||
|
||||
public float getWx() {
|
||||
return this.wx;
|
||||
}
|
||||
|
||||
public void setWx(float wxValue) {
|
||||
this.wx = wxValue;
|
||||
}
|
||||
|
||||
public float getWy() {
|
||||
return this.wy;
|
||||
}
|
||||
|
||||
public void setWy(float wyValue) {
|
||||
this.wy = wyValue;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package org.apache.fontbox.afm;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Composite {
|
||||
private String name;
|
||||
|
||||
private List<CompositePart> parts = new ArrayList<CompositePart>();
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public void setName(String nameValue) {
|
||||
this.name = nameValue;
|
||||
}
|
||||
|
||||
public void addPart(CompositePart part) {
|
||||
this.parts.add(part);
|
||||
}
|
||||
|
||||
public List<CompositePart> getParts() {
|
||||
return this.parts;
|
||||
}
|
||||
|
||||
public void setParts(List<CompositePart> partsList) {
|
||||
this.parts = partsList;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package org.apache.fontbox.afm;
|
||||
|
||||
public class CompositePart {
|
||||
private String name;
|
||||
|
||||
private int xDisplacement;
|
||||
|
||||
private int yDisplacement;
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public void setName(String nameValue) {
|
||||
this.name = nameValue;
|
||||
}
|
||||
|
||||
public int getXDisplacement() {
|
||||
return this.xDisplacement;
|
||||
}
|
||||
|
||||
public void setXDisplacement(int xDisp) {
|
||||
this.xDisplacement = xDisp;
|
||||
}
|
||||
|
||||
public int getYDisplacement() {
|
||||
return this.yDisplacement;
|
||||
}
|
||||
|
||||
public void setYDisplacement(int yDisp) {
|
||||
this.yDisplacement = yDisp;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,426 @@
|
|||
package org.apache.fontbox.afm;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.apache.fontbox.util.BoundingBox;
|
||||
|
||||
public class FontMetrics {
|
||||
private float afmVersion;
|
||||
|
||||
private int metricSets = 0;
|
||||
|
||||
private String fontName;
|
||||
|
||||
private String fullName;
|
||||
|
||||
private String familyName;
|
||||
|
||||
private String weight;
|
||||
|
||||
private BoundingBox fontBBox;
|
||||
|
||||
private String fontVersion;
|
||||
|
||||
private String notice;
|
||||
|
||||
private String encodingScheme;
|
||||
|
||||
private int mappingScheme;
|
||||
|
||||
private int escChar;
|
||||
|
||||
private String characterSet;
|
||||
|
||||
private int characters;
|
||||
|
||||
private boolean isBaseFont;
|
||||
|
||||
private float[] vVector;
|
||||
|
||||
private boolean isFixedV;
|
||||
|
||||
private float capHeight;
|
||||
|
||||
private float xHeight;
|
||||
|
||||
private float ascender;
|
||||
|
||||
private float descender;
|
||||
|
||||
private final List<String> comments = new ArrayList<String>();
|
||||
|
||||
private float underlinePosition;
|
||||
|
||||
private float underlineThickness;
|
||||
|
||||
private float italicAngle;
|
||||
|
||||
private float[] charWidth;
|
||||
|
||||
private boolean isFixedPitch;
|
||||
|
||||
private float standardHorizontalWidth;
|
||||
|
||||
private float standardVerticalWidth;
|
||||
|
||||
private List<CharMetric> charMetrics = new ArrayList<CharMetric>();
|
||||
|
||||
private Map<String, CharMetric> charMetricsMap = new HashMap<String, CharMetric>();
|
||||
|
||||
private List<TrackKern> trackKern = new ArrayList<TrackKern>();
|
||||
|
||||
private List<Composite> composites = new ArrayList<Composite>();
|
||||
|
||||
private List<KernPair> kernPairs = new ArrayList<KernPair>();
|
||||
|
||||
private List<KernPair> kernPairs0 = new ArrayList<KernPair>();
|
||||
|
||||
private List<KernPair> kernPairs1 = new ArrayList<KernPair>();
|
||||
|
||||
public float getCharacterWidth(String name) {
|
||||
float result = 0.0F;
|
||||
CharMetric metric = this.charMetricsMap.get(name);
|
||||
if (metric != null)
|
||||
result = metric.getWx();
|
||||
return result;
|
||||
}
|
||||
|
||||
public float getCharacterHeight(String name) {
|
||||
float result = 0.0F;
|
||||
CharMetric metric = this.charMetricsMap.get(name);
|
||||
if (metric != null) {
|
||||
result = metric.getWy();
|
||||
if (result == 0.0F)
|
||||
result = metric.getBoundingBox().getHeight();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public float getAverageCharacterWidth() {
|
||||
float average = 0.0F;
|
||||
float totalWidths = 0.0F;
|
||||
float characterCount = 0.0F;
|
||||
for (CharMetric metric : this.charMetrics) {
|
||||
if (metric.getWx() > 0.0F) {
|
||||
totalWidths += metric.getWx();
|
||||
characterCount++;
|
||||
}
|
||||
}
|
||||
if (totalWidths > 0.0F)
|
||||
average = totalWidths / characterCount;
|
||||
return average;
|
||||
}
|
||||
|
||||
public void addComment(String comment) {
|
||||
this.comments.add(comment);
|
||||
}
|
||||
|
||||
public List<String> getComments() {
|
||||
return Collections.<String>unmodifiableList(this.comments);
|
||||
}
|
||||
|
||||
public float getAFMVersion() {
|
||||
return this.afmVersion;
|
||||
}
|
||||
|
||||
public int getMetricSets() {
|
||||
return this.metricSets;
|
||||
}
|
||||
|
||||
public void setAFMVersion(float afmVersionValue) {
|
||||
this.afmVersion = afmVersionValue;
|
||||
}
|
||||
|
||||
public void setMetricSets(int metricSetsValue) {
|
||||
if (metricSetsValue < 0 || metricSetsValue > 2)
|
||||
throw new IllegalArgumentException("The metricSets attribute must be in the set {0,1,2} and not '" + metricSetsValue + "'");
|
||||
this.metricSets = metricSetsValue;
|
||||
}
|
||||
|
||||
public String getFontName() {
|
||||
return this.fontName;
|
||||
}
|
||||
|
||||
public void setFontName(String name) {
|
||||
this.fontName = name;
|
||||
}
|
||||
|
||||
public String getFullName() {
|
||||
return this.fullName;
|
||||
}
|
||||
|
||||
public void setFullName(String fullNameValue) {
|
||||
this.fullName = fullNameValue;
|
||||
}
|
||||
|
||||
public String getFamilyName() {
|
||||
return this.familyName;
|
||||
}
|
||||
|
||||
public void setFamilyName(String familyNameValue) {
|
||||
this.familyName = familyNameValue;
|
||||
}
|
||||
|
||||
public String getWeight() {
|
||||
return this.weight;
|
||||
}
|
||||
|
||||
public void setWeight(String weightValue) {
|
||||
this.weight = weightValue;
|
||||
}
|
||||
|
||||
public BoundingBox getFontBBox() {
|
||||
return this.fontBBox;
|
||||
}
|
||||
|
||||
public void setFontBBox(BoundingBox bBox) {
|
||||
this.fontBBox = bBox;
|
||||
}
|
||||
|
||||
public String getNotice() {
|
||||
return this.notice;
|
||||
}
|
||||
|
||||
public void setNotice(String noticeValue) {
|
||||
this.notice = noticeValue;
|
||||
}
|
||||
|
||||
public String getEncodingScheme() {
|
||||
return this.encodingScheme;
|
||||
}
|
||||
|
||||
public void setEncodingScheme(String encodingSchemeValue) {
|
||||
this.encodingScheme = encodingSchemeValue;
|
||||
}
|
||||
|
||||
public int getMappingScheme() {
|
||||
return this.mappingScheme;
|
||||
}
|
||||
|
||||
public void setMappingScheme(int mappingSchemeValue) {
|
||||
this.mappingScheme = mappingSchemeValue;
|
||||
}
|
||||
|
||||
public int getEscChar() {
|
||||
return this.escChar;
|
||||
}
|
||||
|
||||
public void setEscChar(int escCharValue) {
|
||||
this.escChar = escCharValue;
|
||||
}
|
||||
|
||||
public String getCharacterSet() {
|
||||
return this.characterSet;
|
||||
}
|
||||
|
||||
public void setCharacterSet(String characterSetValue) {
|
||||
this.characterSet = characterSetValue;
|
||||
}
|
||||
|
||||
public int getCharacters() {
|
||||
return this.characters;
|
||||
}
|
||||
|
||||
public void setCharacters(int charactersValue) {
|
||||
this.characters = charactersValue;
|
||||
}
|
||||
|
||||
public boolean isBaseFont() {
|
||||
return this.isBaseFont;
|
||||
}
|
||||
|
||||
public void setIsBaseFont(boolean isBaseFontValue) {
|
||||
this.isBaseFont = isBaseFontValue;
|
||||
}
|
||||
|
||||
public float[] getVVector() {
|
||||
return this.vVector;
|
||||
}
|
||||
|
||||
public void setVVector(float[] vVectorValue) {
|
||||
this.vVector = vVectorValue;
|
||||
}
|
||||
|
||||
public boolean isFixedV() {
|
||||
return this.isFixedV;
|
||||
}
|
||||
|
||||
public void setIsFixedV(boolean isFixedVValue) {
|
||||
this.isFixedV = isFixedVValue;
|
||||
}
|
||||
|
||||
public float getCapHeight() {
|
||||
return this.capHeight;
|
||||
}
|
||||
|
||||
public void setCapHeight(float capHeightValue) {
|
||||
this.capHeight = capHeightValue;
|
||||
}
|
||||
|
||||
public float getXHeight() {
|
||||
return this.xHeight;
|
||||
}
|
||||
|
||||
public void setXHeight(float xHeightValue) {
|
||||
this.xHeight = xHeightValue;
|
||||
}
|
||||
|
||||
public float getAscender() {
|
||||
return this.ascender;
|
||||
}
|
||||
|
||||
public void setAscender(float ascenderValue) {
|
||||
this.ascender = ascenderValue;
|
||||
}
|
||||
|
||||
public float getDescender() {
|
||||
return this.descender;
|
||||
}
|
||||
|
||||
public void setDescender(float descenderValue) {
|
||||
this.descender = descenderValue;
|
||||
}
|
||||
|
||||
public String getFontVersion() {
|
||||
return this.fontVersion;
|
||||
}
|
||||
|
||||
public void setFontVersion(String fontVersionValue) {
|
||||
this.fontVersion = fontVersionValue;
|
||||
}
|
||||
|
||||
public float getUnderlinePosition() {
|
||||
return this.underlinePosition;
|
||||
}
|
||||
|
||||
public void setUnderlinePosition(float underlinePositionValue) {
|
||||
this.underlinePosition = underlinePositionValue;
|
||||
}
|
||||
|
||||
public float getUnderlineThickness() {
|
||||
return this.underlineThickness;
|
||||
}
|
||||
|
||||
public void setUnderlineThickness(float underlineThicknessValue) {
|
||||
this.underlineThickness = underlineThicknessValue;
|
||||
}
|
||||
|
||||
public float getItalicAngle() {
|
||||
return this.italicAngle;
|
||||
}
|
||||
|
||||
public void setItalicAngle(float italicAngleValue) {
|
||||
this.italicAngle = italicAngleValue;
|
||||
}
|
||||
|
||||
public float[] getCharWidth() {
|
||||
return this.charWidth;
|
||||
}
|
||||
|
||||
public void setCharWidth(float[] charWidthValue) {
|
||||
this.charWidth = charWidthValue;
|
||||
}
|
||||
|
||||
public boolean isFixedPitch() {
|
||||
return this.isFixedPitch;
|
||||
}
|
||||
|
||||
public void setFixedPitch(boolean isFixedPitchValue) {
|
||||
this.isFixedPitch = isFixedPitchValue;
|
||||
}
|
||||
|
||||
public List<CharMetric> getCharMetrics() {
|
||||
return Collections.<CharMetric>unmodifiableList(this.charMetrics);
|
||||
}
|
||||
|
||||
public void setCharMetrics(List<CharMetric> charMetricsValue) {
|
||||
this.charMetrics = charMetricsValue;
|
||||
this.charMetricsMap = new HashMap<String, CharMetric>(this.charMetrics.size());
|
||||
for (CharMetric metric : charMetricsValue)
|
||||
this.charMetricsMap.put(metric.getName(), metric);
|
||||
}
|
||||
|
||||
public void addCharMetric(CharMetric metric) {
|
||||
this.charMetrics.add(metric);
|
||||
this.charMetricsMap.put(metric.getName(), metric);
|
||||
}
|
||||
|
||||
public List<TrackKern> getTrackKern() {
|
||||
return Collections.<TrackKern>unmodifiableList(this.trackKern);
|
||||
}
|
||||
|
||||
public void setTrackKern(List<TrackKern> trackKernValue) {
|
||||
this.trackKern = trackKernValue;
|
||||
}
|
||||
|
||||
public void addTrackKern(TrackKern kern) {
|
||||
this.trackKern.add(kern);
|
||||
}
|
||||
|
||||
public List<Composite> getComposites() {
|
||||
return Collections.<Composite>unmodifiableList(this.composites);
|
||||
}
|
||||
|
||||
public void setComposites(List<Composite> compositesList) {
|
||||
this.composites = compositesList;
|
||||
}
|
||||
|
||||
public void addComposite(Composite composite) {
|
||||
this.composites.add(composite);
|
||||
}
|
||||
|
||||
public List<KernPair> getKernPairs() {
|
||||
return Collections.<KernPair>unmodifiableList(this.kernPairs);
|
||||
}
|
||||
|
||||
public void addKernPair(KernPair kernPair) {
|
||||
this.kernPairs.add(kernPair);
|
||||
}
|
||||
|
||||
public void setKernPairs(List<KernPair> kernPairsList) {
|
||||
this.kernPairs = kernPairsList;
|
||||
}
|
||||
|
||||
public List<KernPair> getKernPairs0() {
|
||||
return Collections.<KernPair>unmodifiableList(this.kernPairs0);
|
||||
}
|
||||
|
||||
public void addKernPair0(KernPair kernPair) {
|
||||
this.kernPairs0.add(kernPair);
|
||||
}
|
||||
|
||||
public void setKernPairs0(List<KernPair> kernPairs0List) {
|
||||
this.kernPairs0 = kernPairs0List;
|
||||
}
|
||||
|
||||
public List<KernPair> getKernPairs1() {
|
||||
return Collections.<KernPair>unmodifiableList(this.kernPairs1);
|
||||
}
|
||||
|
||||
public void addKernPair1(KernPair kernPair) {
|
||||
this.kernPairs1.add(kernPair);
|
||||
}
|
||||
|
||||
public void setKernPairs1(List<KernPair> kernPairs1List) {
|
||||
this.kernPairs1 = kernPairs1List;
|
||||
}
|
||||
|
||||
public float getStandardHorizontalWidth() {
|
||||
return this.standardHorizontalWidth;
|
||||
}
|
||||
|
||||
public void setStandardHorizontalWidth(float standardHorizontalWidthValue) {
|
||||
this.standardHorizontalWidth = standardHorizontalWidthValue;
|
||||
}
|
||||
|
||||
public float getStandardVerticalWidth() {
|
||||
return this.standardVerticalWidth;
|
||||
}
|
||||
|
||||
public void setStandardVerticalWidth(float standardVerticalWidthValue) {
|
||||
this.standardVerticalWidth = standardVerticalWidthValue;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
package org.apache.fontbox.afm;
|
||||
|
||||
public class KernPair {
|
||||
private String firstKernCharacter;
|
||||
|
||||
private String secondKernCharacter;
|
||||
|
||||
private float x;
|
||||
|
||||
private float y;
|
||||
|
||||
public String getFirstKernCharacter() {
|
||||
return this.firstKernCharacter;
|
||||
}
|
||||
|
||||
public void setFirstKernCharacter(String firstKernCharacterValue) {
|
||||
this.firstKernCharacter = firstKernCharacterValue;
|
||||
}
|
||||
|
||||
public String getSecondKernCharacter() {
|
||||
return this.secondKernCharacter;
|
||||
}
|
||||
|
||||
public void setSecondKernCharacter(String secondKernCharacterValue) {
|
||||
this.secondKernCharacter = secondKernCharacterValue;
|
||||
}
|
||||
|
||||
public float getX() {
|
||||
return this.x;
|
||||
}
|
||||
|
||||
public void setX(float xValue) {
|
||||
this.x = xValue;
|
||||
}
|
||||
|
||||
public float getY() {
|
||||
return this.y;
|
||||
}
|
||||
|
||||
public void setY(float yValue) {
|
||||
this.y = yValue;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package org.apache.fontbox.afm;
|
||||
|
||||
public class Ligature {
|
||||
private String successor;
|
||||
|
||||
private String ligature;
|
||||
|
||||
public String getLigature() {
|
||||
return this.ligature;
|
||||
}
|
||||
|
||||
public void setLigature(String lig) {
|
||||
this.ligature = lig;
|
||||
}
|
||||
|
||||
public String getSuccessor() {
|
||||
return this.successor;
|
||||
}
|
||||
|
||||
public void setSuccessor(String successorValue) {
|
||||
this.successor = successorValue;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
package org.apache.fontbox.afm;
|
||||
|
||||
public class TrackKern {
|
||||
private int degree;
|
||||
|
||||
private float minPointSize;
|
||||
|
||||
private float minKern;
|
||||
|
||||
private float maxPointSize;
|
||||
|
||||
private float maxKern;
|
||||
|
||||
public int getDegree() {
|
||||
return this.degree;
|
||||
}
|
||||
|
||||
public void setDegree(int degreeValue) {
|
||||
this.degree = degreeValue;
|
||||
}
|
||||
|
||||
public float getMaxKern() {
|
||||
return this.maxKern;
|
||||
}
|
||||
|
||||
public void setMaxKern(float maxKernValue) {
|
||||
this.maxKern = maxKernValue;
|
||||
}
|
||||
|
||||
public float getMaxPointSize() {
|
||||
return this.maxPointSize;
|
||||
}
|
||||
|
||||
public void setMaxPointSize(float maxPointSizeValue) {
|
||||
this.maxPointSize = maxPointSizeValue;
|
||||
}
|
||||
|
||||
public float getMinKern() {
|
||||
return this.minKern;
|
||||
}
|
||||
|
||||
public void setMinKern(float minKernValue) {
|
||||
this.minKern = minKernValue;
|
||||
}
|
||||
|
||||
public float getMinPointSize() {
|
||||
return this.minPointSize;
|
||||
}
|
||||
|
||||
public void setMinPointSize(float minPointSizeValue) {
|
||||
this.minPointSize = minPointSizeValue;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,147 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.awt.geom.GeneralPath;
|
||||
import java.io.IOException;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import org.apache.fontbox.type1.Type1CharStringReader;
|
||||
|
||||
public class CFFCIDFont extends CFFFont {
|
||||
private String registry;
|
||||
|
||||
private String ordering;
|
||||
|
||||
private int supplement;
|
||||
|
||||
private List<Map<String, Object>> fontDictionaries = new LinkedList<Map<String, Object>>();
|
||||
|
||||
private List<Map<String, Object>> privateDictionaries = new LinkedList<Map<String, Object>>();
|
||||
|
||||
private FDSelect fdSelect;
|
||||
|
||||
private final Map<Integer, CIDKeyedType2CharString> charStringCache = new ConcurrentHashMap<Integer, CIDKeyedType2CharString>();
|
||||
|
||||
private final PrivateType1CharStringReader reader = new PrivateType1CharStringReader();
|
||||
|
||||
public String getRegistry() {
|
||||
return this.registry;
|
||||
}
|
||||
|
||||
void setRegistry(String registry) {
|
||||
this.registry = registry;
|
||||
}
|
||||
|
||||
public String getOrdering() {
|
||||
return this.ordering;
|
||||
}
|
||||
|
||||
void setOrdering(String ordering) {
|
||||
this.ordering = ordering;
|
||||
}
|
||||
|
||||
public int getSupplement() {
|
||||
return this.supplement;
|
||||
}
|
||||
|
||||
void setSupplement(int supplement) {
|
||||
this.supplement = supplement;
|
||||
}
|
||||
|
||||
public List<Map<String, Object>> getFontDicts() {
|
||||
return this.fontDictionaries;
|
||||
}
|
||||
|
||||
void setFontDict(List<Map<String, Object>> fontDict) {
|
||||
this.fontDictionaries = fontDict;
|
||||
}
|
||||
|
||||
public List<Map<String, Object>> getPrivDicts() {
|
||||
return this.privateDictionaries;
|
||||
}
|
||||
|
||||
void setPrivDict(List<Map<String, Object>> privDict) {
|
||||
this.privateDictionaries = privDict;
|
||||
}
|
||||
|
||||
public FDSelect getFdSelect() {
|
||||
return this.fdSelect;
|
||||
}
|
||||
|
||||
void setFdSelect(FDSelect fdSelect) {
|
||||
this.fdSelect = fdSelect;
|
||||
}
|
||||
|
||||
private int getDefaultWidthX(int gid) {
|
||||
int fdArrayIndex = this.fdSelect.getFDIndex(gid);
|
||||
if (fdArrayIndex == -1)
|
||||
return 1000;
|
||||
Map<String, Object> privDict = this.privateDictionaries.get(fdArrayIndex);
|
||||
return privDict.containsKey("defaultWidthX") ? ((Number)privDict.get("defaultWidthX")).intValue() : 1000;
|
||||
}
|
||||
|
||||
private int getNominalWidthX(int gid) {
|
||||
int fdArrayIndex = this.fdSelect.getFDIndex(gid);
|
||||
if (fdArrayIndex == -1)
|
||||
return 0;
|
||||
Map<String, Object> privDict = this.privateDictionaries.get(fdArrayIndex);
|
||||
return privDict.containsKey("nominalWidthX") ? ((Number)privDict.get("nominalWidthX")).intValue() : 0;
|
||||
}
|
||||
|
||||
private byte[][] getLocalSubrIndex(int gid) {
|
||||
int fdArrayIndex = this.fdSelect.getFDIndex(gid);
|
||||
if (fdArrayIndex == -1)
|
||||
return null;
|
||||
Map<String, Object> privDict = this.privateDictionaries.get(fdArrayIndex);
|
||||
return (byte[][])privDict.get("Subrs");
|
||||
}
|
||||
|
||||
public CIDKeyedType2CharString getType2CharString(int cid) throws IOException {
|
||||
CIDKeyedType2CharString type2 = this.charStringCache.get(Integer.valueOf(cid));
|
||||
if (type2 == null) {
|
||||
int gid = this.charset.getGIDForCID(cid);
|
||||
byte[] bytes = this.charStrings[gid];
|
||||
if (bytes == null)
|
||||
bytes = this.charStrings[0];
|
||||
Type2CharStringParser parser = new Type2CharStringParser(this.fontName, cid);
|
||||
List<Object> type2seq = parser.parse(bytes, this.globalSubrIndex, getLocalSubrIndex(gid));
|
||||
type2 = new CIDKeyedType2CharString(this.reader, this.fontName, cid, gid, type2seq, getDefaultWidthX(gid), getNominalWidthX(gid));
|
||||
this.charStringCache.put(Integer.valueOf(cid), type2);
|
||||
}
|
||||
return type2;
|
||||
}
|
||||
|
||||
public List<Number> getFontMatrix() {
|
||||
return (List<Number>)this.topDict.get("FontMatrix");
|
||||
}
|
||||
|
||||
public GeneralPath getPath(String selector) throws IOException {
|
||||
int cid = selectorToCID(selector);
|
||||
return getType2CharString(cid).getPath();
|
||||
}
|
||||
|
||||
public float getWidth(String selector) throws IOException {
|
||||
int cid = selectorToCID(selector);
|
||||
return (float)getType2CharString(cid).getWidth();
|
||||
}
|
||||
|
||||
public boolean hasGlyph(String selector) throws IOException {
|
||||
int cid = selectorToCID(selector);
|
||||
return (cid != 0);
|
||||
}
|
||||
|
||||
private int selectorToCID(String selector) {
|
||||
if (!selector.startsWith("\\"))
|
||||
throw new IllegalArgumentException("Invalid selector");
|
||||
return Integer.parseInt(selector.substring(1));
|
||||
}
|
||||
|
||||
private class PrivateType1CharStringReader implements Type1CharStringReader {
|
||||
private PrivateType1CharStringReader() {}
|
||||
|
||||
public Type1CharString getType1CharString(String name) throws IOException {
|
||||
return CFFCIDFont.this.getType2CharString(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public abstract class CFFCharset {
|
||||
private final boolean isCIDFont;
|
||||
|
||||
private final Map<Integer, Integer> sidOrCidToGid = new HashMap<Integer, Integer>(250);
|
||||
|
||||
private final Map<Integer, Integer> gidToSid = new HashMap<Integer, Integer>(250);
|
||||
|
||||
private final Map<String, Integer> nameToSid = new HashMap<String, Integer>(250);
|
||||
|
||||
private final Map<Integer, Integer> gidToCid = new HashMap<Integer, Integer>();
|
||||
|
||||
private final Map<Integer, String> gidToName = new HashMap<Integer, String>(250);
|
||||
|
||||
CFFCharset(boolean isCIDFont) {
|
||||
this.isCIDFont = isCIDFont;
|
||||
}
|
||||
|
||||
public boolean isCIDFont() {
|
||||
return this.isCIDFont;
|
||||
}
|
||||
|
||||
public void addSID(int gid, int sid, String name) {
|
||||
if (this.isCIDFont)
|
||||
throw new IllegalStateException("Not a Type 1-equivalent font");
|
||||
this.sidOrCidToGid.put(Integer.valueOf(sid), Integer.valueOf(gid));
|
||||
this.gidToSid.put(Integer.valueOf(gid), Integer.valueOf(sid));
|
||||
this.nameToSid.put(name, Integer.valueOf(sid));
|
||||
this.gidToName.put(Integer.valueOf(gid), name);
|
||||
}
|
||||
|
||||
public void addCID(int gid, int cid) {
|
||||
if (!this.isCIDFont)
|
||||
throw new IllegalStateException("Not a CIDFont");
|
||||
this.sidOrCidToGid.put(Integer.valueOf(cid), Integer.valueOf(gid));
|
||||
this.gidToCid.put(Integer.valueOf(gid), Integer.valueOf(cid));
|
||||
}
|
||||
|
||||
int getSIDForGID(int sid) {
|
||||
if (this.isCIDFont)
|
||||
throw new IllegalStateException("Not a Type 1-equivalent font");
|
||||
Integer gid = this.gidToSid.get(Integer.valueOf(sid));
|
||||
if (gid == null)
|
||||
return 0;
|
||||
return gid;
|
||||
}
|
||||
|
||||
int getGIDForSID(int sid) {
|
||||
if (this.isCIDFont)
|
||||
throw new IllegalStateException("Not a Type 1-equivalent font");
|
||||
Integer gid = this.sidOrCidToGid.get(Integer.valueOf(sid));
|
||||
if (gid == null)
|
||||
return 0;
|
||||
return gid;
|
||||
}
|
||||
|
||||
public int getGIDForCID(int cid) {
|
||||
if (!this.isCIDFont)
|
||||
throw new IllegalStateException("Not a CIDFont");
|
||||
Integer gid = this.sidOrCidToGid.get(Integer.valueOf(cid));
|
||||
if (gid == null)
|
||||
return 0;
|
||||
return gid;
|
||||
}
|
||||
|
||||
int getSID(String name) {
|
||||
if (this.isCIDFont)
|
||||
throw new IllegalStateException("Not a Type 1-equivalent font");
|
||||
Integer sid = this.nameToSid.get(name);
|
||||
if (sid == null)
|
||||
return 0;
|
||||
return sid;
|
||||
}
|
||||
|
||||
public String getNameForGID(int gid) {
|
||||
if (this.isCIDFont)
|
||||
throw new IllegalStateException("Not a Type 1-equivalent font");
|
||||
return this.gidToName.get(Integer.valueOf(gid));
|
||||
}
|
||||
|
||||
public int getCIDForGID(int gid) {
|
||||
if (!this.isCIDFont)
|
||||
throw new IllegalStateException("Not a CIDFont");
|
||||
Integer cid = this.gidToCid.get(Integer.valueOf(gid));
|
||||
if (cid != null)
|
||||
return cid;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class CFFDataInput extends DataInput {
|
||||
public CFFDataInput(byte[] buffer) {
|
||||
super(buffer);
|
||||
}
|
||||
|
||||
public int readCard8() throws IOException {
|
||||
return readUnsignedByte();
|
||||
}
|
||||
|
||||
public int readCard16() throws IOException {
|
||||
return readUnsignedShort();
|
||||
}
|
||||
|
||||
public int readOffset(int offSize) throws IOException {
|
||||
int value = 0;
|
||||
for (int i = 0; i < offSize; i++)
|
||||
value = value << 8 | readUnsignedByte();
|
||||
return value;
|
||||
}
|
||||
|
||||
public int readOffSize() throws IOException {
|
||||
return readUnsignedByte();
|
||||
}
|
||||
|
||||
public int readSID() throws IOException {
|
||||
return readUnsignedShort();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.apache.fontbox.encoding.Encoding;
|
||||
|
||||
public abstract class CFFEncoding extends Encoding {
|
||||
private final Map<Integer, String> codeToName = new HashMap<Integer, String>(250);
|
||||
|
||||
public String getName(int code) {
|
||||
String name = this.codeToName.get(Integer.valueOf(code));
|
||||
if (name == null)
|
||||
return ".notdef";
|
||||
return name;
|
||||
}
|
||||
|
||||
public void add(int code, int sid, String name) {
|
||||
this.codeToName.put(Integer.valueOf(code), name);
|
||||
addCharacterEncoding(code, name);
|
||||
}
|
||||
|
||||
protected void add(int code, int sid) {
|
||||
String name = CFFStandardString.getName(sid);
|
||||
this.codeToName.put(Integer.valueOf(code), name);
|
||||
addCharacterEncoding(code, name);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
public final class CFFExpertCharset extends CFFCharset {
|
||||
private static final int CHAR_CODE = 0;
|
||||
|
||||
private static final int CHAR_NAME = 1;
|
||||
|
||||
private static final Object[][] CFF_EXPERT_CHARSET_TABLE = new Object[][] {
|
||||
new Object[] { 0, ".notdef" }, new Object[] { 1, "space" }, new Object[] { 229, "exclamsmall" }, new Object[] { 230, "Hungarumlautsmall" }, new Object[] { 231, "dollaroldstyle" }, new Object[] { 232, "dollarsuperior" }, new Object[] { 233, "ampersandsmall" }, new Object[] { 234, "Acutesmall" }, new Object[] { 235, "parenleftsuperior" }, new Object[] { 236, "parenrightsuperior" },
|
||||
new Object[] { 237, "twodotenleader" }, new Object[] { 238, "onedotenleader" }, new Object[] { 13, "comma" }, new Object[] { 14, "hyphen" }, new Object[] { 15, "period" }, new Object[] { 99, "fraction" }, new Object[] { 239, "zerooldstyle" }, new Object[] { 240, "oneoldstyle" }, new Object[] { 241, "twooldstyle" }, new Object[] { 242, "threeoldstyle" },
|
||||
new Object[] { 243, "fouroldstyle" }, new Object[] { 244, "fiveoldstyle" }, new Object[] { 245, "sixoldstyle" }, new Object[] { 246, "sevenoldstyle" }, new Object[] { 247, "eightoldstyle" }, new Object[] { 248, "nineoldstyle" }, new Object[] { 27, "colon" }, new Object[] { 28, "semicolon" }, new Object[] { 249, "commasuperior" }, new Object[] { 250, "threequartersemdash" },
|
||||
new Object[] { 251, "periodsuperior" }, new Object[] { 252, "questionsmall" }, new Object[] { 253, "asuperior" }, new Object[] { 254, "bsuperior" }, new Object[] { 255, "centsuperior" }, new Object[] { 256, "dsuperior" }, new Object[] { 257, "esuperior" }, new Object[] { 258, "isuperior" }, new Object[] { 259, "lsuperior" }, new Object[] { 260, "msuperior" },
|
||||
new Object[] { 261, "nsuperior" }, new Object[] { 262, "osuperior" }, new Object[] { 263, "rsuperior" }, new Object[] { 264, "ssuperior" }, new Object[] { 265, "tsuperior" }, new Object[] { 266, "ff" }, new Object[] { 109, "fi" }, new Object[] { 110, "fl" }, new Object[] { 267, "ffi" }, new Object[] { 268, "ffl" },
|
||||
new Object[] { 269, "parenleftinferior" }, new Object[] { 270, "parenrightinferior" }, new Object[] { 271, "Circumflexsmall" }, new Object[] { 272, "hyphensuperior" }, new Object[] { 273, "Gravesmall" }, new Object[] { 274, "Asmall" }, new Object[] { 275, "Bsmall" }, new Object[] { 276, "Csmall" }, new Object[] { 277, "Dsmall" }, new Object[] { 278, "Esmall" },
|
||||
new Object[] { 279, "Fsmall" }, new Object[] { 280, "Gsmall" }, new Object[] { 281, "Hsmall" }, new Object[] { 282, "Ismall" }, new Object[] { 283, "Jsmall" }, new Object[] { 284, "Ksmall" }, new Object[] { 285, "Lsmall" }, new Object[] { 286, "Msmall" }, new Object[] { 287, "Nsmall" }, new Object[] { 288, "Osmall" },
|
||||
new Object[] { 289, "Psmall" }, new Object[] { 290, "Qsmall" }, new Object[] { 291, "Rsmall" }, new Object[] { 292, "Ssmall" }, new Object[] { 293, "Tsmall" }, new Object[] { 294, "Usmall" }, new Object[] { 295, "Vsmall" }, new Object[] { 296, "Wsmall" }, new Object[] { 297, "Xsmall" }, new Object[] { 298, "Ysmall" },
|
||||
new Object[] { 299, "Zsmall" }, new Object[] { 300, "colonmonetary" }, new Object[] { 301, "onefitted" }, new Object[] { 302, "rupiah" }, new Object[] { 303, "Tildesmall" }, new Object[] { 304, "exclamdownsmall" }, new Object[] { 305, "centoldstyle" }, new Object[] { 306, "Lslashsmall" }, new Object[] { 307, "Scaronsmall" }, new Object[] { 308, "Zcaronsmall" },
|
||||
new Object[] { 309, "Dieresissmall" }, new Object[] { 310, "Brevesmall" }, new Object[] { 311, "Caronsmall" }, new Object[] { 312, "Dotaccentsmall" }, new Object[] { 313, "Macronsmall" }, new Object[] { 314, "figuredash" }, new Object[] { 315, "hypheninferior" }, new Object[] { 316, "Ogoneksmall" }, new Object[] { 317, "Ringsmall" }, new Object[] { 318, "Cedillasmall" },
|
||||
new Object[] { 158, "onequarter" }, new Object[] { 155, "onehalf" }, new Object[] { 163, "threequarters" }, new Object[] { 319, "questiondownsmall" }, new Object[] { 320, "oneeighth" }, new Object[] { 321, "threeeighths" }, new Object[] { 322, "fiveeighths" }, new Object[] { 323, "seveneighths" }, new Object[] { 324, "onethird" }, new Object[] { 325, "twothirds" },
|
||||
new Object[] { 326, "zerosuperior" }, new Object[] { 150, "onesuperior" }, new Object[] { 164, "twosuperior" }, new Object[] { 169, "threesuperior" }, new Object[] { 327, "foursuperior" }, new Object[] { 328, "fivesuperior" }, new Object[] { 329, "sixsuperior" }, new Object[] { 330, "sevensuperior" }, new Object[] { 331, "eightsuperior" }, new Object[] { 332, "ninesuperior" },
|
||||
new Object[] { 333, "zeroinferior" }, new Object[] { 334, "oneinferior" }, new Object[] { 335, "twoinferior" }, new Object[] { 336, "threeinferior" }, new Object[] { 337, "fourinferior" }, new Object[] { 338, "fiveinferior" }, new Object[] { 339, "sixinferior" }, new Object[] { 340, "seveninferior" }, new Object[] { 341, "eightinferior" }, new Object[] { 342, "nineinferior" },
|
||||
new Object[] { 343, "centinferior" }, new Object[] { 344, "dollarinferior" }, new Object[] { 345, "periodinferior" }, new Object[] { 346, "commainferior" }, new Object[] { 347, "Agravesmall" }, new Object[] { 348, "Aacutesmall" }, new Object[] { 349, "Acircumflexsmall" }, new Object[] { 350, "Atildesmall" }, new Object[] { 351, "Adieresissmall" }, new Object[] { 352, "Aringsmall" },
|
||||
new Object[] { 353, "AEsmall" }, new Object[] { 354, "Ccedillasmall" }, new Object[] { 355, "Egravesmall" }, new Object[] { 356, "Eacutesmall" }, new Object[] { 357, "Ecircumflexsmall" }, new Object[] { 358, "Edieresissmall" }, new Object[] { 359, "Igravesmall" }, new Object[] { 360, "Iacutesmall" }, new Object[] { 361, "Icircumflexsmall" }, new Object[] { 362, "Idieresissmall" },
|
||||
new Object[] { 363, "Ethsmall" }, new Object[] { 364, "Ntildesmall" }, new Object[] { 365, "Ogravesmall" }, new Object[] { 366, "Oacutesmall" }, new Object[] { 367, "Ocircumflexsmall" }, new Object[] { 368, "Otildesmall" }, new Object[] { 369, "Odieresissmall" }, new Object[] { 370, "OEsmall" }, new Object[] { 371, "Oslashsmall" }, new Object[] { 372, "Ugravesmall" },
|
||||
new Object[] { 373, "Uacutesmall" }, new Object[] { 374, "Ucircumflexsmall" }, new Object[] { 375, "Udieresissmall" }, new Object[] { 376, "Yacutesmall" }, new Object[] { 377, "Thornsmall" }, new Object[] { 378, "Ydieresissmall" } };
|
||||
|
||||
private CFFExpertCharset() {
|
||||
super(false);
|
||||
}
|
||||
|
||||
public static CFFExpertCharset getInstance() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
private static final CFFExpertCharset INSTANCE = new CFFExpertCharset();
|
||||
|
||||
static {
|
||||
int gid = 0;
|
||||
for (Object[] charsetEntry : CFF_EXPERT_CHARSET_TABLE)
|
||||
INSTANCE.addSID(gid++, ((Integer)charsetEntry[0]).intValue(), charsetEntry[1].toString());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
public final class CFFExpertEncoding extends CFFEncoding {
|
||||
private static final int CHAR_CODE = 0;
|
||||
|
||||
private static final int CHAR_SID = 1;
|
||||
|
||||
private static final int[][] CFF_EXPERT_ENCODING_TABLE = new int[][] {
|
||||
new int[] { 0, 0 }, new int[] { 1, 0 }, new int[] { 2, 0 }, new int[] { 3, 0 }, new int[] { 4, 0 }, new int[] { 5, 0 }, new int[] { 6, 0 }, new int[] { 7, 0 }, new int[] { 8, 0 }, new int[] { 9, 0 },
|
||||
new int[] { 10, 0 }, new int[] { 11, 0 }, new int[] { 12, 0 }, new int[] { 13, 0 }, new int[] { 14, 0 }, new int[] { 15, 0 }, new int[] { 16, 0 }, new int[] { 17, 0 }, new int[] { 18, 0 }, new int[] { 19, 0 },
|
||||
new int[] { 20, 0 }, new int[] { 21, 0 }, new int[] { 22, 0 }, new int[] { 23, 0 }, new int[] { 24, 0 }, new int[] { 25, 0 }, new int[] { 26, 0 }, new int[] { 27, 0 }, new int[] { 28, 0 }, new int[] { 29, 0 },
|
||||
new int[] { 30, 0 }, new int[] { 31, 0 }, new int[] { 32, 1 }, new int[] { 33, 229 }, new int[] { 34, 230 }, new int[] { 35, 0 }, new int[] { 36, 231 }, new int[] { 37, 232 }, new int[] { 38, 233 }, new int[] { 39, 234 },
|
||||
new int[] { 40, 235 }, new int[] { 41, 236 }, new int[] { 42, 237 }, new int[] { 43, 238 }, new int[] { 44, 13 }, new int[] { 45, 14 }, new int[] { 46, 15 }, new int[] { 47, 99 }, new int[] { 48, 239 }, new int[] { 49, 240 },
|
||||
new int[] { 50, 241 }, new int[] { 51, 242 }, new int[] { 52, 243 }, new int[] { 53, 244 }, new int[] { 54, 245 }, new int[] { 55, 246 }, new int[] { 56, 247 }, new int[] { 57, 248 }, new int[] { 58, 27 }, new int[] { 59, 28 },
|
||||
new int[] { 60, 249 }, new int[] { 61, 250 }, new int[] { 62, 251 }, new int[] { 63, 252 }, new int[] { 64, 0 }, new int[] { 65, 253 }, new int[] { 66, 254 }, new int[] { 67, 255 }, new int[] { 68, 256 }, new int[] { 69, 257 },
|
||||
new int[] { 70, 0 }, new int[] { 71, 0 }, new int[] { 72, 0 }, new int[] { 73, 258 }, new int[] { 74, 0 }, new int[] { 75, 0 }, new int[] { 76, 259 }, new int[] { 77, 260 }, new int[] { 78, 261 }, new int[] { 79, 262 },
|
||||
new int[] { 80, 0 }, new int[] { 81, 0 }, new int[] { 82, 263 }, new int[] { 83, 264 }, new int[] { 84, 265 }, new int[] { 85, 0 }, new int[] { 86, 266 }, new int[] { 87, 109 }, new int[] { 88, 110 }, new int[] { 89, 267 },
|
||||
new int[] { 90, 268 }, new int[] { 91, 269 }, new int[] { 92, 0 }, new int[] { 93, 270 }, new int[] { 94, 271 }, new int[] { 95, 272 }, new int[] { 96, 273 }, new int[] { 97, 274 }, new int[] { 98, 275 }, new int[] { 99, 276 },
|
||||
new int[] { 100, 277 }, new int[] { 101, 278 }, new int[] { 102, 279 }, new int[] { 103, 280 }, new int[] { 104, 281 }, new int[] { 105, 282 }, new int[] { 106, 283 }, new int[] { 107, 284 }, new int[] { 108, 285 }, new int[] { 109, 286 },
|
||||
new int[] { 110, 287 }, new int[] { 111, 288 }, new int[] { 112, 289 }, new int[] { 113, 290 }, new int[] { 114, 291 }, new int[] { 115, 292 }, new int[] { 116, 293 }, new int[] { 117, 294 }, new int[] { 118, 295 }, new int[] { 119, 296 },
|
||||
new int[] { 120, 297 }, new int[] { 121, 298 }, new int[] { 122, 299 }, new int[] { 123, 300 }, new int[] { 124, 301 }, new int[] { 125, 302 }, new int[] { 126, 303 }, new int[] { 127, 0 }, new int[] { 128, 0 }, new int[] { 129, 0 },
|
||||
new int[] { 130, 0 }, new int[] { 131, 0 }, new int[] { 132, 0 }, new int[] { 133, 0 }, new int[] { 134, 0 }, new int[] { 135, 0 }, new int[] { 136, 0 }, new int[] { 137, 0 }, new int[] { 138, 0 }, new int[] { 139, 0 },
|
||||
new int[] { 140, 0 }, new int[] { 141, 0 }, new int[] { 142, 0 }, new int[] { 143, 0 }, new int[] { 144, 0 }, new int[] { 145, 0 }, new int[] { 146, 0 }, new int[] { 147, 0 }, new int[] { 148, 0 }, new int[] { 149, 0 },
|
||||
new int[] { 150, 0 }, new int[] { 151, 0 }, new int[] { 152, 0 }, new int[] { 153, 0 }, new int[] { 154, 0 }, new int[] { 155, 0 }, new int[] { 156, 0 }, new int[] { 157, 0 }, new int[] { 158, 0 }, new int[] { 159, 0 },
|
||||
new int[] { 160, 0 }, new int[] { 161, 304 }, new int[] { 162, 305 }, new int[] { 163, 306 }, new int[] { 164, 0 }, new int[] { 165, 0 }, new int[] { 166, 307 }, new int[] { 167, 308 }, new int[] { 168, 309 }, new int[] { 169, 310 },
|
||||
new int[] { 170, 311 }, new int[] { 171, 0 }, new int[] { 172, 312 }, new int[] { 173, 0 }, new int[] { 174, 0 }, new int[] { 175, 313 }, new int[] { 176, 0 }, new int[] { 177, 0 }, new int[] { 178, 314 }, new int[] { 179, 315 },
|
||||
new int[] { 180, 0 }, new int[] { 181, 0 }, new int[] { 182, 316 }, new int[] { 183, 317 }, new int[] { 184, 318 }, new int[] { 185, 0 }, new int[] { 186, 0 }, new int[] { 187, 0 }, new int[] { 188, 158 }, new int[] { 189, 155 },
|
||||
new int[] { 190, 163 }, new int[] { 191, 319 }, new int[] { 192, 320 }, new int[] { 193, 321 }, new int[] { 194, 322 }, new int[] { 195, 323 }, new int[] { 196, 324 }, new int[] { 197, 325 }, new int[] { 198, 0 }, new int[] { 199, 0 },
|
||||
new int[] { 200, 326 }, new int[] { 201, 150 }, new int[] { 202, 164 }, new int[] { 203, 169 }, new int[] { 204, 327 }, new int[] { 205, 328 }, new int[] { 206, 329 }, new int[] { 207, 330 }, new int[] { 208, 331 }, new int[] { 209, 332 },
|
||||
new int[] { 210, 333 }, new int[] { 211, 334 }, new int[] { 212, 335 }, new int[] { 213, 336 }, new int[] { 214, 337 }, new int[] { 215, 338 }, new int[] { 216, 339 }, new int[] { 217, 340 }, new int[] { 218, 341 }, new int[] { 219, 342 },
|
||||
new int[] { 220, 343 }, new int[] { 221, 344 }, new int[] { 222, 345 }, new int[] { 223, 346 }, new int[] { 224, 347 }, new int[] { 225, 348 }, new int[] { 226, 349 }, new int[] { 227, 350 }, new int[] { 228, 351 }, new int[] { 229, 352 },
|
||||
new int[] { 230, 353 }, new int[] { 231, 354 }, new int[] { 232, 355 }, new int[] { 233, 356 }, new int[] { 234, 357 }, new int[] { 235, 358 }, new int[] { 236, 359 }, new int[] { 237, 360 }, new int[] { 238, 361 }, new int[] { 239, 362 },
|
||||
new int[] { 240, 363 }, new int[] { 241, 364 }, new int[] { 242, 365 }, new int[] { 243, 366 }, new int[] { 244, 367 }, new int[] { 245, 368 }, new int[] { 246, 369 }, new int[] { 247, 370 }, new int[] { 248, 371 }, new int[] { 249, 372 },
|
||||
new int[] { 250, 373 }, new int[] { 251, 374 }, new int[] { 252, 375 }, new int[] { 253, 376 }, new int[] { 254, 377 }, new int[] { 255, 378 } };
|
||||
|
||||
public static CFFExpertEncoding getInstance() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
private static final CFFExpertEncoding INSTANCE = new CFFExpertEncoding();
|
||||
|
||||
static {
|
||||
for (int[] encodingEntry : CFF_EXPERT_ENCODING_TABLE)
|
||||
INSTANCE.add(encodingEntry[0], encodingEntry[1]);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
public final class CFFExpertSubsetCharset extends CFFCharset {
|
||||
private static final int CHAR_CODE = 0;
|
||||
|
||||
private static final int CHAR_NAME = 1;
|
||||
|
||||
private static final Object[][] CFF_EXPERT_SUBSET_CHARSET_TABLE = new Object[][] {
|
||||
new Object[] { 0, ".notdef" }, new Object[] { 1, "space" }, new Object[] { 231, "dollaroldstyle" }, new Object[] { 232, "dollarsuperior" }, new Object[] { 235, "parenleftsuperior" }, new Object[] { 236, "parenrightsuperior" }, new Object[] { 237, "twodotenleader" }, new Object[] { 238, "onedotenleader" }, new Object[] { 13, "comma" }, new Object[] { 14, "hyphen" },
|
||||
new Object[] { 15, "period" }, new Object[] { 99, "fraction" }, new Object[] { 239, "zerooldstyle" }, new Object[] { 240, "oneoldstyle" }, new Object[] { 241, "twooldstyle" }, new Object[] { 242, "threeoldstyle" }, new Object[] { 243, "fouroldstyle" }, new Object[] { 244, "fiveoldstyle" }, new Object[] { 245, "sixoldstyle" }, new Object[] { 246, "sevenoldstyle" },
|
||||
new Object[] { 247, "eightoldstyle" }, new Object[] { 248, "nineoldstyle" }, new Object[] { 27, "colon" }, new Object[] { 28, "semicolon" }, new Object[] { 249, "commasuperior" }, new Object[] { 250, "threequartersemdash" }, new Object[] { 251, "periodsuperior" }, new Object[] { 253, "asuperior" }, new Object[] { 254, "bsuperior" }, new Object[] { 255, "centsuperior" },
|
||||
new Object[] { 256, "dsuperior" }, new Object[] { 257, "esuperior" }, new Object[] { 258, "isuperior" }, new Object[] { 259, "lsuperior" }, new Object[] { 260, "msuperior" }, new Object[] { 261, "nsuperior" }, new Object[] { 262, "osuperior" }, new Object[] { 263, "rsuperior" }, new Object[] { 264, "ssuperior" }, new Object[] { 265, "tsuperior" },
|
||||
new Object[] { 266, "ff" }, new Object[] { 109, "fi" }, new Object[] { 110, "fl" }, new Object[] { 267, "ffi" }, new Object[] { 268, "ffl" }, new Object[] { 269, "parenleftinferior" }, new Object[] { 270, "parenrightinferior" }, new Object[] { 272, "hyphensuperior" }, new Object[] { 300, "colonmonetary" }, new Object[] { 301, "onefitted" },
|
||||
new Object[] { 302, "rupiah" }, new Object[] { 305, "centoldstyle" }, new Object[] { 314, "figuredash" }, new Object[] { 315, "hypheninferior" }, new Object[] { 158, "onequarter" }, new Object[] { 155, "onehalf" }, new Object[] { 163, "threequarters" }, new Object[] { 320, "oneeighth" }, new Object[] { 321, "threeeighths" }, new Object[] { 322, "fiveeighths" },
|
||||
new Object[] { 323, "seveneighths" }, new Object[] { 324, "onethird" }, new Object[] { 325, "twothirds" }, new Object[] { 326, "zerosuperior" }, new Object[] { 150, "onesuperior" }, new Object[] { 164, "twosuperior" }, new Object[] { 169, "threesuperior" }, new Object[] { 327, "foursuperior" }, new Object[] { 328, "fivesuperior" }, new Object[] { 329, "sixsuperior" },
|
||||
new Object[] { 330, "sevensuperior" }, new Object[] { 331, "eightsuperior" }, new Object[] { 332, "ninesuperior" }, new Object[] { 333, "zeroinferior" }, new Object[] { 334, "oneinferior" }, new Object[] { 335, "twoinferior" }, new Object[] { 336, "threeinferior" }, new Object[] { 337, "fourinferior" }, new Object[] { 338, "fiveinferior" }, new Object[] { 339, "sixinferior" },
|
||||
new Object[] { 340, "seveninferior" }, new Object[] { 341, "eightinferior" }, new Object[] { 342, "nineinferior" }, new Object[] { 343, "centinferior" }, new Object[] { 344, "dollarinferior" }, new Object[] { 345, "periodinferior" }, new Object[] { 346, "commainferior" } };
|
||||
|
||||
private CFFExpertSubsetCharset() {
|
||||
super(false);
|
||||
}
|
||||
|
||||
public static CFFExpertSubsetCharset getInstance() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
private static final CFFExpertSubsetCharset INSTANCE = new CFFExpertSubsetCharset();
|
||||
|
||||
static {
|
||||
int gid = 0;
|
||||
for (Object[] charsetEntry : CFF_EXPERT_SUBSET_CHARSET_TABLE)
|
||||
INSTANCE.addSID(gid++, ((Integer)charsetEntry[0]).intValue(), charsetEntry[1].toString());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.apache.fontbox.FontBoxFont;
|
||||
import org.apache.fontbox.util.BoundingBox;
|
||||
|
||||
public abstract class CFFFont implements FontBoxFont {
|
||||
protected String fontName;
|
||||
|
||||
protected final Map<String, Object> topDict = new LinkedHashMap<String, Object>();
|
||||
|
||||
protected CFFCharset charset;
|
||||
|
||||
protected byte[][] charStrings;
|
||||
|
||||
protected byte[][] globalSubrIndex;
|
||||
|
||||
private CFFParser.ByteSource source;
|
||||
|
||||
public String getName() {
|
||||
return this.fontName;
|
||||
}
|
||||
|
||||
void setName(String name) {
|
||||
this.fontName = name;
|
||||
}
|
||||
|
||||
public void addValueToTopDict(String name, Object value) {
|
||||
if (value != null)
|
||||
this.topDict.put(name, value);
|
||||
}
|
||||
|
||||
public Map<String, Object> getTopDict() {
|
||||
return this.topDict;
|
||||
}
|
||||
|
||||
public abstract List<Number> getFontMatrix();
|
||||
|
||||
public BoundingBox getFontBBox() {
|
||||
List<Number> numbers = (List<Number>)this.topDict.get("FontBBox");
|
||||
return new BoundingBox(numbers);
|
||||
}
|
||||
|
||||
public CFFCharset getCharset() {
|
||||
return this.charset;
|
||||
}
|
||||
|
||||
void setCharset(CFFCharset charset) {
|
||||
this.charset = charset;
|
||||
}
|
||||
|
||||
public final List<byte[]> getCharStringBytes() {
|
||||
return Arrays.<byte[]>asList(this.charStrings);
|
||||
}
|
||||
|
||||
final void setData(CFFParser.ByteSource source) {
|
||||
this.source = source;
|
||||
}
|
||||
|
||||
public byte[] getData() throws IOException {
|
||||
return this.source.getBytes();
|
||||
}
|
||||
|
||||
public int getNumCharStrings() {
|
||||
return this.charStrings.length;
|
||||
}
|
||||
|
||||
void setGlobalSubrIndex(byte[][] globalSubrIndexValue) {
|
||||
this.globalSubrIndex = globalSubrIndexValue;
|
||||
}
|
||||
|
||||
public List<byte[]> getGlobalSubrIndex() {
|
||||
return Arrays.<byte[]>asList(this.globalSubrIndex);
|
||||
}
|
||||
|
||||
public abstract Type2CharString getType2CharString(int paramInt) throws IOException;
|
||||
|
||||
public String toString() {
|
||||
return getClass().getSimpleName() + "[name=" + this.fontName + ", topDict=" + this.topDict + ", charset=" + this.charset + ", charStrings=" + Arrays.deepToString((Object[])this.charStrings) + "]";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
public final class CFFISOAdobeCharset extends CFFCharset {
|
||||
private static final int CHAR_CODE = 0;
|
||||
|
||||
private static final int CHAR_NAME = 1;
|
||||
|
||||
private static final Object[][] CFF_ISO_ADOBE_CHARSET_TABLE = new Object[][] {
|
||||
new Object[] { 0, ".notdef" }, new Object[] { 1, "space" }, new Object[] { 2, "exclam" }, new Object[] { 3, "quotedbl" }, new Object[] { 4, "numbersign" }, new Object[] { 5, "dollar" }, new Object[] { 6, "percent" }, new Object[] { 7, "ampersand" }, new Object[] { 8, "quoteright" }, new Object[] { 9, "parenleft" },
|
||||
new Object[] { 10, "parenright" }, new Object[] { 11, "asterisk" }, new Object[] { 12, "plus" }, new Object[] { 13, "comma" }, new Object[] { 14, "hyphen" }, new Object[] { 15, "period" }, new Object[] { 16, "slash" }, new Object[] { 17, "zero" }, new Object[] { 18, "one" }, new Object[] { 19, "two" },
|
||||
new Object[] { 20, "three" }, new Object[] { 21, "four" }, new Object[] { 22, "five" }, new Object[] { 23, "six" }, new Object[] { 24, "seven" }, new Object[] { 25, "eight" }, new Object[] { 26, "nine" }, new Object[] { 27, "colon" }, new Object[] { 28, "semicolon" }, new Object[] { 29, "less" },
|
||||
new Object[] { 30, "equal" }, new Object[] { 31, "greater" }, new Object[] { 32, "question" }, new Object[] { 33, "at" }, new Object[] { 34, "A" }, new Object[] { 35, "B" }, new Object[] { 36, "C" }, new Object[] { 37, "D" }, new Object[] { 38, "E" }, new Object[] { 39, "F" },
|
||||
new Object[] { 40, "G" }, new Object[] { 41, "H" }, new Object[] { 42, "I" }, new Object[] { 43, "J" }, new Object[] { 44, "K" }, new Object[] { 45, "L" }, new Object[] { 46, "M" }, new Object[] { 47, "N" }, new Object[] { 48, "O" }, new Object[] { 49, "P" },
|
||||
new Object[] { 50, "Q" }, new Object[] { 51, "R" }, new Object[] { 52, "S" }, new Object[] { 53, "T" }, new Object[] { 54, "U" }, new Object[] { 55, "V" }, new Object[] { 56, "W" }, new Object[] { 57, "X" }, new Object[] { 58, "Y" }, new Object[] { 59, "Z" },
|
||||
new Object[] { 60, "bracketleft" }, new Object[] { 61, "backslash" }, new Object[] { 62, "bracketright" }, new Object[] { 63, "asciicircum" }, new Object[] { 64, "underscore" }, new Object[] { 65, "quoteleft" }, new Object[] { 66, "a" }, new Object[] { 67, "b" }, new Object[] { 68, "c" }, new Object[] { 69, "d" },
|
||||
new Object[] { 70, "e" }, new Object[] { 71, "f" }, new Object[] { 72, "g" }, new Object[] { 73, "h" }, new Object[] { 74, "i" }, new Object[] { 75, "j" }, new Object[] { 76, "k" }, new Object[] { 77, "l" }, new Object[] { 78, "m" }, new Object[] { 79, "n" },
|
||||
new Object[] { 80, "o" }, new Object[] { 81, "p" }, new Object[] { 82, "q" }, new Object[] { 83, "r" }, new Object[] { 84, "s" }, new Object[] { 85, "t" }, new Object[] { 86, "u" }, new Object[] { 87, "v" }, new Object[] { 88, "w" }, new Object[] { 89, "x" },
|
||||
new Object[] { 90, "y" }, new Object[] { 91, "z" }, new Object[] { 92, "braceleft" }, new Object[] { 93, "bar" }, new Object[] { 94, "braceright" }, new Object[] { 95, "asciitilde" }, new Object[] { 96, "exclamdown" }, new Object[] { 97, "cent" }, new Object[] { 98, "sterling" }, new Object[] { 99, "fraction" },
|
||||
new Object[] { 100, "yen" }, new Object[] { 101, "florin" }, new Object[] { 102, "section" }, new Object[] { 103, "currency" }, new Object[] { 104, "quotesingle" }, new Object[] { 105, "quotedblleft" }, new Object[] { 106, "guillemotleft" }, new Object[] { 107, "guilsinglleft" }, new Object[] { 108, "guilsinglright" }, new Object[] { 109, "fi" },
|
||||
new Object[] { 110, "fl" }, new Object[] { 111, "endash" }, new Object[] { 112, "dagger" }, new Object[] { 113, "daggerdbl" }, new Object[] { 114, "periodcentered" }, new Object[] { 115, "paragraph" }, new Object[] { 116, "bullet" }, new Object[] { 117, "quotesinglbase" }, new Object[] { 118, "quotedblbase" }, new Object[] { 119, "quotedblright" },
|
||||
new Object[] { 120, "guillemotright" }, new Object[] { 121, "ellipsis" }, new Object[] { 122, "perthousand" }, new Object[] { 123, "questiondown" }, new Object[] { 124, "grave" }, new Object[] { 125, "acute" }, new Object[] { 126, "circumflex" }, new Object[] { 127, "tilde" }, new Object[] { 128, "macron" }, new Object[] { 129, "breve" },
|
||||
new Object[] { 130, "dotaccent" }, new Object[] { 131, "dieresis" }, new Object[] { 132, "ring" }, new Object[] { 133, "cedilla" }, new Object[] { 134, "hungarumlaut" }, new Object[] { 135, "ogonek" }, new Object[] { 136, "caron" }, new Object[] { 137, "emdash" }, new Object[] { 138, "AE" }, new Object[] { 139, "ordfeminine" },
|
||||
new Object[] { 140, "Lslash" }, new Object[] { 141, "Oslash" }, new Object[] { 142, "OE" }, new Object[] { 143, "ordmasculine" }, new Object[] { 144, "ae" }, new Object[] { 145, "dotlessi" }, new Object[] { 146, "lslash" }, new Object[] { 147, "oslash" }, new Object[] { 148, "oe" }, new Object[] { 149, "germandbls" },
|
||||
new Object[] { 150, "onesuperior" }, new Object[] { 151, "logicalnot" }, new Object[] { 152, "mu" }, new Object[] { 153, "trademark" }, new Object[] { 154, "Eth" }, new Object[] { 155, "onehalf" }, new Object[] { 156, "plusminus" }, new Object[] { 157, "Thorn" }, new Object[] { 158, "onequarter" }, new Object[] { 159, "divide" },
|
||||
new Object[] { 160, "brokenbar" }, new Object[] { 161, "degree" }, new Object[] { 162, "thorn" }, new Object[] { 163, "threequarters" }, new Object[] { 164, "twosuperior" }, new Object[] { 165, "registered" }, new Object[] { 166, "minus" }, new Object[] { 167, "eth" }, new Object[] { 168, "multiply" }, new Object[] { 169, "threesuperior" },
|
||||
new Object[] { 170, "copyright" }, new Object[] { 171, "Aacute" }, new Object[] { 172, "Acircumflex" }, new Object[] { 173, "Adieresis" }, new Object[] { 174, "Agrave" }, new Object[] { 175, "Aring" }, new Object[] { 176, "Atilde" }, new Object[] { 177, "Ccedilla" }, new Object[] { 178, "Eacute" }, new Object[] { 179, "Ecircumflex" },
|
||||
new Object[] { 180, "Edieresis" }, new Object[] { 181, "Egrave" }, new Object[] { 182, "Iacute" }, new Object[] { 183, "Icircumflex" }, new Object[] { 184, "Idieresis" }, new Object[] { 185, "Igrave" }, new Object[] { 186, "Ntilde" }, new Object[] { 187, "Oacute" }, new Object[] { 188, "Ocircumflex" }, new Object[] { 189, "Odieresis" },
|
||||
new Object[] { 190, "Ograve" }, new Object[] { 191, "Otilde" }, new Object[] { 192, "Scaron" }, new Object[] { 193, "Uacute" }, new Object[] { 194, "Ucircumflex" }, new Object[] { 195, "Udieresis" }, new Object[] { 196, "Ugrave" }, new Object[] { 197, "Yacute" }, new Object[] { 198, "Ydieresis" }, new Object[] { 199, "Zcaron" },
|
||||
new Object[] { 200, "aacute" }, new Object[] { 201, "acircumflex" }, new Object[] { 202, "adieresis" }, new Object[] { 203, "agrave" }, new Object[] { 204, "aring" }, new Object[] { 205, "atilde" }, new Object[] { 206, "ccedilla" }, new Object[] { 207, "eacute" }, new Object[] { 208, "ecircumflex" }, new Object[] { 209, "edieresis" },
|
||||
new Object[] { 210, "egrave" }, new Object[] { 211, "iacute" }, new Object[] { 212, "icircumflex" }, new Object[] { 213, "idieresis" }, new Object[] { 214, "igrave" }, new Object[] { 215, "ntilde" }, new Object[] { 216, "oacute" }, new Object[] { 217, "ocircumflex" }, new Object[] { 218, "odieresis" }, new Object[] { 219, "ograve" },
|
||||
new Object[] { 220, "otilde" }, new Object[] { 221, "scaron" }, new Object[] { 222, "uacute" }, new Object[] { 223, "ucircumflex" }, new Object[] { 224, "udieresis" }, new Object[] { 225, "ugrave" }, new Object[] { 226, "yacute" }, new Object[] { 227, "ydieresis" }, new Object[] { 228, "zcaron" } };
|
||||
|
||||
private CFFISOAdobeCharset() {
|
||||
super(false);
|
||||
}
|
||||
|
||||
public static CFFISOAdobeCharset getInstance() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
private static final CFFISOAdobeCharset INSTANCE = new CFFISOAdobeCharset();
|
||||
|
||||
static {
|
||||
int gid = 0;
|
||||
for (Object[] charsetEntry : CFF_ISO_ADOBE_CHARSET_TABLE)
|
||||
INSTANCE.addSID(gid++, ((Integer)charsetEntry[0]).intValue(), charsetEntry[1].toString());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public final class CFFOperator {
|
||||
private Key operatorKey = null;
|
||||
|
||||
private String operatorName = null;
|
||||
|
||||
private CFFOperator(Key key, String name) {
|
||||
setKey(key);
|
||||
setName(name);
|
||||
}
|
||||
|
||||
public Key getKey() {
|
||||
return this.operatorKey;
|
||||
}
|
||||
|
||||
private void setKey(Key key) {
|
||||
this.operatorKey = key;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.operatorName;
|
||||
}
|
||||
|
||||
private void setName(String name) {
|
||||
this.operatorName = name;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return getName();
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return getKey().hashCode();
|
||||
}
|
||||
|
||||
public boolean equals(Object object) {
|
||||
if (object instanceof CFFOperator) {
|
||||
CFFOperator that = (CFFOperator)object;
|
||||
return getKey().equals(that.getKey());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static void register(Key key, String name) {
|
||||
CFFOperator operator = new CFFOperator(key, name);
|
||||
keyMap.put(key, operator);
|
||||
nameMap.put(name, operator);
|
||||
}
|
||||
|
||||
public static CFFOperator getOperator(Key key) {
|
||||
return keyMap.get(key);
|
||||
}
|
||||
|
||||
public static CFFOperator getOperator(String name) {
|
||||
return nameMap.get(name);
|
||||
}
|
||||
|
||||
public static class Key {
|
||||
private int[] value = null;
|
||||
|
||||
public Key(int b0) {
|
||||
this(new int[] { b0 });
|
||||
}
|
||||
|
||||
public Key(int b0, int b1) {
|
||||
this(new int[] { b0, b1 });
|
||||
}
|
||||
|
||||
private Key(int[] value) {
|
||||
setValue(value);
|
||||
}
|
||||
|
||||
public int[] getValue() {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
private void setValue(int[] value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return Arrays.toString(getValue());
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return Arrays.hashCode(getValue());
|
||||
}
|
||||
|
||||
public boolean equals(Object object) {
|
||||
if (object instanceof Key) {
|
||||
Key that = (Key)object;
|
||||
return Arrays.equals(getValue(), that.getValue());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static Map<Key, CFFOperator> keyMap = new LinkedHashMap<Key, CFFOperator>(52);
|
||||
|
||||
private static Map<String, CFFOperator> nameMap = new LinkedHashMap<String, CFFOperator>(52);
|
||||
|
||||
static {
|
||||
register(new Key(0), "version");
|
||||
register(new Key(1), "Notice");
|
||||
register(new Key(12, 0), "Copyright");
|
||||
register(new Key(2), "FullName");
|
||||
register(new Key(3), "FamilyName");
|
||||
register(new Key(4), "Weight");
|
||||
register(new Key(12, 1), "isFixedPitch");
|
||||
register(new Key(12, 2), "ItalicAngle");
|
||||
register(new Key(12, 3), "UnderlinePosition");
|
||||
register(new Key(12, 4), "UnderlineThickness");
|
||||
register(new Key(12, 5), "PaintType");
|
||||
register(new Key(12, 6), "CharstringType");
|
||||
register(new Key(12, 7), "FontMatrix");
|
||||
register(new Key(13), "UniqueID");
|
||||
register(new Key(5), "FontBBox");
|
||||
register(new Key(12, 8), "StrokeWidth");
|
||||
register(new Key(14), "XUID");
|
||||
register(new Key(15), "charset");
|
||||
register(new Key(16), "Encoding");
|
||||
register(new Key(17), "CharStrings");
|
||||
register(new Key(18), "Private");
|
||||
register(new Key(12, 20), "SyntheticBase");
|
||||
register(new Key(12, 21), "PostScript");
|
||||
register(new Key(12, 22), "BaseFontName");
|
||||
register(new Key(12, 23), "BaseFontBlend");
|
||||
register(new Key(12, 30), "ROS");
|
||||
register(new Key(12, 31), "CIDFontVersion");
|
||||
register(new Key(12, 32), "CIDFontRevision");
|
||||
register(new Key(12, 33), "CIDFontType");
|
||||
register(new Key(12, 34), "CIDCount");
|
||||
register(new Key(12, 35), "UIDBase");
|
||||
register(new Key(12, 36), "FDArray");
|
||||
register(new Key(12, 37), "FDSelect");
|
||||
register(new Key(12, 38), "FontName");
|
||||
register(new Key(6), "BlueValues");
|
||||
register(new Key(7), "OtherBlues");
|
||||
register(new Key(8), "FamilyBlues");
|
||||
register(new Key(9), "FamilyOtherBlues");
|
||||
register(new Key(12, 9), "BlueScale");
|
||||
register(new Key(12, 10), "BlueShift");
|
||||
register(new Key(12, 11), "BlueFuzz");
|
||||
register(new Key(10), "StdHW");
|
||||
register(new Key(11), "StdVW");
|
||||
register(new Key(12, 12), "StemSnapH");
|
||||
register(new Key(12, 13), "StemSnapV");
|
||||
register(new Key(12, 14), "ForceBold");
|
||||
register(new Key(12, 15), "LanguageGroup");
|
||||
register(new Key(12, 16), "ExpansionFactor");
|
||||
register(new Key(12, 17), "initialRandomSeed");
|
||||
register(new Key(19), "Subrs");
|
||||
register(new Key(20), "defaultWidthX");
|
||||
register(new Key(21), "nominalWidthX");
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,46 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
public final class CFFStandardEncoding extends CFFEncoding {
|
||||
private static final int CHAR_CODE = 0;
|
||||
|
||||
private static final int CHAR_SID = 1;
|
||||
|
||||
private static final int[][] CFF_STANDARD_ENCODING_TABLE = new int[][] {
|
||||
new int[] { 0, 0 }, new int[] { 1, 0 }, new int[] { 2, 0 }, new int[] { 3, 0 }, new int[] { 4, 0 }, new int[] { 5, 0 }, new int[] { 6, 0 }, new int[] { 7, 0 }, new int[] { 8, 0 }, new int[] { 9, 0 },
|
||||
new int[] { 10, 0 }, new int[] { 11, 0 }, new int[] { 12, 0 }, new int[] { 13, 0 }, new int[] { 14, 0 }, new int[] { 15, 0 }, new int[] { 16, 0 }, new int[] { 17, 0 }, new int[] { 18, 0 }, new int[] { 19, 0 },
|
||||
new int[] { 20, 0 }, new int[] { 21, 0 }, new int[] { 22, 0 }, new int[] { 23, 0 }, new int[] { 24, 0 }, new int[] { 25, 0 }, new int[] { 26, 0 }, new int[] { 27, 0 }, new int[] { 28, 0 }, new int[] { 29, 0 },
|
||||
new int[] { 30, 0 }, new int[] { 31, 0 }, new int[] { 32, 1 }, new int[] { 33, 2 }, new int[] { 34, 3 }, new int[] { 35, 4 }, new int[] { 36, 5 }, new int[] { 37, 6 }, new int[] { 38, 7 }, new int[] { 39, 8 },
|
||||
new int[] { 40, 9 }, new int[] { 41, 10 }, new int[] { 42, 11 }, new int[] { 43, 12 }, new int[] { 44, 13 }, new int[] { 45, 14 }, new int[] { 46, 15 }, new int[] { 47, 16 }, new int[] { 48, 17 }, new int[] { 49, 18 },
|
||||
new int[] { 50, 19 }, new int[] { 51, 20 }, new int[] { 52, 21 }, new int[] { 53, 22 }, new int[] { 54, 23 }, new int[] { 55, 24 }, new int[] { 56, 25 }, new int[] { 57, 26 }, new int[] { 58, 27 }, new int[] { 59, 28 },
|
||||
new int[] { 60, 29 }, new int[] { 61, 30 }, new int[] { 62, 31 }, new int[] { 63, 32 }, new int[] { 64, 33 }, new int[] { 65, 34 }, new int[] { 66, 35 }, new int[] { 67, 36 }, new int[] { 68, 37 }, new int[] { 69, 38 },
|
||||
new int[] { 70, 39 }, new int[] { 71, 40 }, new int[] { 72, 41 }, new int[] { 73, 42 }, new int[] { 74, 43 }, new int[] { 75, 44 }, new int[] { 76, 45 }, new int[] { 77, 46 }, new int[] { 78, 47 }, new int[] { 79, 48 },
|
||||
new int[] { 80, 49 }, new int[] { 81, 50 }, new int[] { 82, 51 }, new int[] { 83, 52 }, new int[] { 84, 53 }, new int[] { 85, 54 }, new int[] { 86, 55 }, new int[] { 87, 56 }, new int[] { 88, 57 }, new int[] { 89, 58 },
|
||||
new int[] { 90, 59 }, new int[] { 91, 60 }, new int[] { 92, 61 }, new int[] { 93, 62 }, new int[] { 94, 63 }, new int[] { 95, 64 }, new int[] { 96, 65 }, new int[] { 97, 66 }, new int[] { 98, 67 }, new int[] { 99, 68 },
|
||||
new int[] { 100, 69 }, new int[] { 101, 70 }, new int[] { 102, 71 }, new int[] { 103, 72 }, new int[] { 104, 73 }, new int[] { 105, 74 }, new int[] { 106, 75 }, new int[] { 107, 76 }, new int[] { 108, 77 }, new int[] { 109, 78 },
|
||||
new int[] { 110, 79 }, new int[] { 111, 80 }, new int[] { 112, 81 }, new int[] { 113, 82 }, new int[] { 114, 83 }, new int[] { 115, 84 }, new int[] { 116, 85 }, new int[] { 117, 86 }, new int[] { 118, 87 }, new int[] { 119, 88 },
|
||||
new int[] { 120, 89 }, new int[] { 121, 90 }, new int[] { 122, 91 }, new int[] { 123, 92 }, new int[] { 124, 93 }, new int[] { 125, 94 }, new int[] { 126, 95 }, new int[] { 127, 0 }, new int[] { 128, 0 }, new int[] { 129, 0 },
|
||||
new int[] { 130, 0 }, new int[] { 131, 0 }, new int[] { 132, 0 }, new int[] { 133, 0 }, new int[] { 134, 0 }, new int[] { 135, 0 }, new int[] { 136, 0 }, new int[] { 137, 0 }, new int[] { 138, 0 }, new int[] { 139, 0 },
|
||||
new int[] { 140, 0 }, new int[] { 141, 0 }, new int[] { 142, 0 }, new int[] { 143, 0 }, new int[] { 144, 0 }, new int[] { 145, 0 }, new int[] { 146, 0 }, new int[] { 147, 0 }, new int[] { 148, 0 }, new int[] { 149, 0 },
|
||||
new int[] { 150, 0 }, new int[] { 151, 0 }, new int[] { 152, 0 }, new int[] { 153, 0 }, new int[] { 154, 0 }, new int[] { 155, 0 }, new int[] { 156, 0 }, new int[] { 157, 0 }, new int[] { 158, 0 }, new int[] { 159, 0 },
|
||||
new int[] { 160, 0 }, new int[] { 161, 96 }, new int[] { 162, 97 }, new int[] { 163, 98 }, new int[] { 164, 99 }, new int[] { 165, 100 }, new int[] { 166, 101 }, new int[] { 167, 102 }, new int[] { 168, 103 }, new int[] { 169, 104 },
|
||||
new int[] { 170, 105 }, new int[] { 171, 106 }, new int[] { 172, 107 }, new int[] { 173, 108 }, new int[] { 174, 109 }, new int[] { 175, 110 }, new int[] { 176, 0 }, new int[] { 177, 111 }, new int[] { 178, 112 }, new int[] { 179, 113 },
|
||||
new int[] { 180, 114 }, new int[] { 181, 0 }, new int[] { 182, 115 }, new int[] { 183, 116 }, new int[] { 184, 117 }, new int[] { 185, 118 }, new int[] { 186, 119 }, new int[] { 187, 120 }, new int[] { 188, 121 }, new int[] { 189, 122 },
|
||||
new int[] { 190, 0 }, new int[] { 191, 123 }, new int[] { 192, 0 }, new int[] { 193, 124 }, new int[] { 194, 125 }, new int[] { 195, 126 }, new int[] { 196, 127 }, new int[] { 197, 128 }, new int[] { 198, 129 }, new int[] { 199, 130 },
|
||||
new int[] { 200, 131 }, new int[] { 201, 0 }, new int[] { 202, 132 }, new int[] { 203, 133 }, new int[] { 204, 0 }, new int[] { 205, 134 }, new int[] { 206, 135 }, new int[] { 207, 136 }, new int[] { 208, 137 }, new int[] { 209, 0 },
|
||||
new int[] { 210, 0 }, new int[] { 211, 0 }, new int[] { 212, 0 }, new int[] { 213, 0 }, new int[] { 214, 0 }, new int[] { 215, 0 }, new int[] { 216, 0 }, new int[] { 217, 0 }, new int[] { 218, 0 }, new int[] { 219, 0 },
|
||||
new int[] { 220, 0 }, new int[] { 221, 0 }, new int[] { 222, 0 }, new int[] { 223, 0 }, new int[] { 224, 0 }, new int[] { 225, 138 }, new int[] { 226, 0 }, new int[] { 227, 139 }, new int[] { 228, 0 }, new int[] { 229, 0 },
|
||||
new int[] { 230, 0 }, new int[] { 231, 0 }, new int[] { 232, 140 }, new int[] { 233, 141 }, new int[] { 234, 142 }, new int[] { 235, 143 }, new int[] { 236, 0 }, new int[] { 237, 0 }, new int[] { 238, 0 }, new int[] { 239, 0 },
|
||||
new int[] { 240, 0 }, new int[] { 241, 144 }, new int[] { 242, 0 }, new int[] { 243, 0 }, new int[] { 244, 0 }, new int[] { 245, 145 }, new int[] { 246, 0 }, new int[] { 247, 0 }, new int[] { 248, 146 }, new int[] { 249, 147 },
|
||||
new int[] { 250, 148 }, new int[] { 251, 149 }, new int[] { 252, 0 }, new int[] { 253, 0 }, new int[] { 254, 0 }, new int[] { 255, 0 } };
|
||||
|
||||
public static CFFStandardEncoding getInstance() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
private static final CFFStandardEncoding INSTANCE = new CFFStandardEncoding();
|
||||
|
||||
static {
|
||||
for (int[] encodingEntry : CFF_STANDARD_ENCODING_TABLE)
|
||||
INSTANCE.add(encodingEntry[0], encodingEntry[1]);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
public final class CFFStandardString {
|
||||
public static String getName(int sid) {
|
||||
return SID2STR[sid];
|
||||
}
|
||||
|
||||
private static final String[] SID2STR = new String[] {
|
||||
".notdef", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quoteright", "parenleft",
|
||||
"parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two",
|
||||
"three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less",
|
||||
"equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F",
|
||||
"G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
|
||||
"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
|
||||
"bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "quoteleft", "a", "b", "c", "d",
|
||||
"e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
|
||||
"o", "p", "q", "r", "s", "t", "u", "v", "w", "x",
|
||||
"y", "z", "braceleft", "bar", "braceright", "asciitilde", "exclamdown", "cent", "sterling", "fraction",
|
||||
"yen", "florin", "section", "currency", "quotesingle", "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi",
|
||||
"fl", "endash", "dagger", "daggerdbl", "periodcentered", "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright",
|
||||
"guillemotright", "ellipsis", "perthousand", "questiondown", "grave", "acute", "circumflex", "tilde", "macron", "breve",
|
||||
"dotaccent", "dieresis", "ring", "cedilla", "hungarumlaut", "ogonek", "caron", "emdash", "AE", "ordfeminine",
|
||||
"Lslash", "Oslash", "OE", "ordmasculine", "ae", "dotlessi", "lslash", "oslash", "oe", "germandbls",
|
||||
"onesuperior", "logicalnot", "mu", "trademark", "Eth", "onehalf", "plusminus", "Thorn", "onequarter", "divide",
|
||||
"brokenbar", "degree", "thorn", "threequarters", "twosuperior", "registered", "minus", "eth", "multiply", "threesuperior",
|
||||
"copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave", "Aring", "Atilde", "Ccedilla", "Eacute", "Ecircumflex",
|
||||
"Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis",
|
||||
"Ograve", "Otilde", "Scaron", "Uacute", "Ucircumflex", "Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron",
|
||||
"aacute", "acircumflex", "adieresis", "agrave", "aring", "atilde", "ccedilla", "eacute", "ecircumflex", "edieresis",
|
||||
"egrave", "iacute", "icircumflex", "idieresis", "igrave", "ntilde", "oacute", "ocircumflex", "odieresis", "ograve",
|
||||
"otilde", "scaron", "uacute", "ucircumflex", "udieresis", "ugrave", "yacute", "ydieresis", "zcaron", "exclamsmall",
|
||||
"Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "zerooldstyle",
|
||||
"oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "commasuperior",
|
||||
"threequartersemdash", "periodsuperior", "questionsmall", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior",
|
||||
"msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior", "tsuperior", "ff", "ffi", "ffl", "parenleftinferior",
|
||||
"parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall",
|
||||
"Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall",
|
||||
"Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall",
|
||||
"colonmonetary", "onefitted", "rupiah", "Tildesmall", "exclamdownsmall", "centoldstyle", "Lslashsmall", "Scaronsmall", "Zcaronsmall", "Dieresissmall",
|
||||
"Brevesmall", "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash", "hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall", "questiondownsmall",
|
||||
"oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "zerosuperior", "foursuperior", "fivesuperior", "sixsuperior",
|
||||
"sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior", "oneinferior", "twoinferior", "threeinferior", "fourinferior", "fiveinferior", "sixinferior",
|
||||
"seveninferior", "eightinferior", "nineinferior", "centinferior", "dollarinferior", "periodinferior", "commainferior", "Agravesmall", "Aacutesmall", "Acircumflexsmall",
|
||||
"Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall", "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall", "Igravesmall",
|
||||
"Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall", "Ntildesmall", "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall", "Odieresissmall",
|
||||
"OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall", "Ucircumflexsmall", "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall", "001.000",
|
||||
"001.001", "001.002", "001.003", "Black", "Bold", "Book", "Light", "Medium", "Regular", "Roman",
|
||||
"Semibold" };
|
||||
}
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.awt.geom.GeneralPath;
|
||||
import java.io.IOException;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import org.apache.fontbox.EncodedFont;
|
||||
import org.apache.fontbox.encoding.Encoding;
|
||||
import org.apache.fontbox.type1.Type1CharStringReader;
|
||||
|
||||
public class CFFType1Font extends CFFFont implements EncodedFont {
|
||||
private final Map<String, Object> privateDict = new LinkedHashMap<String, Object>();
|
||||
|
||||
private CFFEncoding encoding;
|
||||
|
||||
private final Map<Integer, Type2CharString> charStringCache = new ConcurrentHashMap<Integer, Type2CharString>();
|
||||
|
||||
private final PrivateType1CharStringReader reader = new PrivateType1CharStringReader();
|
||||
|
||||
private class PrivateType1CharStringReader implements Type1CharStringReader {
|
||||
private PrivateType1CharStringReader() {}
|
||||
|
||||
public Type1CharString getType1CharString(String name) throws IOException {
|
||||
return CFFType1Font.this.getType1CharString(name);
|
||||
}
|
||||
}
|
||||
|
||||
public GeneralPath getPath(String name) throws IOException {
|
||||
return getType1CharString(name).getPath();
|
||||
}
|
||||
|
||||
public float getWidth(String name) throws IOException {
|
||||
return (float)getType1CharString(name).getWidth();
|
||||
}
|
||||
|
||||
public boolean hasGlyph(String name) {
|
||||
int sid = this.charset.getSID(name);
|
||||
int gid = this.charset.getGIDForSID(sid);
|
||||
return (gid != 0);
|
||||
}
|
||||
|
||||
public List<Number> getFontMatrix() {
|
||||
return (List<Number>)this.topDict.get("FontMatrix");
|
||||
}
|
||||
|
||||
public Type1CharString getType1CharString(String name) throws IOException {
|
||||
int gid = nameToGID(name);
|
||||
return getType2CharString(gid, name);
|
||||
}
|
||||
|
||||
public int nameToGID(String name) {
|
||||
int sid = this.charset.getSID(name);
|
||||
return this.charset.getGIDForSID(sid);
|
||||
}
|
||||
|
||||
public Type2CharString getType2CharString(int gid) throws IOException {
|
||||
String name = "GID+" + gid;
|
||||
return getType2CharString(gid, name);
|
||||
}
|
||||
|
||||
private Type2CharString getType2CharString(int gid, String name) throws IOException {
|
||||
Type2CharString type2 = this.charStringCache.get(Integer.valueOf(gid));
|
||||
if (type2 == null) {
|
||||
byte[] bytes = null;
|
||||
if (gid < this.charStrings.length)
|
||||
bytes = this.charStrings[gid];
|
||||
if (bytes == null)
|
||||
bytes = this.charStrings[0];
|
||||
Type2CharStringParser parser = new Type2CharStringParser(this.fontName, name);
|
||||
List<Object> type2seq = parser.parse(bytes, this.globalSubrIndex, getLocalSubrIndex());
|
||||
type2 = new Type2CharString(this.reader, this.fontName, name, gid, type2seq, getDefaultWidthX(), getNominalWidthX());
|
||||
this.charStringCache.put(Integer.valueOf(gid), type2);
|
||||
}
|
||||
return type2;
|
||||
}
|
||||
|
||||
public Map<String, Object> getPrivateDict() {
|
||||
return this.privateDict;
|
||||
}
|
||||
|
||||
void addToPrivateDict(String name, Object value) {
|
||||
if (value != null)
|
||||
this.privateDict.put(name, value);
|
||||
}
|
||||
|
||||
public CFFEncoding getEncoding() {
|
||||
return this.encoding;
|
||||
}
|
||||
|
||||
void setEncoding(CFFEncoding encoding) {
|
||||
this.encoding = encoding;
|
||||
}
|
||||
|
||||
private byte[][] getLocalSubrIndex() {
|
||||
return (byte[][])this.privateDict.get("Subrs");
|
||||
}
|
||||
|
||||
private Object getProperty(String name) {
|
||||
Object topDictValue = this.topDict.get(name);
|
||||
if (topDictValue != null)
|
||||
return topDictValue;
|
||||
Object privateDictValue = this.privateDict.get(name);
|
||||
if (privateDictValue != null)
|
||||
return privateDictValue;
|
||||
return null;
|
||||
}
|
||||
|
||||
private int getDefaultWidthX() {
|
||||
Number num = (Number)getProperty("defaultWidthX");
|
||||
if (num == null)
|
||||
return 1000;
|
||||
return num.intValue();
|
||||
}
|
||||
|
||||
private int getNominalWidthX() {
|
||||
Number num = (Number)getProperty("nominalWidthX");
|
||||
if (num == null)
|
||||
return 0;
|
||||
return num.intValue();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.util.List;
|
||||
import org.apache.fontbox.type1.Type1CharStringReader;
|
||||
|
||||
public class CIDKeyedType2CharString extends Type2CharString {
|
||||
private final int cid;
|
||||
|
||||
public CIDKeyedType2CharString(Type1CharStringReader font, String fontName, int cid, int gid, List<Object> sequence, int defaultWidthX, int nomWidthX) {
|
||||
super(font, fontName, String.format("%04x", cid), gid, sequence, defaultWidthX, nomWidthX);
|
||||
this.cid = cid;
|
||||
}
|
||||
|
||||
public int getCID() {
|
||||
return this.cid;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,184 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class CharStringCommand {
|
||||
private Key commandKey = null;
|
||||
|
||||
public static final Map<Key, String> TYPE1_VOCABULARY;
|
||||
|
||||
public static final Map<Key, String> TYPE2_VOCABULARY;
|
||||
|
||||
public CharStringCommand(int b0) {
|
||||
setKey(new Key(b0));
|
||||
}
|
||||
|
||||
public CharStringCommand(int b0, int b1) {
|
||||
setKey(new Key(b0, b1));
|
||||
}
|
||||
|
||||
public CharStringCommand(int[] values) {
|
||||
setKey(new Key(values));
|
||||
}
|
||||
|
||||
public Key getKey() {
|
||||
return this.commandKey;
|
||||
}
|
||||
|
||||
private void setKey(Key key) {
|
||||
this.commandKey = key;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
String str = TYPE2_VOCABULARY.get(getKey());
|
||||
if (str == null)
|
||||
str = TYPE1_VOCABULARY.get(getKey());
|
||||
if (str == null)
|
||||
return getKey().toString() + '|';
|
||||
return str + '|';
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return getKey().hashCode();
|
||||
}
|
||||
|
||||
public boolean equals(Object object) {
|
||||
if (object instanceof CharStringCommand) {
|
||||
CharStringCommand that = (CharStringCommand)object;
|
||||
return getKey().equals(that.getKey());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static class Key {
|
||||
private int[] keyValues = null;
|
||||
|
||||
public Key(int b0) {
|
||||
setValue(new int[] { b0 });
|
||||
}
|
||||
|
||||
public Key(int b0, int b1) {
|
||||
setValue(new int[] { b0, b1 });
|
||||
}
|
||||
|
||||
public Key(int[] values) {
|
||||
setValue(values);
|
||||
}
|
||||
|
||||
public int[] getValue() {
|
||||
return this.keyValues;
|
||||
}
|
||||
|
||||
private void setValue(int[] value) {
|
||||
this.keyValues = value;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return Arrays.toString(getValue());
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
if (this.keyValues[0] == 12 && this.keyValues.length > 1)
|
||||
return this.keyValues[0] ^ this.keyValues[1];
|
||||
return this.keyValues[0];
|
||||
}
|
||||
|
||||
public boolean equals(Object object) {
|
||||
if (object instanceof Key) {
|
||||
Key that = (Key)object;
|
||||
if (this.keyValues[0] == 12 && that.keyValues[0] == 12) {
|
||||
if (this.keyValues.length > 1 && that.keyValues.length > 1)
|
||||
return (this.keyValues[1] == that.keyValues[1]);
|
||||
return (this.keyValues.length == that.keyValues.length);
|
||||
}
|
||||
return (this.keyValues[0] == that.keyValues[0]);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static {
|
||||
Map<Key, String> map = new LinkedHashMap<Key, String>(26);
|
||||
map.put(new Key(1), "hstem");
|
||||
map.put(new Key(3), "vstem");
|
||||
map.put(new Key(4), "vmoveto");
|
||||
map.put(new Key(5), "rlineto");
|
||||
map.put(new Key(6), "hlineto");
|
||||
map.put(new Key(7), "vlineto");
|
||||
map.put(new Key(8), "rrcurveto");
|
||||
map.put(new Key(9), "closepath");
|
||||
map.put(new Key(10), "callsubr");
|
||||
map.put(new Key(11), "return");
|
||||
map.put(new Key(12), "escape");
|
||||
map.put(new Key(12, 0), "dotsection");
|
||||
map.put(new Key(12, 1), "vstem3");
|
||||
map.put(new Key(12, 2), "hstem3");
|
||||
map.put(new Key(12, 6), "seac");
|
||||
map.put(new Key(12, 7), "sbw");
|
||||
map.put(new Key(12, 12), "div");
|
||||
map.put(new Key(12, 16), "callothersubr");
|
||||
map.put(new Key(12, 17), "pop");
|
||||
map.put(new Key(12, 33), "setcurrentpoint");
|
||||
map.put(new Key(13), "hsbw");
|
||||
map.put(new Key(14), "endchar");
|
||||
map.put(new Key(21), "rmoveto");
|
||||
map.put(new Key(22), "hmoveto");
|
||||
map.put(new Key(30), "vhcurveto");
|
||||
map.put(new Key(31), "hvcurveto");
|
||||
TYPE1_VOCABULARY = Collections.<Key, String>unmodifiableMap(map);
|
||||
map = new LinkedHashMap<Key, String>(48);
|
||||
map.put(new Key(1), "hstem");
|
||||
map.put(new Key(3), "vstem");
|
||||
map.put(new Key(4), "vmoveto");
|
||||
map.put(new Key(5), "rlineto");
|
||||
map.put(new Key(6), "hlineto");
|
||||
map.put(new Key(7), "vlineto");
|
||||
map.put(new Key(8), "rrcurveto");
|
||||
map.put(new Key(10), "callsubr");
|
||||
map.put(new Key(11), "return");
|
||||
map.put(new Key(12), "escape");
|
||||
map.put(new Key(12, 3), "and");
|
||||
map.put(new Key(12, 4), "or");
|
||||
map.put(new Key(12, 5), "not");
|
||||
map.put(new Key(12, 9), "abs");
|
||||
map.put(new Key(12, 10), "add");
|
||||
map.put(new Key(12, 11), "sub");
|
||||
map.put(new Key(12, 12), "div");
|
||||
map.put(new Key(12, 14), "neg");
|
||||
map.put(new Key(12, 15), "eq");
|
||||
map.put(new Key(12, 18), "drop");
|
||||
map.put(new Key(12, 20), "put");
|
||||
map.put(new Key(12, 21), "get");
|
||||
map.put(new Key(12, 22), "ifelse");
|
||||
map.put(new Key(12, 23), "random");
|
||||
map.put(new Key(12, 24), "mul");
|
||||
map.put(new Key(12, 26), "sqrt");
|
||||
map.put(new Key(12, 27), "dup");
|
||||
map.put(new Key(12, 28), "exch");
|
||||
map.put(new Key(12, 29), "index");
|
||||
map.put(new Key(12, 30), "roll");
|
||||
map.put(new Key(12, 34), "hflex");
|
||||
map.put(new Key(12, 35), "flex");
|
||||
map.put(new Key(12, 36), "hflex1");
|
||||
map.put(new Key(12, 37), "flex1");
|
||||
map.put(new Key(14), "endchar");
|
||||
map.put(new Key(18), "hstemhm");
|
||||
map.put(new Key(19), "hintmask");
|
||||
map.put(new Key(20), "cntrmask");
|
||||
map.put(new Key(21), "rmoveto");
|
||||
map.put(new Key(22), "hmoveto");
|
||||
map.put(new Key(23), "vstemhm");
|
||||
map.put(new Key(24), "rcurveline");
|
||||
map.put(new Key(25), "rlinecurve");
|
||||
map.put(new Key(26), "vvcurveto");
|
||||
map.put(new Key(27), "hhcurveto");
|
||||
map.put(new Key(28), "shortint");
|
||||
map.put(new Key(29), "callgsubr");
|
||||
map.put(new Key(30), "vhcurveto");
|
||||
map.put(new Key(31), "hvcurveto");
|
||||
TYPE2_VOCABULARY = Collections.<Key, String>unmodifiableMap(map);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Stack;
|
||||
|
||||
public abstract class CharStringHandler {
|
||||
public List<Integer> handleSequence(List<Object> sequence) {
|
||||
Stack<Integer> stack = new Stack<Integer>();
|
||||
for (Object obj : sequence) {
|
||||
if (obj instanceof CharStringCommand) {
|
||||
List<Integer> results = handleCommand(stack, (CharStringCommand)obj);
|
||||
stack.clear();
|
||||
if (results != null)
|
||||
stack.addAll(results);
|
||||
continue;
|
||||
}
|
||||
stack.push((Integer)obj);
|
||||
}
|
||||
return stack;
|
||||
}
|
||||
|
||||
public abstract List<Integer> handleCommand(List<Integer> paramList, CharStringCommand paramCharStringCommand);
|
||||
}
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.io.EOFException;
|
||||
import java.io.IOException;
|
||||
import org.apache.fontbox.util.Charsets;
|
||||
|
||||
public class DataInput {
|
||||
private byte[] inputBuffer = null;
|
||||
|
||||
private int bufferPosition = 0;
|
||||
|
||||
public DataInput(byte[] buffer) {
|
||||
this.inputBuffer = buffer;
|
||||
}
|
||||
|
||||
public boolean hasRemaining() {
|
||||
return (this.bufferPosition < this.inputBuffer.length);
|
||||
}
|
||||
|
||||
public int getPosition() {
|
||||
return this.bufferPosition;
|
||||
}
|
||||
|
||||
public void setPosition(int position) {
|
||||
this.bufferPosition = position;
|
||||
}
|
||||
|
||||
public String getString() throws IOException {
|
||||
return new String(this.inputBuffer, Charsets.ISO_8859_1);
|
||||
}
|
||||
|
||||
public byte readByte() throws IOException {
|
||||
try {
|
||||
byte value = this.inputBuffer[this.bufferPosition];
|
||||
this.bufferPosition++;
|
||||
return value;
|
||||
} catch (RuntimeException re) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public int readUnsignedByte() throws IOException {
|
||||
int b = read();
|
||||
if (b < 0)
|
||||
throw new EOFException();
|
||||
return b;
|
||||
}
|
||||
|
||||
public int peekUnsignedByte(int offset) throws IOException {
|
||||
int b = peek(offset);
|
||||
if (b < 0)
|
||||
throw new EOFException();
|
||||
return b;
|
||||
}
|
||||
|
||||
public short readShort() throws IOException {
|
||||
return (short)readUnsignedShort();
|
||||
}
|
||||
|
||||
public int readUnsignedShort() throws IOException {
|
||||
int b1 = read();
|
||||
int b2 = read();
|
||||
if ((b1 | b2) < 0)
|
||||
throw new EOFException();
|
||||
return b1 << 8 | b2;
|
||||
}
|
||||
|
||||
public int readInt() throws IOException {
|
||||
int b1 = read();
|
||||
int b2 = read();
|
||||
int b3 = read();
|
||||
int b4 = read();
|
||||
if ((b1 | b2 | b3 | b4) < 0)
|
||||
throw new EOFException();
|
||||
return b1 << 24 | b2 << 16 | b3 << 8 | b4;
|
||||
}
|
||||
|
||||
public byte[] readBytes(int length) throws IOException {
|
||||
if (this.inputBuffer.length - this.bufferPosition < length)
|
||||
throw new EOFException();
|
||||
byte[] bytes = new byte[length];
|
||||
System.arraycopy(this.inputBuffer, this.bufferPosition, bytes, 0, length);
|
||||
this.bufferPosition += length;
|
||||
return bytes;
|
||||
}
|
||||
|
||||
private int read() {
|
||||
try {
|
||||
int value = this.inputBuffer[this.bufferPosition] & 0xFF;
|
||||
this.bufferPosition++;
|
||||
return value;
|
||||
} catch (RuntimeException re) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
private int peek(int offset) {
|
||||
try {
|
||||
int value = this.inputBuffer[this.bufferPosition + offset] & 0xFF;
|
||||
return value;
|
||||
} catch (RuntimeException re) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public int length() {
|
||||
return this.inputBuffer.length;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
public class DataOutput {
|
||||
private ByteArrayOutputStream outputBuffer = new ByteArrayOutputStream();
|
||||
|
||||
private String outputEncoding = null;
|
||||
|
||||
public DataOutput() {
|
||||
this("ISO-8859-1");
|
||||
}
|
||||
|
||||
public DataOutput(String encoding) {
|
||||
this.outputEncoding = encoding;
|
||||
}
|
||||
|
||||
public byte[] getBytes() {
|
||||
return this.outputBuffer.toByteArray();
|
||||
}
|
||||
|
||||
public void write(int value) {
|
||||
this.outputBuffer.write(value);
|
||||
}
|
||||
|
||||
public void write(byte[] buffer) {
|
||||
this.outputBuffer.write(buffer, 0, buffer.length);
|
||||
}
|
||||
|
||||
public void write(byte[] buffer, int offset, int length) {
|
||||
this.outputBuffer.write(buffer, offset, length);
|
||||
}
|
||||
|
||||
public void print(String string) throws IOException {
|
||||
write(string.getBytes(this.outputEncoding));
|
||||
}
|
||||
|
||||
public void println(String string) throws IOException {
|
||||
write(string.getBytes(this.outputEncoding));
|
||||
write(10);
|
||||
}
|
||||
|
||||
public void println() {
|
||||
write(10);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
public abstract class FDSelect {
|
||||
protected final CFFCIDFont owner;
|
||||
|
||||
public FDSelect(CFFCIDFont owner) {
|
||||
this.owner = owner;
|
||||
}
|
||||
|
||||
public abstract int getFDIndex(int paramInt);
|
||||
}
|
||||
|
|
@ -0,0 +1,272 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.geom.GeneralPath;
|
||||
import java.awt.geom.Point2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.fontbox.encoding.StandardEncoding;
|
||||
import org.apache.fontbox.type1.Type1CharStringReader;
|
||||
|
||||
public class Type1CharString {
|
||||
private static final Log LOG = LogFactory.getLog(Type1CharString.class);
|
||||
|
||||
private Type1CharStringReader font;
|
||||
|
||||
private String fontName;
|
||||
|
||||
private String glyphName;
|
||||
|
||||
private GeneralPath path = null;
|
||||
|
||||
private int width = 0;
|
||||
|
||||
private Point2D.Float leftSideBearing = null;
|
||||
|
||||
private Point2D.Float current = null;
|
||||
|
||||
private boolean isFlex = false;
|
||||
|
||||
private List<Point2D.Float> flexPoints = new ArrayList<Point2D.Float>();
|
||||
|
||||
protected List<Object> type1Sequence;
|
||||
|
||||
protected int commandCount;
|
||||
|
||||
public Type1CharString(Type1CharStringReader font, String fontName, String glyphName, List<Object> sequence) {
|
||||
this(font, fontName, glyphName);
|
||||
this.type1Sequence = sequence;
|
||||
}
|
||||
|
||||
protected Type1CharString(Type1CharStringReader font, String fontName, String glyphName) {
|
||||
this.font = font;
|
||||
this.fontName = fontName;
|
||||
this.glyphName = glyphName;
|
||||
this.current = new Point2D.Float(0.0F, 0.0F);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.glyphName;
|
||||
}
|
||||
|
||||
public Rectangle2D getBounds() {
|
||||
if (this.path == null)
|
||||
render();
|
||||
return this.path.getBounds2D();
|
||||
}
|
||||
|
||||
public int getWidth() {
|
||||
if (this.path == null)
|
||||
render();
|
||||
return this.width;
|
||||
}
|
||||
|
||||
public GeneralPath getPath() {
|
||||
if (this.path == null)
|
||||
render();
|
||||
return this.path;
|
||||
}
|
||||
|
||||
public List<Object> getType1Sequence() {
|
||||
return this.type1Sequence;
|
||||
}
|
||||
|
||||
private void render() {
|
||||
this.path = new GeneralPath();
|
||||
this.leftSideBearing = new Point2D.Float(0.0F, 0.0F);
|
||||
this.width = 0;
|
||||
CharStringHandler handler = new CharStringHandler() {
|
||||
public List<Integer> handleCommand(List<Integer> numbers, CharStringCommand command) {
|
||||
return Type1CharString.this.handleCommand(numbers, command);
|
||||
}
|
||||
};
|
||||
handler.handleSequence(this.type1Sequence);
|
||||
}
|
||||
|
||||
private List<Integer> handleCommand(List<Integer> numbers, CharStringCommand command) {
|
||||
this.commandCount++;
|
||||
String name = CharStringCommand.TYPE1_VOCABULARY.get(command.getKey());
|
||||
if ("rmoveto".equals(name)) {
|
||||
if (numbers.size() >= 2)
|
||||
if (this.isFlex) {
|
||||
this.flexPoints.add(new Point2D.Float((float)numbers.get(0), (float)numbers.get(1)));
|
||||
} else {
|
||||
rmoveTo(numbers.get(0), numbers.get(1));
|
||||
}
|
||||
} else if ("vmoveto".equals(name)) {
|
||||
if (numbers.size() >= 1)
|
||||
if (this.isFlex) {
|
||||
this.flexPoints.add(new Point2D.Float(0.0F, (float)numbers.get(0)));
|
||||
} else {
|
||||
rmoveTo(Integer.valueOf(0), numbers.get(0));
|
||||
}
|
||||
} else if ("hmoveto".equals(name)) {
|
||||
if (numbers.size() >= 1)
|
||||
if (this.isFlex) {
|
||||
this.flexPoints.add(new Point2D.Float((float)numbers.get(0), 0.0F));
|
||||
} else {
|
||||
rmoveTo(numbers.get(0), Integer.valueOf(0));
|
||||
}
|
||||
} else if ("rlineto".equals(name)) {
|
||||
if (numbers.size() >= 2)
|
||||
rlineTo(numbers.get(0), numbers.get(1));
|
||||
} else if ("hlineto".equals(name)) {
|
||||
if (numbers.size() >= 1)
|
||||
rlineTo(numbers.get(0), Integer.valueOf(0));
|
||||
} else if ("vlineto".equals(name)) {
|
||||
if (numbers.size() >= 1)
|
||||
rlineTo(Integer.valueOf(0), numbers.get(0));
|
||||
} else if ("rrcurveto".equals(name)) {
|
||||
if (numbers.size() >= 6)
|
||||
rrcurveTo(numbers.get(0), numbers.get(1), numbers.get(2), numbers.get(3), numbers.get(4), numbers.get(5));
|
||||
} else if ("closepath".equals(name)) {
|
||||
closepath();
|
||||
} else if ("sbw".equals(name)) {
|
||||
if (numbers.size() >= 3) {
|
||||
this.leftSideBearing = new Point2D.Float((float)numbers.get(0), (float)numbers.get(1));
|
||||
this.width = numbers.get(2);
|
||||
this.current.setLocation(this.leftSideBearing);
|
||||
}
|
||||
} else if ("hsbw".equals(name)) {
|
||||
if (numbers.size() >= 2) {
|
||||
this.leftSideBearing = new Point2D.Float((float)numbers.get(0), 0.0F);
|
||||
this.width = numbers.get(1);
|
||||
this.current.setLocation(this.leftSideBearing);
|
||||
}
|
||||
} else if ("vhcurveto".equals(name)) {
|
||||
if (numbers.size() >= 4)
|
||||
rrcurveTo(Integer.valueOf(0), numbers.get(0), numbers.get(1), numbers.get(2), numbers.get(3), Integer.valueOf(0));
|
||||
} else if ("hvcurveto".equals(name)) {
|
||||
if (numbers.size() >= 4)
|
||||
rrcurveTo(numbers.get(0), Integer.valueOf(0), numbers.get(1), numbers.get(2), Integer.valueOf(0), numbers.get(3));
|
||||
} else if ("seac".equals(name)) {
|
||||
if (numbers.size() >= 5)
|
||||
seac(numbers.get(0), numbers.get(1), numbers.get(2), numbers.get(3), numbers.get(4));
|
||||
} else if ("setcurrentpoint".equals(name)) {
|
||||
if (numbers.size() >= 2)
|
||||
setcurrentpoint(numbers.get(0).intValue(), numbers.get(1).intValue());
|
||||
} else if ("callothersubr".equals(name)) {
|
||||
if (numbers.size() >= 1)
|
||||
callothersubr(numbers.get(0).intValue());
|
||||
} else {
|
||||
if ("div".equals(name)) {
|
||||
int b = numbers.get(numbers.size() - 1);
|
||||
int a = numbers.get(numbers.size() - 2);
|
||||
int result = a / b;
|
||||
List<Integer> list = new ArrayList<Integer>(numbers);
|
||||
list.remove(list.size() - 1);
|
||||
list.remove(list.size() - 1);
|
||||
list.add(Integer.valueOf(result));
|
||||
return list;
|
||||
}
|
||||
if (!"hstem".equals(name) && !"vstem".equals(name) && !"hstem3".equals(name) && !"vstem3".equals(name) && !"dotsection".equals(name))
|
||||
if (!"endchar".equals(name))
|
||||
if ("return".equals(name)) {
|
||||
LOG.warn("Unexpected charstring command: " + command.getKey() + " in glyph " + this.glyphName + " of font " + this.fontName);
|
||||
} else {
|
||||
if (name != null)
|
||||
throw new IllegalArgumentException("Unhandled command: " + name);
|
||||
LOG.warn("Unknown charstring command: " + command.getKey() + " in glyph " + this.glyphName + " of font " + this.fontName);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void setcurrentpoint(int x, int y) {
|
||||
this.current.setLocation((float)x, (float)y);
|
||||
}
|
||||
|
||||
private void callothersubr(int num) {
|
||||
if (num == 0) {
|
||||
this.isFlex = false;
|
||||
if (this.flexPoints.size() < 7) {
|
||||
LOG.warn("flex without moveTo in font " + this.fontName + ", glyph " + this.glyphName + ", command " + this.commandCount);
|
||||
return;
|
||||
}
|
||||
Point2D.Float reference = this.flexPoints.get(0);
|
||||
reference.setLocation(this.current.getX() + reference.getX(), this.current.getY() + reference.getY());
|
||||
Point2D.Float first = this.flexPoints.get(1);
|
||||
first.setLocation(reference.getX() + first.getX(), reference.getY() + first.getY());
|
||||
first.setLocation(first.getX() - this.current.getX(), first.getY() - this.current.getY());
|
||||
rrcurveTo(Double.valueOf(this.flexPoints.get(1).getX()), Double.valueOf(this.flexPoints.get(1).getY()), Double.valueOf(this.flexPoints.get(2).getX()), Double.valueOf(this.flexPoints.get(2).getY()), Double.valueOf(this.flexPoints.get(3).getX()), Double.valueOf(this.flexPoints.get(3).getY()));
|
||||
rrcurveTo(Double.valueOf(this.flexPoints.get(4).getX()), Double.valueOf(this.flexPoints.get(4).getY()), Double.valueOf(this.flexPoints.get(5).getX()), Double.valueOf(this.flexPoints.get(5).getY()), Double.valueOf(this.flexPoints.get(6).getX()), Double.valueOf(this.flexPoints.get(6).getY()));
|
||||
this.flexPoints.clear();
|
||||
} else if (num == 1) {
|
||||
this.isFlex = true;
|
||||
} else {
|
||||
throw new IllegalArgumentException("Unexpected other subroutine: " + num);
|
||||
}
|
||||
}
|
||||
|
||||
private void rmoveTo(Number dx, Number dy) {
|
||||
float x = (float)this.current.getX() + dx.floatValue();
|
||||
float y = (float)this.current.getY() + dy.floatValue();
|
||||
this.path.moveTo(x, y);
|
||||
this.current.setLocation(x, y);
|
||||
}
|
||||
|
||||
private void rlineTo(Number dx, Number dy) {
|
||||
float x = (float)this.current.getX() + dx.floatValue();
|
||||
float y = (float)this.current.getY() + dy.floatValue();
|
||||
if (this.path.getCurrentPoint() == null) {
|
||||
LOG.warn("rlineTo without initial moveTo in font " + this.fontName + ", glyph " + this.glyphName);
|
||||
this.path.moveTo(x, y);
|
||||
} else {
|
||||
this.path.lineTo(x, y);
|
||||
}
|
||||
this.current.setLocation(x, y);
|
||||
}
|
||||
|
||||
private void rrcurveTo(Number dx1, Number dy1, Number dx2, Number dy2, Number dx3, Number dy3) {
|
||||
float x1 = (float)this.current.getX() + dx1.floatValue();
|
||||
float y1 = (float)this.current.getY() + dy1.floatValue();
|
||||
float x2 = x1 + dx2.floatValue();
|
||||
float y2 = y1 + dy2.floatValue();
|
||||
float x3 = x2 + dx3.floatValue();
|
||||
float y3 = y2 + dy3.floatValue();
|
||||
if (this.path.getCurrentPoint() == null) {
|
||||
LOG.warn("rrcurveTo without initial moveTo in font " + this.fontName + ", glyph " + this.glyphName);
|
||||
this.path.moveTo(x3, y3);
|
||||
} else {
|
||||
this.path.curveTo(x1, y1, x2, y2, x3, y3);
|
||||
}
|
||||
this.current.setLocation(x3, y3);
|
||||
}
|
||||
|
||||
private void closepath() {
|
||||
if (this.path.getCurrentPoint() == null) {
|
||||
LOG.warn("closepath without initial moveTo in font " + this.fontName + ", glyph " + this.glyphName);
|
||||
} else {
|
||||
this.path.closePath();
|
||||
}
|
||||
this.path.moveTo(this.current.getX(), this.current.getY());
|
||||
}
|
||||
|
||||
private void seac(Number asb, Number adx, Number ady, Number bchar, Number achar) {
|
||||
String baseName = StandardEncoding.INSTANCE.getName(bchar.intValue());
|
||||
if (baseName != null)
|
||||
try {
|
||||
Type1CharString base = this.font.getType1CharString(baseName);
|
||||
this.path.append(base.getPath().getPathIterator(null), false);
|
||||
} catch (IOException e) {
|
||||
LOG.warn("invalid seac character in glyph " + this.glyphName + " of font " + this.fontName);
|
||||
}
|
||||
String accentName = StandardEncoding.INSTANCE.getName(achar.intValue());
|
||||
if (accentName != null)
|
||||
try {
|
||||
Type1CharString accent = this.font.getType1CharString(accentName);
|
||||
AffineTransform at = AffineTransform.getTranslateInstance(this.leftSideBearing.getX() + (double)adx.floatValue(), this.leftSideBearing.getY() + (double)ady.floatValue());
|
||||
this.path.append(accent.getPath().getPathIterator(at), false);
|
||||
} catch (IOException e) {
|
||||
LOG.warn("invalid seac character in glyph " + this.glyphName + " of font " + this.fontName);
|
||||
}
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return this.type1Sequence.toString().replace("|", "\n").replace(",", " ");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,134 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Stack;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
public class Type1CharStringParser {
|
||||
private static final Log LOG = LogFactory.getLog(Type1CharStringParser.class);
|
||||
|
||||
static final int RETURN = 11;
|
||||
|
||||
static final int CALLSUBR = 10;
|
||||
|
||||
static final int TWO_BYTE = 12;
|
||||
|
||||
static final int CALLOTHERSUBR = 16;
|
||||
|
||||
static final int POP = 17;
|
||||
|
||||
private final String fontName;
|
||||
|
||||
private final String glyphName;
|
||||
|
||||
public Type1CharStringParser(String fontName, String glyphName) {
|
||||
this.fontName = fontName;
|
||||
this.glyphName = glyphName;
|
||||
}
|
||||
|
||||
public List<Object> parse(byte[] bytes, List<byte[]> subrs) throws IOException {
|
||||
return parse(bytes, subrs, new ArrayList());
|
||||
}
|
||||
|
||||
private List<Object> parse(byte[] bytes, List<byte[]> subrs, List<Object> sequence) throws IOException {
|
||||
DataInput input = new DataInput(bytes);
|
||||
while (input.hasRemaining()) {
|
||||
int b0 = input.readUnsignedByte();
|
||||
if (b0 == 10) {
|
||||
Object obj = sequence.remove(sequence.size() - 1);
|
||||
if (!(obj instanceof Integer)) {
|
||||
LOG.warn("Parameter " + obj + " for CALLSUBR is ignored, integer expected in glyph '" + this.glyphName + "' of font " + this.fontName);
|
||||
continue;
|
||||
}
|
||||
Integer operand = (Integer)obj;
|
||||
if (operand >= 0 && operand < subrs.size()) {
|
||||
byte[] subrBytes = subrs.get(operand.intValue());
|
||||
parse(subrBytes, subrs, sequence);
|
||||
Object lastItem = sequence.get(sequence.size() - 1);
|
||||
if (lastItem instanceof CharStringCommand && ((CharStringCommand)lastItem).getKey().getValue()[0] == 11)
|
||||
sequence.remove(sequence.size() - 1);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (b0 == 12 && input.peekUnsignedByte(0) == 16) {
|
||||
input.readByte();
|
||||
Integer othersubrNum = (Integer)sequence.remove(sequence.size() - 1);
|
||||
Integer numArgs = (Integer)sequence.remove(sequence.size() - 1);
|
||||
Stack<Integer> results = new Stack<Integer>();
|
||||
if (othersubrNum == 0) {
|
||||
results.push(removeInteger(sequence));
|
||||
results.push(removeInteger(sequence));
|
||||
sequence.remove(sequence.size() - 1);
|
||||
sequence.add(Integer.valueOf(0));
|
||||
sequence.add(new CharStringCommand(12, 16));
|
||||
} else if (othersubrNum == 1) {
|
||||
sequence.add(Integer.valueOf(1));
|
||||
sequence.add(new CharStringCommand(12, 16));
|
||||
} else if (othersubrNum == 3) {
|
||||
results.push(removeInteger(sequence));
|
||||
} else {
|
||||
for (int i = 0; i < numArgs; i++)
|
||||
results.push(removeInteger(sequence));
|
||||
}
|
||||
while (input.peekUnsignedByte(0) == 12 && input.peekUnsignedByte(1) == 17) {
|
||||
input.readByte();
|
||||
input.readByte();
|
||||
sequence.add(results.pop());
|
||||
}
|
||||
if (results.size() > 0)
|
||||
LOG.warn("Value left on the PostScript stack in glyph " + this.glyphName + " of font " + this.fontName);
|
||||
continue;
|
||||
}
|
||||
if (b0 >= 0 && b0 <= 31) {
|
||||
sequence.add(readCommand(input, b0));
|
||||
continue;
|
||||
}
|
||||
if (b0 >= 32 && b0 <= 255) {
|
||||
sequence.add(readNumber(input, b0));
|
||||
continue;
|
||||
}
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
return sequence;
|
||||
}
|
||||
|
||||
private static Integer removeInteger(List<Object> sequence) throws IOException {
|
||||
Object item = sequence.remove(sequence.size() - 1);
|
||||
if (item instanceof Integer)
|
||||
return (Integer)item;
|
||||
CharStringCommand command = (CharStringCommand)item;
|
||||
if (command.getKey().getValue()[0] == 12 && command.getKey().getValue()[1] == 12) {
|
||||
int a = (Integer)sequence.remove(sequence.size() - 1);
|
||||
int b = (Integer)sequence.remove(sequence.size() - 1);
|
||||
return b / a;
|
||||
}
|
||||
throw new IOException("Unexpected char string command: " + command.getKey());
|
||||
}
|
||||
|
||||
private CharStringCommand readCommand(DataInput input, int b0) throws IOException {
|
||||
if (b0 == 12) {
|
||||
int b1 = input.readUnsignedByte();
|
||||
return new CharStringCommand(b0, b1);
|
||||
}
|
||||
return new CharStringCommand(b0);
|
||||
}
|
||||
|
||||
private Integer readNumber(DataInput input, int b0) throws IOException {
|
||||
if (b0 >= 32 && b0 <= 246)
|
||||
return b0 - 139;
|
||||
if (b0 >= 247 && b0 <= 250) {
|
||||
int b1 = input.readUnsignedByte();
|
||||
return (b0 - 247) * 256 + b1 + 108;
|
||||
}
|
||||
if (b0 >= 251 && b0 <= 254) {
|
||||
int b1 = input.readUnsignedByte();
|
||||
return -(b0 - 251) * 256 - b1 - 108;
|
||||
}
|
||||
if (b0 == 255)
|
||||
return input.readInt();
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
public final class Type1FontUtil {
|
||||
public static String hexEncode(byte[] bytes) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < bytes.length; i++) {
|
||||
String string = Integer.toHexString(bytes[i] & 0xFF);
|
||||
if (string.length() == 1)
|
||||
sb.append("0");
|
||||
sb.append(string.toUpperCase());
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public static byte[] hexDecode(String string) {
|
||||
if (string.length() % 2 != 0)
|
||||
throw new IllegalArgumentException();
|
||||
byte[] bytes = new byte[string.length() / 2];
|
||||
for (int i = 0; i < string.length(); i += 2)
|
||||
bytes[i / 2] = (byte)Integer.parseInt(string.substring(i, i + 2), 16);
|
||||
return bytes;
|
||||
}
|
||||
|
||||
public static byte[] eexecEncrypt(byte[] buffer) {
|
||||
return encrypt(buffer, 55665, 4);
|
||||
}
|
||||
|
||||
public static byte[] charstringEncrypt(byte[] buffer, int n) {
|
||||
return encrypt(buffer, 4330, n);
|
||||
}
|
||||
|
||||
private static byte[] encrypt(byte[] plaintextBytes, int r, int n) {
|
||||
byte[] buffer = new byte[plaintextBytes.length + n];
|
||||
for (int i = 0; i < n; i++)
|
||||
buffer[i] = 0;
|
||||
System.arraycopy(plaintextBytes, 0, buffer, n, buffer.length - n);
|
||||
int c1 = 52845;
|
||||
int c2 = 22719;
|
||||
byte[] ciphertextBytes = new byte[buffer.length];
|
||||
for (int j = 0; j < buffer.length; j++) {
|
||||
int plain = buffer[j] & 0xFF;
|
||||
int cipher = plain ^ r >> 8;
|
||||
ciphertextBytes[j] = (byte)cipher;
|
||||
r = (cipher + r) * c1 + c2 & 0xFFFF;
|
||||
}
|
||||
return ciphertextBytes;
|
||||
}
|
||||
|
||||
public static byte[] eexecDecrypt(byte[] buffer) {
|
||||
return decrypt(buffer, 55665, 4);
|
||||
}
|
||||
|
||||
public static byte[] charstringDecrypt(byte[] buffer, int n) {
|
||||
return decrypt(buffer, 4330, n);
|
||||
}
|
||||
|
||||
private static byte[] decrypt(byte[] ciphertextBytes, int r, int n) {
|
||||
byte[] buffer = new byte[ciphertextBytes.length];
|
||||
int c1 = 52845;
|
||||
int c2 = 22719;
|
||||
for (int i = 0; i < ciphertextBytes.length; i++) {
|
||||
int cipher = ciphertextBytes[i] & 0xFF;
|
||||
int plain = cipher ^ r >> 8;
|
||||
buffer[i] = (byte)plain;
|
||||
r = (cipher + r) * c1 + c2 & 0xFFFF;
|
||||
}
|
||||
byte[] plaintextBytes = new byte[ciphertextBytes.length - n];
|
||||
System.arraycopy(buffer, n, plaintextBytes, 0, plaintextBytes.length);
|
||||
return plaintextBytes;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,213 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import org.apache.fontbox.type1.Type1CharStringReader;
|
||||
|
||||
public class Type2CharString extends Type1CharString {
|
||||
private int defWidthX = 0;
|
||||
|
||||
private int nominalWidthX = 0;
|
||||
|
||||
private int pathCount = 0;
|
||||
|
||||
private final List<Object> type2sequence;
|
||||
|
||||
private final int gid;
|
||||
|
||||
public Type2CharString(Type1CharStringReader font, String fontName, String glyphName, int gid, List<Object> sequence, int defaultWidthX, int nomWidthX) {
|
||||
super(font, fontName, glyphName);
|
||||
this.gid = gid;
|
||||
this.type2sequence = sequence;
|
||||
this.defWidthX = defaultWidthX;
|
||||
this.nominalWidthX = nomWidthX;
|
||||
convertType1ToType2(sequence);
|
||||
}
|
||||
|
||||
public int getGID() {
|
||||
return this.gid;
|
||||
}
|
||||
|
||||
public List<Object> getType2Sequence() {
|
||||
return this.type2sequence;
|
||||
}
|
||||
|
||||
private void convertType1ToType2(List<Object> sequence) {
|
||||
this.type1Sequence = new ArrayList();
|
||||
this.pathCount = 0;
|
||||
CharStringHandler handler = new CharStringHandler() {
|
||||
public List<Integer> handleCommand(List<Integer> numbers, CharStringCommand command) {
|
||||
return Type2CharString.this.handleCommand(numbers, command);
|
||||
}
|
||||
};
|
||||
handler.handleSequence(sequence);
|
||||
}
|
||||
|
||||
private List<Integer> handleCommand(List<Integer> numbers, CharStringCommand command) {
|
||||
this.commandCount++;
|
||||
String name = CharStringCommand.TYPE2_VOCABULARY.get(command.getKey());
|
||||
if ("hstem".equals(name)) {
|
||||
numbers = clearStack(numbers, (numbers.size() % 2 != 0));
|
||||
expandStemHints(numbers, true);
|
||||
} else if ("vstem".equals(name)) {
|
||||
numbers = clearStack(numbers, (numbers.size() % 2 != 0));
|
||||
expandStemHints(numbers, false);
|
||||
} else if ("vmoveto".equals(name)) {
|
||||
numbers = clearStack(numbers, (numbers.size() > 1));
|
||||
markPath();
|
||||
addCommand(numbers, command);
|
||||
} else if ("rlineto".equals(name)) {
|
||||
addCommandList(Type2CharString.<Integer>split(numbers, 2), command);
|
||||
} else if ("hlineto".equals(name)) {
|
||||
drawAlternatingLine(numbers, true);
|
||||
} else if ("vlineto".equals(name)) {
|
||||
drawAlternatingLine(numbers, false);
|
||||
} else if ("rrcurveto".equals(name)) {
|
||||
addCommandList(Type2CharString.<Integer>split(numbers, 6), command);
|
||||
} else if ("endchar".equals(name)) {
|
||||
numbers = clearStack(numbers, (numbers.size() == 5 || numbers.size() == 1));
|
||||
closePath();
|
||||
if (numbers.size() == 4) {
|
||||
numbers.add(0, Integer.valueOf(0));
|
||||
addCommand(numbers, new CharStringCommand(12, 6));
|
||||
} else {
|
||||
addCommand(numbers, command);
|
||||
}
|
||||
} else if ("rmoveto".equals(name)) {
|
||||
numbers = clearStack(numbers, (numbers.size() > 2));
|
||||
markPath();
|
||||
addCommand(numbers, command);
|
||||
} else if ("hmoveto".equals(name)) {
|
||||
numbers = clearStack(numbers, (numbers.size() > 1));
|
||||
markPath();
|
||||
addCommand(numbers, command);
|
||||
} else if ("vhcurveto".equals(name)) {
|
||||
drawAlternatingCurve(numbers, false);
|
||||
} else if ("hvcurveto".equals(name)) {
|
||||
drawAlternatingCurve(numbers, true);
|
||||
} else if ("hflex".equals(name)) {
|
||||
List<Integer> first = Arrays.<Integer>asList(numbers.get(0), 0, numbers.get(1), numbers.get(2), numbers.get(3), 0);
|
||||
List<Integer> second = Arrays.<Integer>asList(numbers.get(4), 0, numbers.get(5), -((Integer)numbers.get(2)), numbers.get(6), 0);
|
||||
addCommandList(Arrays.<List<Integer>>asList(first, second), new CharStringCommand(8));
|
||||
} else if ("flex".equals(name)) {
|
||||
List<Integer> first = numbers.subList(0, 6);
|
||||
List<Integer> second = numbers.subList(6, 12);
|
||||
addCommandList(Arrays.<List<Integer>>asList(first, second), new CharStringCommand(8));
|
||||
} else if ("hflex1".equals(name)) {
|
||||
List<Integer> first = Arrays.<Integer>asList(numbers.get(0), numbers.get(1), numbers.get(2), numbers.get(3), numbers.get(4), 0);
|
||||
List<Integer> second = Arrays.<Integer>asList(numbers.get(5), 0, numbers.get(6), numbers.get(7), numbers.get(8), 0);
|
||||
addCommandList(Arrays.<List<Integer>>asList(first, second), new CharStringCommand(8));
|
||||
} else if ("flex1".equals(name)) {
|
||||
int dx = 0;
|
||||
int dy = 0;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
dx += numbers.get(i * 2);
|
||||
dy += numbers.get(i * 2 + 1);
|
||||
}
|
||||
List<Integer> first = numbers.subList(0, 6);
|
||||
List<Integer> second = Arrays.<Integer>asList(numbers.get(6), numbers.get(7), numbers.get(8), numbers.get(9), (Math.abs(dx) > Math.abs(dy)) ? numbers.get(10) : -dx, (Math.abs(dx) > Math.abs(dy)) ? -dy : numbers.get(10));
|
||||
addCommandList(Arrays.<List<Integer>>asList(first, second), new CharStringCommand(8));
|
||||
} else if ("hstemhm".equals(name)) {
|
||||
numbers = clearStack(numbers, (numbers.size() % 2 != 0));
|
||||
expandStemHints(numbers, true);
|
||||
} else if ("hintmask".equals(name) || "cntrmask".equals(name)) {
|
||||
numbers = clearStack(numbers, (numbers.size() % 2 != 0));
|
||||
if (numbers.size() > 0)
|
||||
expandStemHints(numbers, false);
|
||||
} else if ("vstemhm".equals(name)) {
|
||||
numbers = clearStack(numbers, (numbers.size() % 2 != 0));
|
||||
expandStemHints(numbers, false);
|
||||
} else if ("rcurveline".equals(name)) {
|
||||
addCommandList(Type2CharString.<Integer>split(numbers.subList(0, numbers.size() - 2), 6), new CharStringCommand(8));
|
||||
addCommand(numbers.subList(numbers.size() - 2, numbers.size()), new CharStringCommand(5));
|
||||
} else if ("rlinecurve".equals(name)) {
|
||||
addCommandList(Type2CharString.<Integer>split(numbers.subList(0, numbers.size() - 6), 2), new CharStringCommand(5));
|
||||
addCommand(numbers.subList(numbers.size() - 6, numbers.size()), new CharStringCommand(8));
|
||||
} else if ("vvcurveto".equals(name)) {
|
||||
drawCurve(numbers, false);
|
||||
} else if ("hhcurveto".equals(name)) {
|
||||
drawCurve(numbers, true);
|
||||
} else {
|
||||
addCommand(numbers, command);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private List<Integer> clearStack(List<Integer> numbers, boolean flag) {
|
||||
if (this.type1Sequence.isEmpty())
|
||||
if (flag) {
|
||||
addCommand(Arrays.<Integer>asList(0, numbers.get(0) + this.nominalWidthX), new CharStringCommand(13));
|
||||
numbers = numbers.subList(1, numbers.size());
|
||||
} else {
|
||||
addCommand(Arrays.<Integer>asList(0, this.defWidthX), new CharStringCommand(13));
|
||||
}
|
||||
return numbers;
|
||||
}
|
||||
|
||||
private void expandStemHints(List<Integer> numbers, boolean horizontal) {}
|
||||
|
||||
private void markPath() {
|
||||
if (this.pathCount > 0)
|
||||
closePath();
|
||||
this.pathCount++;
|
||||
}
|
||||
|
||||
private void closePath() {
|
||||
CharStringCommand command = (this.pathCount > 0) ? (CharStringCommand)this.type1Sequence.get(this.type1Sequence.size() - 1) : null;
|
||||
CharStringCommand closepathCommand = new CharStringCommand(9);
|
||||
if (command != null && !closepathCommand.equals(command))
|
||||
addCommand(Collections.<Integer>emptyList(), closepathCommand);
|
||||
}
|
||||
|
||||
private void drawAlternatingLine(List<Integer> numbers, boolean horizontal) {
|
||||
while (numbers.size() > 0) {
|
||||
addCommand(numbers.subList(0, 1), new CharStringCommand(horizontal ? 6 : 7));
|
||||
numbers = numbers.subList(1, numbers.size());
|
||||
horizontal = !horizontal;
|
||||
}
|
||||
}
|
||||
|
||||
private void drawAlternatingCurve(List<Integer> numbers, boolean horizontal) {
|
||||
while (numbers.size() > 0) {
|
||||
boolean last = (numbers.size() == 5);
|
||||
if (horizontal) {
|
||||
addCommand(Arrays.<Integer>asList(numbers.get(0), 0, numbers.get(1), numbers.get(2), last ? numbers.get(4) : 0, numbers.get(3)), new CharStringCommand(8));
|
||||
} else {
|
||||
addCommand(Arrays.<Integer>asList(0, numbers.get(0), numbers.get(1), numbers.get(2), numbers.get(3), last ? numbers.get(4) : 0), new CharStringCommand(8));
|
||||
}
|
||||
numbers = numbers.subList(last ? 5 : 4, numbers.size());
|
||||
horizontal = !horizontal;
|
||||
}
|
||||
}
|
||||
|
||||
private void drawCurve(List<Integer> numbers, boolean horizontal) {
|
||||
while (numbers.size() > 0) {
|
||||
boolean first = (numbers.size() % 4 == 1);
|
||||
if (horizontal) {
|
||||
addCommand(Arrays.<Integer>asList(numbers.get(first ? 1 : 0), first ? numbers.get(0) : 0, numbers.get(first ? 2 : 1), numbers.get(first ? 3 : 2), numbers.get(first ? 4 : 3), 0), new CharStringCommand(8));
|
||||
} else {
|
||||
addCommand(Arrays.<Integer>asList(first ? numbers.get(0) : 0, numbers.get(first ? 1 : 0), numbers.get(first ? 2 : 1), numbers.get(first ? 3 : 2), 0, numbers.get(first ? 4 : 3)), new CharStringCommand(8));
|
||||
}
|
||||
numbers = numbers.subList(first ? 5 : 4, numbers.size());
|
||||
}
|
||||
}
|
||||
|
||||
private void addCommandList(List<List<Integer>> numbers, CharStringCommand command) {
|
||||
for (List<Integer> ns : numbers)
|
||||
addCommand(ns, command);
|
||||
}
|
||||
|
||||
private void addCommand(List<Integer> numbers, CharStringCommand command) {
|
||||
this.type1Sequence.addAll(numbers);
|
||||
this.type1Sequence.add(command);
|
||||
}
|
||||
|
||||
private static <E> List<List<E>> split(List<E> list, int size) {
|
||||
List<List<E>> result = new ArrayList<List<E>>();
|
||||
for (int i = 0; i < list.size() / size; i++)
|
||||
result.add(list.subList(i * size, (i + 1) * size));
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,168 @@
|
|||
package org.apache.fontbox.cff;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Type2CharStringParser {
|
||||
private int hstemCount = 0;
|
||||
|
||||
private int vstemCount = 0;
|
||||
|
||||
private List<Object> sequence = null;
|
||||
|
||||
private final String fontName;
|
||||
|
||||
private final String glyphName;
|
||||
|
||||
public Type2CharStringParser(String fontName, String glyphName) {
|
||||
this.fontName = fontName;
|
||||
this.glyphName = glyphName;
|
||||
}
|
||||
|
||||
public Type2CharStringParser(String fontName, int cid) {
|
||||
this.fontName = fontName;
|
||||
this.glyphName = String.format("%04x", cid);
|
||||
}
|
||||
|
||||
public List<Object> parse(byte[] bytes, byte[][] globalSubrIndex, byte[][] localSubrIndex) throws IOException {
|
||||
return parse(bytes, globalSubrIndex, localSubrIndex, true);
|
||||
}
|
||||
|
||||
private List<Object> parse(byte[] bytes, byte[][] globalSubrIndex, byte[][] localSubrIndex, boolean init) throws IOException {
|
||||
if (init) {
|
||||
this.hstemCount = 0;
|
||||
this.vstemCount = 0;
|
||||
this.sequence = new ArrayList();
|
||||
}
|
||||
DataInput input = new DataInput(bytes);
|
||||
boolean localSubroutineIndexProvided = (localSubrIndex != null && localSubrIndex.length > 0);
|
||||
boolean globalSubroutineIndexProvided = (globalSubrIndex != null && globalSubrIndex.length > 0);
|
||||
while (input.hasRemaining()) {
|
||||
int b0 = input.readUnsignedByte();
|
||||
if (b0 == 10 && localSubroutineIndexProvided) {
|
||||
Integer operand = (Integer)this.sequence.remove(this.sequence.size() - 1);
|
||||
int bias = 0;
|
||||
int nSubrs = localSubrIndex.length;
|
||||
if (nSubrs < 1240) {
|
||||
bias = 107;
|
||||
} else if (nSubrs < 33900) {
|
||||
bias = 1131;
|
||||
} else {
|
||||
bias = 32768;
|
||||
}
|
||||
int subrNumber = bias + operand;
|
||||
if (subrNumber < localSubrIndex.length) {
|
||||
byte[] subrBytes = localSubrIndex[subrNumber];
|
||||
parse(subrBytes, globalSubrIndex, localSubrIndex, false);
|
||||
Object lastItem = this.sequence.get(this.sequence.size() - 1);
|
||||
if (lastItem instanceof CharStringCommand && ((CharStringCommand)lastItem).getKey().getValue()[0] == 11)
|
||||
this.sequence.remove(this.sequence.size() - 1);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (b0 == 29 && globalSubroutineIndexProvided) {
|
||||
Integer operand = (Integer)this.sequence.remove(this.sequence.size() - 1);
|
||||
int bias = 0;
|
||||
int nSubrs = globalSubrIndex.length;
|
||||
if (nSubrs < 1240) {
|
||||
bias = 107;
|
||||
} else if (nSubrs < 33900) {
|
||||
bias = 1131;
|
||||
} else {
|
||||
bias = 32768;
|
||||
}
|
||||
int subrNumber = bias + operand;
|
||||
if (subrNumber < globalSubrIndex.length) {
|
||||
byte[] subrBytes = globalSubrIndex[subrNumber];
|
||||
parse(subrBytes, globalSubrIndex, localSubrIndex, false);
|
||||
Object lastItem = this.sequence.get(this.sequence.size() - 1);
|
||||
if (lastItem instanceof CharStringCommand && ((CharStringCommand)lastItem).getKey().getValue()[0] == 11)
|
||||
this.sequence.remove(this.sequence.size() - 1);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (b0 >= 0 && b0 <= 27) {
|
||||
this.sequence.add(readCommand(b0, input));
|
||||
continue;
|
||||
}
|
||||
if (b0 == 28) {
|
||||
this.sequence.add(readNumber(b0, input));
|
||||
continue;
|
||||
}
|
||||
if (b0 >= 29 && b0 <= 31) {
|
||||
this.sequence.add(readCommand(b0, input));
|
||||
continue;
|
||||
}
|
||||
if (b0 >= 32 && b0 <= 255) {
|
||||
this.sequence.add(readNumber(b0, input));
|
||||
continue;
|
||||
}
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
return this.sequence;
|
||||
}
|
||||
|
||||
private CharStringCommand readCommand(int b0, DataInput input) throws IOException {
|
||||
if (b0 == 1 || b0 == 18) {
|
||||
this.hstemCount += peekNumbers().size() / 2;
|
||||
} else if (b0 == 3 || b0 == 19 || b0 == 20 || b0 == 23) {
|
||||
this.vstemCount += peekNumbers().size() / 2;
|
||||
}
|
||||
if (b0 == 12) {
|
||||
int b1 = input.readUnsignedByte();
|
||||
return new CharStringCommand(b0, b1);
|
||||
}
|
||||
if (b0 == 19 || b0 == 20) {
|
||||
int[] value = new int[1 + getMaskLength()];
|
||||
value[0] = b0;
|
||||
for (int i = 1; i < value.length; i++)
|
||||
value[i] = input.readUnsignedByte();
|
||||
return new CharStringCommand(value);
|
||||
}
|
||||
return new CharStringCommand(b0);
|
||||
}
|
||||
|
||||
private Integer readNumber(int b0, DataInput input) throws IOException {
|
||||
if (b0 == 28)
|
||||
return Integer.valueOf(input.readShort());
|
||||
if (b0 >= 32 && b0 <= 246)
|
||||
return b0 - 139;
|
||||
if (b0 >= 247 && b0 <= 250) {
|
||||
int b1 = input.readUnsignedByte();
|
||||
return (b0 - 247) * 256 + b1 + 108;
|
||||
}
|
||||
if (b0 >= 251 && b0 <= 254) {
|
||||
int b1 = input.readUnsignedByte();
|
||||
return -(b0 - 251) * 256 - b1 - 108;
|
||||
}
|
||||
if (b0 == 255) {
|
||||
short value = input.readShort();
|
||||
input.readUnsignedByte();
|
||||
input.readUnsignedByte();
|
||||
return Integer.valueOf(value);
|
||||
}
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
|
||||
private int getMaskLength() {
|
||||
int hintCount = this.hstemCount + this.vstemCount;
|
||||
int length = hintCount / 8;
|
||||
if (hintCount % 8 > 0)
|
||||
length++;
|
||||
return length;
|
||||
}
|
||||
|
||||
private List<Number> peekNumbers() {
|
||||
List<Number> numbers = new ArrayList<Number>();
|
||||
for (int i = this.sequence.size() - 1; i > -1; i--) {
|
||||
Object object = this.sequence.get(i);
|
||||
if (object instanceof Number) {
|
||||
numbers.add(0, (Number)object);
|
||||
} else {
|
||||
return numbers;
|
||||
}
|
||||
}
|
||||
return numbers;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,314 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (83pv-RKSJ-H)
|
||||
%%Title: (83pv-RKSJ-H Adobe Japan1 1)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 1 def
|
||||
end def
|
||||
|
||||
/CMapName /83pv-RKSJ-H def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 0 def
|
||||
/XUID [1 10 25324] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
5 begincodespacerange
|
||||
<00> <80>
|
||||
<8140> <9FFC>
|
||||
<A0> <DF>
|
||||
<E040> <FCFC>
|
||||
<FD> <FF>
|
||||
endcodespacerange
|
||||
|
||||
1 beginnotdefrange
|
||||
<00> <1f> 1
|
||||
endnotdefrange
|
||||
|
||||
100 begincidrange
|
||||
<20> <7e> 1
|
||||
<80> <80> 97
|
||||
<8140> <817e> 633
|
||||
<8180> <81ac> 696
|
||||
<81b8> <81bf> 741
|
||||
<81c8> <81ce> 749
|
||||
<81da> <81e8> 756
|
||||
<81f0> <81f7> 771
|
||||
<81fc> <81fc> 779
|
||||
<824f> <8258> 780
|
||||
<8260> <8279> 790
|
||||
<8281> <829a> 816
|
||||
<829f> <82f1> 842
|
||||
<8340> <837e> 925
|
||||
<8380> <8396> 988
|
||||
<839f> <83b6> 1011
|
||||
<83bf> <83d6> 1035
|
||||
<8440> <8460> 1059
|
||||
<8470> <847e> 1092
|
||||
<8480> <8491> 1107
|
||||
<849f> <849f> 7479
|
||||
<84a0> <84a0> 7481
|
||||
<84a1> <84a1> 7491
|
||||
<84a2> <84a2> 7495
|
||||
<84a3> <84a3> 7503
|
||||
<84a4> <84a4> 7499
|
||||
<84a5> <84a5> 7507
|
||||
<84a6> <84a6> 7523
|
||||
<84a7> <84a7> 7515
|
||||
<84a8> <84a8> 7531
|
||||
<84a9> <84a9> 7539
|
||||
<84aa> <84aa> 7480
|
||||
<84ab> <84ab> 7482
|
||||
<84ac> <84ac> 7494
|
||||
<84ad> <84ad> 7498
|
||||
<84ae> <84ae> 7506
|
||||
<84af> <84af> 7502
|
||||
<84b0> <84b0> 7514
|
||||
<84b1> <84b1> 7530
|
||||
<84b2> <84b2> 7522
|
||||
<84b3> <84b3> 7538
|
||||
<84b4> <84b4> 7554
|
||||
<84b5> <84b5> 7511
|
||||
<84b6> <84b6> 7526
|
||||
<84b7> <84b7> 7519
|
||||
<84b8> <84b8> 7534
|
||||
<84b9> <84b9> 7542
|
||||
<84ba> <84ba> 7508
|
||||
<84bb> <84bb> 7527
|
||||
<84bc> <84bc> 7516
|
||||
<84bd> <84bd> 7535
|
||||
<84be> <84be> 7545
|
||||
<8540> <857e> 232
|
||||
<8580> <8580> 390
|
||||
<8581> <859e> 296
|
||||
<859f> <85dd> 327
|
||||
<85de> <85fc> 391
|
||||
<8640> <867e> 422
|
||||
<8680> <8691> 485
|
||||
<8692> <8692> 295
|
||||
<8693> <869e> 503
|
||||
<86a2> <86ed> 7479
|
||||
<8740> <875d> 7555
|
||||
<875f> <8775> 7585
|
||||
<8780> <878f> 7608
|
||||
<8790> <8790> 762
|
||||
<8791> <8791> 761
|
||||
<8792> <8792> 769
|
||||
<8793> <8799> 7624
|
||||
<879a> <879a> 768
|
||||
<879b> <879c> 7631
|
||||
<889f> <88fc> 1125
|
||||
<8940> <897e> 1219
|
||||
<8980> <89fc> 1282
|
||||
<8a40> <8a7e> 1407
|
||||
<8a80> <8afc> 1470
|
||||
<8b40> <8b7e> 1595
|
||||
<8b80> <8bfc> 1658
|
||||
<8c40> <8c7e> 1783
|
||||
<8c80> <8cfc> 1846
|
||||
<8d40> <8d7e> 1971
|
||||
<8d80> <8dfc> 2034
|
||||
<8e40> <8e7e> 2159
|
||||
<8e80> <8efc> 2222
|
||||
<8f40> <8f7e> 2347
|
||||
<8f80> <8ffc> 2410
|
||||
<9040> <907e> 2535
|
||||
<9080> <90fc> 2598
|
||||
<9140> <917e> 2723
|
||||
<9180> <91fc> 2786
|
||||
<9240> <927e> 2911
|
||||
<9280> <92fc> 2974
|
||||
<9340> <937e> 3099
|
||||
<9380> <93fc> 3162
|
||||
<9440> <947e> 3287
|
||||
<9480> <94fc> 3350
|
||||
<9540> <957e> 3475
|
||||
<9580> <95fc> 3538
|
||||
<9640> <967e> 3663
|
||||
<9680> <96fc> 3726
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<9740> <977e> 3851
|
||||
<9780> <97fc> 3914
|
||||
<9840> <9872> 4039
|
||||
<989f> <98fc> 4090
|
||||
<9940> <997e> 4184
|
||||
<9980> <99fc> 4247
|
||||
<9a40> <9a7e> 4372
|
||||
<9a80> <9afc> 4435
|
||||
<9b40> <9b7e> 4560
|
||||
<9b80> <9bfc> 4623
|
||||
<9c40> <9c7e> 4748
|
||||
<9c80> <9cfc> 4811
|
||||
<9d40> <9d7e> 4936
|
||||
<9d80> <9dfc> 4999
|
||||
<9e40> <9e7e> 5124
|
||||
<9e80> <9efc> 5187
|
||||
<9f40> <9f7e> 5312
|
||||
<9f80> <9ffc> 5375
|
||||
<a0> <df> 326
|
||||
<e040> <e07e> 5500
|
||||
<e080> <e0fc> 5563
|
||||
<e140> <e17e> 5688
|
||||
<e180> <e1fc> 5751
|
||||
<e240> <e27e> 5876
|
||||
<e280> <e2fc> 5939
|
||||
<e340> <e37e> 6064
|
||||
<e380> <e3fc> 6127
|
||||
<e440> <e47e> 6252
|
||||
<e480> <e4fc> 6315
|
||||
<e540> <e57e> 6440
|
||||
<e580> <e5fc> 6503
|
||||
<e640> <e67e> 6628
|
||||
<e680> <e6fc> 6691
|
||||
<e740> <e77e> 6816
|
||||
<e780> <e7fc> 6879
|
||||
<e840> <e87e> 7004
|
||||
<e880> <e8fc> 7067
|
||||
<e940> <e97e> 7192
|
||||
<e980> <e9fc> 7255
|
||||
<ea40> <ea7e> 7380
|
||||
<ea80> <eaa2> 7443
|
||||
<eaa3> <eaa4> 8284
|
||||
<eb40> <eb40> 633
|
||||
<eb41> <eb42> 7887
|
||||
<eb43> <eb4f> 636
|
||||
<eb50> <eb51> 7889
|
||||
<eb52> <eb5a> 651
|
||||
<eb5b> <eb5d> 7891
|
||||
<eb5e> <eb5f> 663
|
||||
<eb60> <eb64> 7894
|
||||
<eb65> <eb68> 670
|
||||
<eb69> <eb7a> 7899
|
||||
<eb7b> <eb7e> 692
|
||||
<eb80> <eb80> 696
|
||||
<eb81> <eb81> 7917
|
||||
<eb82> <ebac> 698
|
||||
<ebb8> <ebbf> 741
|
||||
<ebc8> <ebce> 749
|
||||
<ebda> <ebe8> 756
|
||||
<ebf0> <ebf7> 771
|
||||
<ebfc> <ebfc> 779
|
||||
<ec4f> <ec58> 780
|
||||
<ec60> <ec79> 790
|
||||
<ec81> <ec9a> 816
|
||||
<ec9f> <ec9f> 7918
|
||||
<eca0> <eca0> 843
|
||||
<eca1> <eca1> 7919
|
||||
<eca2> <eca2> 845
|
||||
<eca3> <eca3> 7920
|
||||
<eca4> <eca4> 847
|
||||
<eca5> <eca5> 7921
|
||||
<eca6> <eca6> 849
|
||||
<eca7> <eca7> 7922
|
||||
<eca8> <ecc0> 851
|
||||
<ecc1> <ecc1> 7923
|
||||
<ecc2> <ece0> 877
|
||||
<ece1> <ece1> 7924
|
||||
<ece2> <ece2> 909
|
||||
<ece3> <ece3> 7925
|
||||
<ece4> <ece4> 911
|
||||
<ece5> <ece5> 7926
|
||||
<ece6> <eceb> 913
|
||||
<ecec> <ecec> 7927
|
||||
<eced> <ecf1> 920
|
||||
<ed40> <ed40> 7928
|
||||
<ed41> <ed41> 926
|
||||
<ed42> <ed42> 7929
|
||||
<ed43> <ed43> 928
|
||||
<ed44> <ed44> 7930
|
||||
<ed45> <ed45> 930
|
||||
<ed46> <ed46> 7931
|
||||
<ed47> <ed47> 932
|
||||
<ed48> <ed48> 7932
|
||||
<ed49> <ed61> 934
|
||||
<ed62> <ed62> 7933
|
||||
<ed63> <ed7e> 960
|
||||
<ed80> <ed82> 988
|
||||
<ed83> <ed83> 7934
|
||||
<ed84> <ed84> 992
|
||||
<ed85> <ed85> 7935
|
||||
endcidrange
|
||||
|
||||
22 begincidrange
|
||||
<ed86> <ed86> 994
|
||||
<ed87> <ed87> 7936
|
||||
<ed88> <ed8d> 996
|
||||
<ed8e> <ed8e> 7937
|
||||
<ed8f> <ed94> 1003
|
||||
<ed95> <ed96> 7938
|
||||
<ed9f> <edb6> 1011
|
||||
<edbf> <edd6> 1035
|
||||
<ee40> <ee5d> 7555
|
||||
<ee5f> <ee6e> 7940
|
||||
<ee6f> <ee75> 7601
|
||||
<ee80> <ee81> 7956
|
||||
<ee82> <ee8f> 7610
|
||||
<ee90> <ee90> 762
|
||||
<ee91> <ee91> 761
|
||||
<ee92> <ee92> 769
|
||||
<ee93> <ee99> 7624
|
||||
<ee9a> <ee9a> 768
|
||||
<ee9b> <ee9c> 7631
|
||||
<fd> <fd> 152
|
||||
<fe> <fe> 228
|
||||
<ff> <ff> 124
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,259 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (90ms-RKSJ-H)
|
||||
%%Title: (90ms-RKSJ-H Adobe Japan1 2)
|
||||
%%Version: 11.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 2 def
|
||||
end def
|
||||
|
||||
/CMapName /90ms-RKSJ-H def
|
||||
/CMapVersion 11.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 950 def
|
||||
/XUID [1 10 25343] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
4 begincodespacerange
|
||||
<00> <80>
|
||||
<8140> <9FFC>
|
||||
<A0> <DF>
|
||||
<E040> <FCFC>
|
||||
endcodespacerange
|
||||
|
||||
1 beginnotdefrange
|
||||
<00> <1f> 231
|
||||
endnotdefrange
|
||||
|
||||
100 begincidrange
|
||||
<20> <7d> 231
|
||||
<7e> <7e> 631
|
||||
<8140> <817e> 633
|
||||
<8180> <81ac> 696
|
||||
<81b8> <81bf> 741
|
||||
<81c8> <81ce> 749
|
||||
<81da> <81e8> 756
|
||||
<81f0> <81f7> 771
|
||||
<81fc> <81fc> 779
|
||||
<824f> <8258> 780
|
||||
<8260> <8279> 790
|
||||
<8281> <829a> 816
|
||||
<829f> <82f1> 842
|
||||
<8340> <837e> 925
|
||||
<8380> <8396> 988
|
||||
<839f> <83b6> 1011
|
||||
<83bf> <83d6> 1035
|
||||
<8440> <8460> 1059
|
||||
<8470> <847e> 1092
|
||||
<8480> <8491> 1107
|
||||
<849f> <849f> 7479
|
||||
<84a0> <84a0> 7481
|
||||
<84a1> <84a1> 7491
|
||||
<84a2> <84a2> 7495
|
||||
<84a3> <84a3> 7503
|
||||
<84a4> <84a4> 7499
|
||||
<84a5> <84a5> 7507
|
||||
<84a6> <84a6> 7523
|
||||
<84a7> <84a7> 7515
|
||||
<84a8> <84a8> 7531
|
||||
<84a9> <84a9> 7539
|
||||
<84aa> <84aa> 7480
|
||||
<84ab> <84ab> 7482
|
||||
<84ac> <84ac> 7494
|
||||
<84ad> <84ad> 7498
|
||||
<84ae> <84ae> 7506
|
||||
<84af> <84af> 7502
|
||||
<84b0> <84b0> 7514
|
||||
<84b1> <84b1> 7530
|
||||
<84b2> <84b2> 7522
|
||||
<84b3> <84b3> 7538
|
||||
<84b4> <84b4> 7554
|
||||
<84b5> <84b5> 7511
|
||||
<84b6> <84b6> 7526
|
||||
<84b7> <84b7> 7519
|
||||
<84b8> <84b8> 7534
|
||||
<84b9> <84b9> 7542
|
||||
<84ba> <84ba> 7508
|
||||
<84bb> <84bb> 7527
|
||||
<84bc> <84bc> 7516
|
||||
<84bd> <84bd> 7535
|
||||
<84be> <84be> 7545
|
||||
<8740> <875d> 7555
|
||||
<875f> <8760> 7585
|
||||
<8761> <8761> 8038
|
||||
<8762> <8762> 7588
|
||||
<8763> <8763> 8040
|
||||
<8764> <8764> 7590
|
||||
<8765> <8765> 8042
|
||||
<8766> <8767> 7592
|
||||
<8768> <8768> 8044
|
||||
<8769> <876a> 7595
|
||||
<876b> <876b> 8043
|
||||
<876c> <876d> 7598
|
||||
<876e> <876e> 8047
|
||||
<876f> <8775> 7601
|
||||
<877e> <877e> 8323
|
||||
<8780> <8783> 7608
|
||||
<8784> <8784> 8055
|
||||
<8785> <878f> 7613
|
||||
<8790> <8790> 762
|
||||
<8791> <8791> 761
|
||||
<8792> <8792> 769
|
||||
<8793> <8799> 7624
|
||||
<879a> <879a> 768
|
||||
<879b> <879c> 7631
|
||||
<889f> <88fc> 1125
|
||||
<8940> <897e> 1219
|
||||
<8980> <89fc> 1282
|
||||
<8a40> <8a7e> 1407
|
||||
<8a80> <8afc> 1470
|
||||
<8b40> <8b7e> 1595
|
||||
<8b80> <8bfc> 1658
|
||||
<8c40> <8c7e> 1783
|
||||
<8c80> <8cfc> 1846
|
||||
<8d40> <8d7e> 1971
|
||||
<8d80> <8dfc> 2034
|
||||
<8e40> <8e7e> 2159
|
||||
<8e80> <8efc> 2222
|
||||
<8f40> <8f7e> 2347
|
||||
<8f80> <8ffc> 2410
|
||||
<9040> <907e> 2535
|
||||
<9080> <90fc> 2598
|
||||
<9140> <917e> 2723
|
||||
<9180> <91fc> 2786
|
||||
<9240> <927e> 2911
|
||||
<9280> <92fc> 2974
|
||||
<9340> <937e> 3099
|
||||
<9380> <93fc> 3162
|
||||
<9440> <947e> 3287
|
||||
endcidrange
|
||||
|
||||
71 begincidrange
|
||||
<9480> <94fc> 3350
|
||||
<9540> <957e> 3475
|
||||
<9580> <95fc> 3538
|
||||
<9640> <967e> 3663
|
||||
<9680> <96fc> 3726
|
||||
<9740> <977e> 3851
|
||||
<9780> <97fc> 3914
|
||||
<9840> <9872> 4039
|
||||
<989f> <98fc> 4090
|
||||
<9940> <997e> 4184
|
||||
<9980> <99fc> 4247
|
||||
<9a40> <9a7e> 4372
|
||||
<9a80> <9afc> 4435
|
||||
<9b40> <9b7e> 4560
|
||||
<9b80> <9bfc> 4623
|
||||
<9c40> <9c7e> 4748
|
||||
<9c80> <9cfc> 4811
|
||||
<9d40> <9d7e> 4936
|
||||
<9d80> <9dfc> 4999
|
||||
<9e40> <9e7e> 5124
|
||||
<9e80> <9efc> 5187
|
||||
<9f40> <9f7e> 5312
|
||||
<9f80> <9ffc> 5375
|
||||
<a0> <df> 326
|
||||
<e040> <e07e> 5500
|
||||
<e080> <e0fc> 5563
|
||||
<e140> <e17e> 5688
|
||||
<e180> <e1fc> 5751
|
||||
<e240> <e27e> 5876
|
||||
<e280> <e2fc> 5939
|
||||
<e340> <e37e> 6064
|
||||
<e380> <e3fc> 6127
|
||||
<e440> <e47e> 6252
|
||||
<e480> <e4fc> 6315
|
||||
<e540> <e57e> 6440
|
||||
<e580> <e5fc> 6503
|
||||
<e640> <e67e> 6628
|
||||
<e680> <e6fc> 6691
|
||||
<e740> <e77e> 6816
|
||||
<e780> <e7fc> 6879
|
||||
<e840> <e87e> 7004
|
||||
<e880> <e8fc> 7067
|
||||
<e940> <e97e> 7192
|
||||
<e980> <e9fc> 7255
|
||||
<ea40> <ea7e> 7380
|
||||
<ea80> <eaa2> 7443
|
||||
<eaa3> <eaa4> 8284
|
||||
<ed40> <ed7e> 8359
|
||||
<ed80> <edb3> 8422
|
||||
<edb4> <edb4> 1993
|
||||
<edb5> <edfc> 8474
|
||||
<ee40> <ee7e> 8546
|
||||
<ee80> <eeec> 8609
|
||||
<eeef> <eef8> 8092
|
||||
<eef9> <eef9> 751
|
||||
<eefa> <eefc> 8005
|
||||
<fa40> <fa49> 8092
|
||||
<fa4a> <fa53> 7575
|
||||
<fa54> <fa54> 751
|
||||
<fa55> <fa57> 8005
|
||||
<fa58> <fa58> 7618
|
||||
<fa59> <fa59> 7610
|
||||
<fa5a> <fa5a> 8055
|
||||
<fa5b> <fa5b> 768
|
||||
<fa5c> <fa7e> 8359
|
||||
<fa80> <facf> 8394
|
||||
<fad0> <fad0> 1993
|
||||
<fad1> <fafc> 8474
|
||||
<fb40> <fb7e> 8518
|
||||
<fb80> <fbfc> 8581
|
||||
<fc40> <fc4b> 8706
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,156 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (90ms-RKSJ-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (90ms-RKSJ-H)
|
||||
%%BeginResource: CMap (90ms-RKSJ-V)
|
||||
%%Title: (90ms-RKSJ-V Adobe Japan1 2)
|
||||
%%Version: 11.003
|
||||
%%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
|
||||
|
||||
/90ms-RKSJ-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 2 def
|
||||
end def
|
||||
|
||||
/CMapName /90ms-RKSJ-V def
|
||||
/CMapVersion 11.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 1020 def
|
||||
/XUID [1 10 25344] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
78 begincidrange
|
||||
<8141> <8142> 7887
|
||||
<8143> <8143> 8268
|
||||
<8144> <8144> 8274
|
||||
<8150> <8151> 7889
|
||||
<815b> <815d> 7891
|
||||
<8160> <8164> 7894
|
||||
<8169> <817a> 7899
|
||||
<8181> <8181> 7917
|
||||
<81a8> <81a8> 739
|
||||
<81a9> <81a9> 738
|
||||
<81aa> <81ab> 736
|
||||
<81ac> <81ac> 8270
|
||||
<829f> <829f> 7918
|
||||
<82a1> <82a1> 7919
|
||||
<82a3> <82a3> 7920
|
||||
<82a5> <82a5> 7921
|
||||
<82a7> <82a7> 7922
|
||||
<82c1> <82c1> 7923
|
||||
<82e1> <82e1> 7924
|
||||
<82e3> <82e3> 7925
|
||||
<82e5> <82e5> 7926
|
||||
<82ec> <82ec> 7927
|
||||
<8340> <8340> 7928
|
||||
<8342> <8342> 7929
|
||||
<8344> <8344> 7930
|
||||
<8346> <8346> 7931
|
||||
<8348> <8348> 7932
|
||||
<8362> <8362> 7933
|
||||
<8383> <8383> 7934
|
||||
<8385> <8385> 7935
|
||||
<8387> <8387> 7936
|
||||
<838e> <838e> 7937
|
||||
<8395> <8396> 7938
|
||||
<849f> <849f> 7481
|
||||
<84a0> <84a0> 7479
|
||||
<84a1> <84a1> 7495
|
||||
<84a2> <84a2> 7503
|
||||
<84a3> <84a3> 7499
|
||||
<84a4> <84a4> 7491
|
||||
<84a5> <84a5> 7523
|
||||
<84a6> <84a6> 7515
|
||||
<84a7> <84a7> 7531
|
||||
<84a8> <84a8> 7507
|
||||
<84a9> <84a9> 7539
|
||||
<84aa> <84aa> 7482
|
||||
<84ab> <84ab> 7480
|
||||
<84ac> <84ac> 7498
|
||||
<84ad> <84ad> 7506
|
||||
<84ae> <84ae> 7502
|
||||
<84af> <84af> 7494
|
||||
<84b0> <84b0> 7530
|
||||
<84b1> <84b1> 7522
|
||||
<84b2> <84b2> 7538
|
||||
<84b3> <84b3> 7514
|
||||
<84b4> <84b4> 7554
|
||||
<84b5> <84b5> 7526
|
||||
<84b6> <84b6> 7519
|
||||
<84b7> <84b7> 7534
|
||||
<84b8> <84b8> 7511
|
||||
<84b9> <84b9> 7545
|
||||
<84ba> <84ba> 7527
|
||||
<84bb> <84bb> 7516
|
||||
<84bc> <84bc> 7535
|
||||
<84bd> <84bd> 7508
|
||||
<84be> <84be> 7542
|
||||
<875f> <8760> 7940
|
||||
<8761> <8761> 8329
|
||||
<8762> <8762> 7943
|
||||
<8763> <8763> 8339
|
||||
<8764> <8764> 7945
|
||||
<8765> <8765> 8338
|
||||
<8766> <8767> 7947
|
||||
<8768> <8768> 8344
|
||||
<8769> <876a> 7950
|
||||
<876b> <876b> 8348
|
||||
<876c> <876d> 7953
|
||||
<876e> <876e> 8349
|
||||
<8780> <8781> 7956
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,257 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (90msp-RKSJ-H)
|
||||
%%Title: (90msp-RKSJ-H Adobe Japan1 2)
|
||||
%%Version: 11.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 2 def
|
||||
end def
|
||||
|
||||
/CMapName /90msp-RKSJ-H def
|
||||
/CMapVersion 11.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25445] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
4 begincodespacerange
|
||||
<00> <80>
|
||||
<8140> <9FFC>
|
||||
<A0> <DF>
|
||||
<E040> <FCFC>
|
||||
endcodespacerange
|
||||
|
||||
1 beginnotdefrange
|
||||
<00> <1f> 1
|
||||
endnotdefrange
|
||||
|
||||
100 begincidrange
|
||||
<20> <7e> 1
|
||||
<8140> <817e> 633
|
||||
<8180> <81ac> 696
|
||||
<81b8> <81bf> 741
|
||||
<81c8> <81ce> 749
|
||||
<81da> <81e8> 756
|
||||
<81f0> <81f7> 771
|
||||
<81fc> <81fc> 779
|
||||
<824f> <8258> 780
|
||||
<8260> <8279> 790
|
||||
<8281> <829a> 816
|
||||
<829f> <82f1> 842
|
||||
<8340> <837e> 925
|
||||
<8380> <8396> 988
|
||||
<839f> <83b6> 1011
|
||||
<83bf> <83d6> 1035
|
||||
<8440> <8460> 1059
|
||||
<8470> <847e> 1092
|
||||
<8480> <8491> 1107
|
||||
<849f> <849f> 7479
|
||||
<84a0> <84a0> 7481
|
||||
<84a1> <84a1> 7491
|
||||
<84a2> <84a2> 7495
|
||||
<84a3> <84a3> 7503
|
||||
<84a4> <84a4> 7499
|
||||
<84a5> <84a5> 7507
|
||||
<84a6> <84a6> 7523
|
||||
<84a7> <84a7> 7515
|
||||
<84a8> <84a8> 7531
|
||||
<84a9> <84a9> 7539
|
||||
<84aa> <84aa> 7480
|
||||
<84ab> <84ab> 7482
|
||||
<84ac> <84ac> 7494
|
||||
<84ad> <84ad> 7498
|
||||
<84ae> <84ae> 7506
|
||||
<84af> <84af> 7502
|
||||
<84b0> <84b0> 7514
|
||||
<84b1> <84b1> 7530
|
||||
<84b2> <84b2> 7522
|
||||
<84b3> <84b3> 7538
|
||||
<84b4> <84b4> 7554
|
||||
<84b5> <84b5> 7511
|
||||
<84b6> <84b6> 7526
|
||||
<84b7> <84b7> 7519
|
||||
<84b8> <84b8> 7534
|
||||
<84b9> <84b9> 7542
|
||||
<84ba> <84ba> 7508
|
||||
<84bb> <84bb> 7527
|
||||
<84bc> <84bc> 7516
|
||||
<84bd> <84bd> 7535
|
||||
<84be> <84be> 7545
|
||||
<8740> <875d> 7555
|
||||
<875f> <8760> 7585
|
||||
<8761> <8761> 8038
|
||||
<8762> <8762> 7588
|
||||
<8763> <8763> 8040
|
||||
<8764> <8764> 7590
|
||||
<8765> <8765> 8042
|
||||
<8766> <8767> 7592
|
||||
<8768> <8768> 8044
|
||||
<8769> <876a> 7595
|
||||
<876b> <876b> 8043
|
||||
<876c> <876d> 7598
|
||||
<876e> <876e> 8047
|
||||
<876f> <8775> 7601
|
||||
<877e> <877e> 8323
|
||||
<8780> <8783> 7608
|
||||
<8784> <8784> 8055
|
||||
<8785> <878f> 7613
|
||||
<8790> <8790> 762
|
||||
<8791> <8791> 761
|
||||
<8792> <8792> 769
|
||||
<8793> <8799> 7624
|
||||
<879a> <879a> 768
|
||||
<879b> <879c> 7631
|
||||
<889f> <88fc> 1125
|
||||
<8940> <897e> 1219
|
||||
<8980> <89fc> 1282
|
||||
<8a40> <8a7e> 1407
|
||||
<8a80> <8afc> 1470
|
||||
<8b40> <8b7e> 1595
|
||||
<8b80> <8bfc> 1658
|
||||
<8c40> <8c7e> 1783
|
||||
<8c80> <8cfc> 1846
|
||||
<8d40> <8d7e> 1971
|
||||
<8d80> <8dfc> 2034
|
||||
<8e40> <8e7e> 2159
|
||||
<8e80> <8efc> 2222
|
||||
<8f40> <8f7e> 2347
|
||||
<8f80> <8ffc> 2410
|
||||
<9040> <907e> 2535
|
||||
<9080> <90fc> 2598
|
||||
<9140> <917e> 2723
|
||||
<9180> <91fc> 2786
|
||||
<9240> <927e> 2911
|
||||
<9280> <92fc> 2974
|
||||
<9340> <937e> 3099
|
||||
<9380> <93fc> 3162
|
||||
<9440> <947e> 3287
|
||||
<9480> <94fc> 3350
|
||||
endcidrange
|
||||
|
||||
70 begincidrange
|
||||
<9540> <957e> 3475
|
||||
<9580> <95fc> 3538
|
||||
<9640> <967e> 3663
|
||||
<9680> <96fc> 3726
|
||||
<9740> <977e> 3851
|
||||
<9780> <97fc> 3914
|
||||
<9840> <9872> 4039
|
||||
<989f> <98fc> 4090
|
||||
<9940> <997e> 4184
|
||||
<9980> <99fc> 4247
|
||||
<9a40> <9a7e> 4372
|
||||
<9a80> <9afc> 4435
|
||||
<9b40> <9b7e> 4560
|
||||
<9b80> <9bfc> 4623
|
||||
<9c40> <9c7e> 4748
|
||||
<9c80> <9cfc> 4811
|
||||
<9d40> <9d7e> 4936
|
||||
<9d80> <9dfc> 4999
|
||||
<9e40> <9e7e> 5124
|
||||
<9e80> <9efc> 5187
|
||||
<9f40> <9f7e> 5312
|
||||
<9f80> <9ffc> 5375
|
||||
<a0> <df> 326
|
||||
<e040> <e07e> 5500
|
||||
<e080> <e0fc> 5563
|
||||
<e140> <e17e> 5688
|
||||
<e180> <e1fc> 5751
|
||||
<e240> <e27e> 5876
|
||||
<e280> <e2fc> 5939
|
||||
<e340> <e37e> 6064
|
||||
<e380> <e3fc> 6127
|
||||
<e440> <e47e> 6252
|
||||
<e480> <e4fc> 6315
|
||||
<e540> <e57e> 6440
|
||||
<e580> <e5fc> 6503
|
||||
<e640> <e67e> 6628
|
||||
<e680> <e6fc> 6691
|
||||
<e740> <e77e> 6816
|
||||
<e780> <e7fc> 6879
|
||||
<e840> <e87e> 7004
|
||||
<e880> <e8fc> 7067
|
||||
<e940> <e97e> 7192
|
||||
<e980> <e9fc> 7255
|
||||
<ea40> <ea7e> 7380
|
||||
<ea80> <eaa2> 7443
|
||||
<eaa3> <eaa4> 8284
|
||||
<ed40> <ed7e> 8359
|
||||
<ed80> <edb3> 8422
|
||||
<edb4> <edb4> 1993
|
||||
<edb5> <edfc> 8474
|
||||
<ee40> <ee7e> 8546
|
||||
<ee80> <eeec> 8609
|
||||
<eeef> <eef8> 8092
|
||||
<eef9> <eef9> 751
|
||||
<eefa> <eefc> 8005
|
||||
<fa40> <fa49> 8092
|
||||
<fa4a> <fa53> 7575
|
||||
<fa54> <fa54> 751
|
||||
<fa55> <fa57> 8005
|
||||
<fa58> <fa58> 7618
|
||||
<fa59> <fa59> 7610
|
||||
<fa5a> <fa5a> 8055
|
||||
<fa5b> <fa5b> 768
|
||||
<fa5c> <fa7e> 8359
|
||||
<fa80> <facf> 8394
|
||||
<fad0> <fad0> 1993
|
||||
<fad1> <fafc> 8474
|
||||
<fb40> <fb7e> 8518
|
||||
<fb80> <fbfc> 8581
|
||||
<fc40> <fc4b> 8706
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (90msp-RKSJ-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (90msp-RKSJ-H)
|
||||
%%BeginResource: CMap (90msp-RKSJ-V)
|
||||
%%Title: (90msp-RKSJ-V Adobe Japan1 2)
|
||||
%%Version: 11.003
|
||||
%%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
|
||||
|
||||
/90msp-RKSJ-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 2 def
|
||||
end def
|
||||
|
||||
/CMapName /90msp-RKSJ-V def
|
||||
/CMapVersion 11.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25446] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
78 begincidrange
|
||||
<8141> <8142> 7887
|
||||
<8143> <8143> 8268
|
||||
<8144> <8144> 8274
|
||||
<8150> <8151> 7889
|
||||
<815b> <815d> 7891
|
||||
<8160> <8164> 7894
|
||||
<8169> <817a> 7899
|
||||
<8181> <8181> 7917
|
||||
<81a8> <81a8> 739
|
||||
<81a9> <81a9> 738
|
||||
<81aa> <81ab> 736
|
||||
<81ac> <81ac> 8270
|
||||
<829f> <829f> 7918
|
||||
<82a1> <82a1> 7919
|
||||
<82a3> <82a3> 7920
|
||||
<82a5> <82a5> 7921
|
||||
<82a7> <82a7> 7922
|
||||
<82c1> <82c1> 7923
|
||||
<82e1> <82e1> 7924
|
||||
<82e3> <82e3> 7925
|
||||
<82e5> <82e5> 7926
|
||||
<82ec> <82ec> 7927
|
||||
<8340> <8340> 7928
|
||||
<8342> <8342> 7929
|
||||
<8344> <8344> 7930
|
||||
<8346> <8346> 7931
|
||||
<8348> <8348> 7932
|
||||
<8362> <8362> 7933
|
||||
<8383> <8383> 7934
|
||||
<8385> <8385> 7935
|
||||
<8387> <8387> 7936
|
||||
<838e> <838e> 7937
|
||||
<8395> <8396> 7938
|
||||
<849f> <849f> 7481
|
||||
<84a0> <84a0> 7479
|
||||
<84a1> <84a1> 7495
|
||||
<84a2> <84a2> 7503
|
||||
<84a3> <84a3> 7499
|
||||
<84a4> <84a4> 7491
|
||||
<84a5> <84a5> 7523
|
||||
<84a6> <84a6> 7515
|
||||
<84a7> <84a7> 7531
|
||||
<84a8> <84a8> 7507
|
||||
<84a9> <84a9> 7539
|
||||
<84aa> <84aa> 7482
|
||||
<84ab> <84ab> 7480
|
||||
<84ac> <84ac> 7498
|
||||
<84ad> <84ad> 7506
|
||||
<84ae> <84ae> 7502
|
||||
<84af> <84af> 7494
|
||||
<84b0> <84b0> 7530
|
||||
<84b1> <84b1> 7522
|
||||
<84b2> <84b2> 7538
|
||||
<84b3> <84b3> 7514
|
||||
<84b4> <84b4> 7554
|
||||
<84b5> <84b5> 7526
|
||||
<84b6> <84b6> 7519
|
||||
<84b7> <84b7> 7534
|
||||
<84b8> <84b8> 7511
|
||||
<84b9> <84b9> 7545
|
||||
<84ba> <84ba> 7527
|
||||
<84bb> <84bb> 7516
|
||||
<84bc> <84bc> 7535
|
||||
<84bd> <84bd> 7508
|
||||
<84be> <84be> 7542
|
||||
<875f> <8760> 7940
|
||||
<8761> <8761> 8329
|
||||
<8762> <8762> 7943
|
||||
<8763> <8763> 8339
|
||||
<8764> <8764> 7945
|
||||
<8765> <8765> 8338
|
||||
<8766> <8767> 7947
|
||||
<8768> <8768> 8344
|
||||
<8769> <876a> 7950
|
||||
<876b> <876b> 8348
|
||||
<876c> <876d> 7953
|
||||
<876e> <876e> 8349
|
||||
<8780> <8781> 7956
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,355 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (90pv-RKSJ-H)
|
||||
%%Title: (90pv-RKSJ-H Adobe Japan1 1)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 1 def
|
||||
end def
|
||||
|
||||
/CMapName /90pv-RKSJ-H def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 870 def
|
||||
/XUID [1 10 25341] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
5 begincodespacerange
|
||||
<00> <80>
|
||||
<8140> <9FFC>
|
||||
<A0> <DF>
|
||||
<E040> <FCFC>
|
||||
<FD> <FF>
|
||||
endcodespacerange
|
||||
|
||||
1 beginnotdefrange
|
||||
<00> <1f> 1
|
||||
endnotdefrange
|
||||
|
||||
100 begincidrange
|
||||
<20> <7e> 1
|
||||
<80> <80> 97
|
||||
<8140> <817e> 633
|
||||
<8180> <81ac> 696
|
||||
<81b8> <81bf> 741
|
||||
<81c8> <81ce> 749
|
||||
<81da> <81e8> 756
|
||||
<81f0> <81f7> 771
|
||||
<81fc> <81fc> 779
|
||||
<824f> <8258> 780
|
||||
<8260> <8279> 790
|
||||
<8281> <829a> 816
|
||||
<829f> <82f1> 842
|
||||
<8340> <837e> 925
|
||||
<8380> <8396> 988
|
||||
<839f> <83b6> 1011
|
||||
<83bf> <83d6> 1035
|
||||
<8440> <8460> 1059
|
||||
<8470> <847e> 1092
|
||||
<8480> <8491> 1107
|
||||
<849f> <849f> 7479
|
||||
<84a0> <84a0> 7481
|
||||
<84a1> <84a1> 7491
|
||||
<84a2> <84a2> 7495
|
||||
<84a3> <84a3> 7503
|
||||
<84a4> <84a4> 7499
|
||||
<84a5> <84a5> 7507
|
||||
<84a6> <84a6> 7523
|
||||
<84a7> <84a7> 7515
|
||||
<84a8> <84a8> 7531
|
||||
<84a9> <84a9> 7539
|
||||
<84aa> <84aa> 7480
|
||||
<84ab> <84ab> 7482
|
||||
<84ac> <84ac> 7494
|
||||
<84ad> <84ad> 7498
|
||||
<84ae> <84ae> 7506
|
||||
<84af> <84af> 7502
|
||||
<84b0> <84b0> 7514
|
||||
<84b1> <84b1> 7530
|
||||
<84b2> <84b2> 7522
|
||||
<84b3> <84b3> 7538
|
||||
<84b4> <84b4> 7554
|
||||
<84b5> <84b5> 7511
|
||||
<84b6> <84b6> 7526
|
||||
<84b7> <84b7> 7519
|
||||
<84b8> <84b8> 7534
|
||||
<84b9> <84b9> 7542
|
||||
<84ba> <84ba> 7508
|
||||
<84bb> <84bb> 7527
|
||||
<84bc> <84bc> 7516
|
||||
<84bd> <84bd> 7535
|
||||
<84be> <84be> 7545
|
||||
<8540> <8553> 7555
|
||||
<855e> <8571> 8071
|
||||
<857c> <857e> 8286
|
||||
<8580> <8585> 8289
|
||||
<8591> <859a> 8061
|
||||
<859f> <85a8> 7575
|
||||
<85a9> <85aa> 8225
|
||||
<85ab> <85ad> 8295
|
||||
<85b3> <85bc> 8092
|
||||
<85bd> <85c1> 8298
|
||||
<85db> <85f4> 8112
|
||||
<8640> <8640> 7601
|
||||
<8641> <8641> 8186
|
||||
<8642> <8642> 7602
|
||||
<8643> <8643> 8020
|
||||
<8644> <8644> 8022
|
||||
<8645> <8645> 8303
|
||||
<8646> <8646> 7607
|
||||
<8647> <8647> 8023
|
||||
<8648> <8648> 7603
|
||||
<8649> <8649> 8021
|
||||
<864a> <864a> 7604
|
||||
<864b> <864b> 8304
|
||||
<864c> <864d> 7605
|
||||
<864e> <864e> 8037
|
||||
<864f> <8655> 8024
|
||||
<8656> <8656> 8305
|
||||
<8657> <8657> 8036
|
||||
<8658> <8659> 8034
|
||||
<865a> <865c> 8031
|
||||
<865d> <865d> 8306
|
||||
<869b> <869d> 7610
|
||||
<869e> <869e> 8307
|
||||
<869f> <869f> 8018
|
||||
<86a0> <86a1> 8016
|
||||
<86a2> <86a2> 8019
|
||||
<86a3> <86a3> 8211
|
||||
<86a4> <86a4> 8213
|
||||
<86a5> <86a5> 8212
|
||||
<86a6> <86a6> 8214
|
||||
<86b3> <86b3> 8058
|
||||
<86b4> <86b4> 8056
|
||||
<86b5> <86b5> 8308
|
||||
<86c7> <86ca> 8219
|
||||
<86cb> <86ce> 8309
|
||||
<86cf> <86cf> 8014
|
||||
<86d0> <86d0> 8013
|
||||
<86d1> <86d1> 8012
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<86d2> <86d2> 8011
|
||||
<86d3> <86d6> 8206
|
||||
<8740> <8746> 8197
|
||||
<8747> <8747> 8150
|
||||
<8748> <8748> 8204
|
||||
<8749> <8749> 8145
|
||||
<874a> <874a> 8138
|
||||
<874b> <874b> 7620
|
||||
<874c> <874c> 8151
|
||||
<874d> <874d> 7618
|
||||
<874e> <874e> 8146
|
||||
<874f> <874f> 8141
|
||||
<8750> <8750> 7619
|
||||
<8751> <8751> 8149
|
||||
<8752> <8752> 8147
|
||||
<8753> <8753> 8143
|
||||
<8754> <8754> 8148
|
||||
<8755> <8755> 8144
|
||||
<8756> <8757> 8139
|
||||
<8758> <8758> 8142
|
||||
<8791> <8792> 8317
|
||||
<8793> <8797> 7613
|
||||
<8798> <8798> 8154
|
||||
<8799> <8799> 8165
|
||||
<879a> <879a> 8319
|
||||
<879b> <879b> 8158
|
||||
<879c> <879c> 8191
|
||||
<879d> <879d> 8320
|
||||
<879e> <879e> 8223
|
||||
<879f> <879f> 7585
|
||||
<87a0> <87a0> 8038
|
||||
<87a1> <87a1> 7588
|
||||
<87a2> <87a2> 7586
|
||||
<87a3> <87a3> 8039
|
||||
<87a4> <87a4> 8183
|
||||
<87a5> <87a6> 8327
|
||||
<87a7> <87a7> 8042
|
||||
<87a8> <87a8> 7592
|
||||
<87a9> <87aa> 8040
|
||||
<87ab> <87ab> 7590
|
||||
<87ac> <87ac> 7593
|
||||
<87ad> <87ad> 7599
|
||||
<87ae> <87ae> 8046
|
||||
<87af> <87af> 8044
|
||||
<87b0> <87b0> 7595
|
||||
<87b1> <87b1> 8045
|
||||
<87b2> <87b2> 8043
|
||||
<87b3> <87b3> 7596
|
||||
<87b4> <87b4> 8047
|
||||
<87b5> <87b5> 7598
|
||||
<87bd> <87bd> 8048
|
||||
<87be> <87bf> 8051
|
||||
<87c0> <87c1> 8049
|
||||
<87e5> <87e7> 7621
|
||||
<87e8> <87e8> 8323
|
||||
<87fa> <87fa> 8054
|
||||
<87fb> <87fc> 8321
|
||||
<8840> <8840> 7624
|
||||
<8841> <8842> 7629
|
||||
<8854> <8855> 7608
|
||||
<8868> <8868> 7958
|
||||
<886a> <886d> 8313
|
||||
<889f> <88fc> 1125
|
||||
<8940> <897e> 1219
|
||||
<8980> <89fc> 1282
|
||||
<8a40> <8a7e> 1407
|
||||
<8a80> <8afc> 1470
|
||||
<8b40> <8b7e> 1595
|
||||
<8b80> <8bfc> 1658
|
||||
<8c40> <8c7e> 1783
|
||||
<8c80> <8cfc> 1846
|
||||
<8d40> <8d7e> 1971
|
||||
<8d80> <8dfc> 2034
|
||||
<8e40> <8e7e> 2159
|
||||
<8e80> <8efc> 2222
|
||||
<8f40> <8f7e> 2347
|
||||
<8f80> <8ffc> 2410
|
||||
<9040> <907e> 2535
|
||||
<9080> <90fc> 2598
|
||||
<9140> <917e> 2723
|
||||
<9180> <91fc> 2786
|
||||
<9240> <927e> 2911
|
||||
<9280> <92fc> 2974
|
||||
<9340> <937e> 3099
|
||||
<9380> <93fc> 3162
|
||||
<9440> <947e> 3287
|
||||
<9480> <94fc> 3350
|
||||
<9540> <957e> 3475
|
||||
<9580> <95fc> 3538
|
||||
<9640> <967e> 3663
|
||||
<9680> <96fc> 3726
|
||||
<9740> <977e> 3851
|
||||
<9780> <97fc> 3914
|
||||
<9840> <9872> 4039
|
||||
<989f> <98fc> 4090
|
||||
<9940> <997e> 4184
|
||||
<9980> <99fc> 4247
|
||||
<9a40> <9a7e> 4372
|
||||
<9a80> <9afc> 4435
|
||||
<9b40> <9b7e> 4560
|
||||
endcidrange
|
||||
|
||||
63 begincidrange
|
||||
<9b80> <9bfc> 4623
|
||||
<9c40> <9c7e> 4748
|
||||
<9c80> <9cfc> 4811
|
||||
<9d40> <9d7e> 4936
|
||||
<9d80> <9dfc> 4999
|
||||
<9e40> <9e7e> 5124
|
||||
<9e80> <9efc> 5187
|
||||
<9f40> <9f7e> 5312
|
||||
<9f80> <9ffc> 5375
|
||||
<a0> <df> 326
|
||||
<e040> <e07e> 5500
|
||||
<e080> <e0fc> 5563
|
||||
<e140> <e17e> 5688
|
||||
<e180> <e1fc> 5751
|
||||
<e240> <e27e> 5876
|
||||
<e280> <e2fc> 5939
|
||||
<e340> <e37e> 6064
|
||||
<e380> <e3fc> 6127
|
||||
<e440> <e47e> 6252
|
||||
<e480> <e4fc> 6315
|
||||
<e540> <e57e> 6440
|
||||
<e580> <e5fc> 6503
|
||||
<e640> <e67e> 6628
|
||||
<e680> <e6fc> 6691
|
||||
<e740> <e77e> 6816
|
||||
<e780> <e7fc> 6879
|
||||
<e840> <e87e> 7004
|
||||
<e880> <e8fc> 7067
|
||||
<e940> <e97e> 7192
|
||||
<e980> <e9fc> 7255
|
||||
<ea40> <ea7e> 7380
|
||||
<ea80> <eaa2> 7443
|
||||
<eaa3> <eaa4> 8284
|
||||
<eb41> <eb42> 7887
|
||||
<eb50> <eb51> 7889
|
||||
<eb5b> <eb5d> 7891
|
||||
<eb60> <eb64> 7894
|
||||
<eb69> <eb7a> 7899
|
||||
<eb81> <eb81> 7917
|
||||
<ec9f> <ec9f> 7918
|
||||
<eca1> <eca1> 7919
|
||||
<eca3> <eca3> 7920
|
||||
<eca5> <eca5> 7921
|
||||
<eca7> <eca7> 7922
|
||||
<ecc1> <ecc1> 7923
|
||||
<ece1> <ece1> 7924
|
||||
<ece3> <ece3> 7925
|
||||
<ece5> <ece5> 7926
|
||||
<ecec> <ecec> 7927
|
||||
<ed40> <ed40> 7928
|
||||
<ed42> <ed42> 7929
|
||||
<ed44> <ed44> 7930
|
||||
<ed46> <ed46> 7931
|
||||
<ed48> <ed48> 7932
|
||||
<ed62> <ed62> 7933
|
||||
<ed83> <ed83> 7934
|
||||
<ed85> <ed85> 7935
|
||||
<ed87> <ed87> 7936
|
||||
<ed8e> <ed8e> 7937
|
||||
<ed95> <ed96> 7938
|
||||
<fd> <fd> 152
|
||||
<fe> <fe> 228
|
||||
<ff> <ff> 124
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,129 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (90pv-RKSJ-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (90pv-RKSJ-H)
|
||||
%%BeginResource: CMap (90pv-RKSJ-V)
|
||||
%%Title: (90pv-RKSJ-V Adobe Japan1 1)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/90pv-RKSJ-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 1 def
|
||||
end def
|
||||
|
||||
/CMapName /90pv-RKSJ-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 940 def
|
||||
/XUID [1 10 25342] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
51 begincidrange
|
||||
<8141> <8142> 7887
|
||||
<8150> <8151> 7889
|
||||
<815b> <815d> 7891
|
||||
<8160> <8164> 7894
|
||||
<8169> <817a> 7899
|
||||
<8181> <8181> 7917
|
||||
<829f> <829f> 7918
|
||||
<82a1> <82a1> 7919
|
||||
<82a3> <82a3> 7920
|
||||
<82a5> <82a5> 7921
|
||||
<82a7> <82a7> 7922
|
||||
<82c1> <82c1> 7923
|
||||
<82e1> <82e1> 7924
|
||||
<82e3> <82e3> 7925
|
||||
<82e5> <82e5> 7926
|
||||
<82ec> <82ec> 7927
|
||||
<8340> <8340> 7928
|
||||
<8342> <8342> 7929
|
||||
<8344> <8344> 7930
|
||||
<8346> <8346> 7931
|
||||
<8348> <8348> 7932
|
||||
<8362> <8362> 7933
|
||||
<8383> <8383> 7934
|
||||
<8385> <8385> 7935
|
||||
<8387> <8387> 7936
|
||||
<838e> <838e> 7937
|
||||
<8395> <8396> 7938
|
||||
<879f> <879f> 7940
|
||||
<87a0> <87a0> 8329
|
||||
<87a1> <87a1> 7943
|
||||
<87a2> <87a2> 7941
|
||||
<87a3> <87a3> 8330
|
||||
<87a4> <87a5> 8333
|
||||
<87a6> <87a7> 8337
|
||||
<87a8> <87a8> 7947
|
||||
<87a9> <87aa> 8339
|
||||
<87ab> <87ab> 7945
|
||||
<87ac> <87ac> 7948
|
||||
<87ad> <87ad> 7954
|
||||
<87ae> <87af> 8343
|
||||
<87b0> <87b0> 7950
|
||||
<87b1> <87b2> 8347
|
||||
<87b3> <87b3> 7951
|
||||
<87b4> <87b4> 8349
|
||||
<87b5> <87b5> 7953
|
||||
<87bd> <87bd> 8350
|
||||
<87be> <87be> 8353
|
||||
<87bf> <87bf> 8356
|
||||
<87c0> <87c0> 8358
|
||||
<87c1> <87c1> 8357
|
||||
<87fa> <87fc> 8324
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,738 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Add-RKSJ-H)
|
||||
%%Title: (Add-RKSJ-H Adobe Japan1 1)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 1 def
|
||||
end def
|
||||
|
||||
/CMapName /Add-RKSJ-H def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 140 def
|
||||
/XUID [1 10 25326] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
4 begincodespacerange
|
||||
<00> <80>
|
||||
<8140> <9FFC>
|
||||
<A0> <DF>
|
||||
<E040> <FCFC>
|
||||
endcodespacerange
|
||||
|
||||
1 beginnotdefrange
|
||||
<00> <1f> 231
|
||||
endnotdefrange
|
||||
|
||||
100 begincidrange
|
||||
<20> <7e> 231
|
||||
<8140> <817e> 633
|
||||
<8180> <81ac> 696
|
||||
<81b8> <81bf> 741
|
||||
<81c8> <81ce> 749
|
||||
<81da> <81e8> 756
|
||||
<81f0> <81f7> 771
|
||||
<81fc> <81fc> 779
|
||||
<824f> <8258> 780
|
||||
<8260> <8279> 790
|
||||
<8281> <829a> 816
|
||||
<829f> <82f1> 842
|
||||
<82f2> <82f4> 7958
|
||||
<8340> <837e> 925
|
||||
<8380> <8396> 988
|
||||
<839f> <83b6> 1011
|
||||
<83bf> <83d6> 1035
|
||||
<8440> <8460> 1059
|
||||
<8470> <847e> 1092
|
||||
<8480> <8491> 1107
|
||||
<849f> <849f> 7479
|
||||
<84a0> <84a0> 7481
|
||||
<84a1> <84a1> 7491
|
||||
<84a2> <84a2> 7495
|
||||
<84a3> <84a3> 7503
|
||||
<84a4> <84a4> 7499
|
||||
<84a5> <84a5> 7507
|
||||
<84a6> <84a6> 7523
|
||||
<84a7> <84a7> 7515
|
||||
<84a8> <84a8> 7531
|
||||
<84a9> <84a9> 7539
|
||||
<84aa> <84aa> 7480
|
||||
<84ab> <84ab> 7482
|
||||
<84ac> <84ac> 7494
|
||||
<84ad> <84ad> 7498
|
||||
<84ae> <84ae> 7506
|
||||
<84af> <84af> 7502
|
||||
<84b0> <84b0> 7514
|
||||
<84b1> <84b1> 7530
|
||||
<84b2> <84b2> 7522
|
||||
<84b3> <84b3> 7538
|
||||
<84b4> <84b4> 7554
|
||||
<84b5> <84b5> 7511
|
||||
<84b6> <84b6> 7526
|
||||
<84b7> <84b7> 7519
|
||||
<84b8> <84b8> 7534
|
||||
<84b9> <84b9> 7542
|
||||
<84ba> <84ba> 7508
|
||||
<84bb> <84bb> 7527
|
||||
<84bc> <84bc> 7516
|
||||
<84bd> <84bd> 7535
|
||||
<84be> <84be> 7545
|
||||
<889f> <889f> 1125
|
||||
<88a0> <88a0> 7633
|
||||
<88a1> <88af> 1127
|
||||
<88b0> <88b0> 7961
|
||||
<88b1> <88b8> 1143
|
||||
<88b9> <88b9> 7634
|
||||
<88ba> <88eb> 1152
|
||||
<88ec> <88ec> 7635
|
||||
<88ed> <88ee> 1203
|
||||
<88ef> <88ef> 7962
|
||||
<88f0> <88f0> 1206
|
||||
<88f1> <88f1> 7636
|
||||
<88f2> <88f9> 1208
|
||||
<88fa> <88fa> 7637
|
||||
<88fb> <88fc> 1217
|
||||
<8940> <8948> 1219
|
||||
<8949> <8949> 7638
|
||||
<894a> <8951> 1229
|
||||
<8952> <8952> 7963
|
||||
<8953> <8953> 1238
|
||||
<8954> <8954> 7639
|
||||
<8955> <8957> 1240
|
||||
<8958> <8958> 7964
|
||||
<8959> <895b> 1244
|
||||
<895c> <895c> 7642
|
||||
<895d> <8960> 1248
|
||||
<8961> <8961> 7643
|
||||
<8962> <897e> 1253
|
||||
<8980> <898a> 1282
|
||||
<898b> <898b> 7644
|
||||
<898c> <89a5> 1294
|
||||
<89a6> <89a6> 7645
|
||||
<89a7> <89a7> 1321
|
||||
<89a8> <89a8> 7646
|
||||
<89a9> <89dd> 1323
|
||||
<89de> <89de> 7647
|
||||
<89df> <89e4> 1377
|
||||
<89e5> <89e5> 7965
|
||||
<89e6> <89f7> 1384
|
||||
<89f8> <89f8> 7648
|
||||
<89f9> <89fc> 1403
|
||||
<8a40> <8a40> 1407
|
||||
<8a41> <8a41> 7650
|
||||
<8a42> <8a7e> 1409
|
||||
<8a80> <8a8a> 1470
|
||||
<8a8b> <8a8b> 7652
|
||||
<8a8c> <8a92> 1482
|
||||
<8a93> <8a93> 7653
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<8a94> <8a99> 1490
|
||||
<8a9a> <8a9a> 7654
|
||||
<8a9b> <8abf> 1497
|
||||
<8ac0> <8ac0> 7655
|
||||
<8ac1> <8aca> 1535
|
||||
<8acb> <8acb> 7656
|
||||
<8acc> <8ae2> 1546
|
||||
<8ae3> <8ae3> 7657
|
||||
<8ae4> <8afc> 1570
|
||||
<8b40> <8b49> 1595
|
||||
<8b4a> <8b4a> 7658
|
||||
<8b4b> <8b5e> 1606
|
||||
<8b5f> <8b5f> 7659
|
||||
<8b60> <8b7e> 1627
|
||||
<8b80> <8b81> 1658
|
||||
<8b82> <8b82> 7966
|
||||
<8b83> <8b87> 1661
|
||||
<8b88> <8b88> 7967
|
||||
<8b89> <8b9f> 1667
|
||||
<8ba0> <8ba0> 7660
|
||||
<8ba1> <8ba7> 1691
|
||||
<8ba8> <8ba8> 7661
|
||||
<8ba9> <8bbf> 1699
|
||||
<8bc0> <8bc0> 7968
|
||||
<8bc1> <8bcc> 1723
|
||||
<8bcd> <8bcd> 7662
|
||||
<8bce> <8bea> 1736
|
||||
<8beb> <8beb> 7663
|
||||
<8bec> <8bf1> 1766
|
||||
<8bf2> <8bf2> 7664
|
||||
<8bf3> <8bf8> 1773
|
||||
<8bf9> <8bf9> 7665
|
||||
<8bfa> <8bfa> 1780
|
||||
<8bfb> <8bfb> 7666
|
||||
<8bfc> <8bfc> 1782
|
||||
<8c40> <8c55> 1783
|
||||
<8c56> <8c56> 7668
|
||||
<8c57> <8c70> 1806
|
||||
<8c71> <8c71> 7671
|
||||
<8c72> <8c7e> 1833
|
||||
<8c80> <8c90> 1846
|
||||
<8c91> <8c91> 7674
|
||||
<8c92> <8c9c> 1864
|
||||
<8c9d> <8c9d> 7969
|
||||
<8c9e> <8c9e> 7676
|
||||
<8c9f> <8cb1> 1877
|
||||
<8cb2> <8cb2> 7677
|
||||
<8cb3> <8cbe> 1897
|
||||
<8cbf> <8cbf> 7678
|
||||
<8cc0> <8cfc> 1910
|
||||
<8d40> <8d49> 1971
|
||||
<8d4a> <8d4a> 7679
|
||||
<8d4b> <8d7e> 1982
|
||||
<8d80> <8d8c> 2034
|
||||
<8d8d> <8d8d> 7682
|
||||
<8d8e> <8d93> 2048
|
||||
<8d94> <8d94> 7683
|
||||
<8d95> <8d98> 2055
|
||||
<8d99> <8d99> 7684
|
||||
<8d9a> <8dd0> 2060
|
||||
<8dd1> <8dd1> 7685
|
||||
<8dd2> <8de4> 2116
|
||||
<8de5> <8de5> 7686
|
||||
<8de6> <8df1> 2136
|
||||
<8df2> <8df2> 7687
|
||||
<8df3> <8dfc> 2149
|
||||
<8e40> <8e45> 2159
|
||||
<8e46> <8e46> 7688
|
||||
<8e47> <8e48> 2166
|
||||
<8e49> <8e49> 7689
|
||||
<8e4a> <8e4a> 2169
|
||||
<8e4b> <8e4b> 7690
|
||||
<8e4c> <8e57> 2171
|
||||
<8e58> <8e58> 7691
|
||||
<8e59> <8e5f> 2184
|
||||
<8e60> <8e60> 7970
|
||||
<8e61> <8e7e> 2192
|
||||
<8e80> <8ec5> 2222
|
||||
<8ec6> <8ec6> 7693
|
||||
<8ec7> <8eda> 2293
|
||||
<8edb> <8edc> 7695
|
||||
<8edd> <8efc> 2315
|
||||
<8f40> <8f49> 2347
|
||||
<8f4a> <8f4a> 7697
|
||||
<8f4b> <8f54> 2358
|
||||
<8f55> <8f55> 7698
|
||||
<8f56> <8f7e> 2369
|
||||
<8f80> <8f8b> 2410
|
||||
<8f8c> <8f8c> 7699
|
||||
<8f8d> <8f91> 2423
|
||||
<8f92> <8f93> 7701
|
||||
<8f94> <8fa2> 2430
|
||||
<8fa3> <8fa3> 7703
|
||||
<8fa4> <8fb0> 2446
|
||||
<8fb1> <8fb1> 7704
|
||||
<8fb2> <8fd2> 2460
|
||||
<8fd3> <8fd3> 7706
|
||||
<8fd4> <8fdc> 2494
|
||||
<8fdd> <8fdd> 7707
|
||||
<8fde> <8fe1> 2504
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<8fe2> <8fe2> 7708
|
||||
<8fe3> <8ffc> 2509
|
||||
<9040> <9048> 2535
|
||||
<9049> <9049> 7709
|
||||
<904a> <9077> 2545
|
||||
<9078> <9078> 7971
|
||||
<9079> <907e> 2592
|
||||
<9080> <9080> 7711
|
||||
<9081> <909f> 2599
|
||||
<90a0> <90a0> 7713
|
||||
<90a1> <90e3> 2631
|
||||
<90e4> <90e4> 7715
|
||||
<90e5> <90ee> 2699
|
||||
<90ef> <90ef> 7716
|
||||
<90f0> <90f6> 2710
|
||||
<90f7> <90f7> 7718
|
||||
<90f8> <90f8> 7972
|
||||
<90f9> <90f9> 2719
|
||||
<90fa> <90fb> 7973
|
||||
<90fc> <90fc> 2722
|
||||
<9140> <9145> 2723
|
||||
<9146> <9146> 7720
|
||||
<9147> <9157> 2730
|
||||
<9158> <9158> 7721
|
||||
<9159> <916a> 2748
|
||||
<916b> <916b> 7722
|
||||
<916c> <916d> 2767
|
||||
<916e> <916e> 7723
|
||||
<916f> <917d> 2770
|
||||
<917e> <917e> 7724
|
||||
<9180> <9188> 2786
|
||||
<9189> <9189> 7725
|
||||
<918a> <91b4> 2796
|
||||
<91b5> <91b5> 7975
|
||||
<91b6> <91ba> 2840
|
||||
<91bb> <91bb> 7726
|
||||
<91bc> <91ca> 2846
|
||||
<91cb> <91cb> 7727
|
||||
<91cc> <91d9> 2862
|
||||
<91da> <91da> 7728
|
||||
<91db> <91e0> 2877
|
||||
<91e1> <91e1> 7729
|
||||
<91e2> <91ec> 2884
|
||||
<91ed> <91ed> 7730
|
||||
<91ee> <91fa> 2896
|
||||
<91fb> <91fb> 7733
|
||||
<91fc> <91fc> 2910
|
||||
<9240> <9245> 2911
|
||||
<9246> <9246> 7734
|
||||
<9247> <9247> 2918
|
||||
<9248> <9248> 7735
|
||||
<9249> <924b> 2920
|
||||
<924c> <924d> 7737
|
||||
<924e> <925b> 2925
|
||||
<925c> <925c> 7739
|
||||
<925d> <927e> 2940
|
||||
<9280> <928f> 2974
|
||||
<9290> <9290> 7740
|
||||
<9291> <9294> 2991
|
||||
<9295> <9295> 7741
|
||||
<9296> <929b> 2996
|
||||
<929c> <929c> 7742
|
||||
<929d> <92ba> 3003
|
||||
<92bb> <92bb> 7743
|
||||
<92bc> <92c5> 3034
|
||||
<92c6> <92c6> 7744
|
||||
<92c7> <92c7> 3045
|
||||
<92c8> <92c8> 7745
|
||||
<92c9> <92cc> 3047
|
||||
<92cd> <92cd> 7747
|
||||
<92ce> <92fc> 3052
|
||||
<9340> <9340> 3099
|
||||
<9341> <9341> 7748
|
||||
<9342> <9345> 3101
|
||||
<9346> <9346> 7749
|
||||
<9347> <934c> 3106
|
||||
<934d> <934d> 7750
|
||||
<934e> <9354> 3113
|
||||
<9355> <9355> 7751
|
||||
<9356> <935d> 3121
|
||||
<935e> <935e> 7752
|
||||
<935f> <9366> 3130
|
||||
<9367> <9367> 7753
|
||||
<9368> <9369> 3139
|
||||
<936a> <936a> 7754
|
||||
<936b> <936f> 3142
|
||||
<9370> <9370> 7976
|
||||
<9371> <9371> 7756
|
||||
<9372> <937e> 3149
|
||||
<9380> <9383> 3162
|
||||
<9384> <9384> 7757
|
||||
<9385> <9397> 3167
|
||||
<9398> <9398> 7758
|
||||
<9399> <93bf> 3187
|
||||
<93c0> <93c0> 7760
|
||||
<93c1> <93d1> 3227
|
||||
<93d2> <93d2> 7761
|
||||
<93d3> <93d8> 3245
|
||||
<93d9> <93d9> 7763
|
||||
<93da> <93e3> 3252
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<93e4> <93e5> 7766
|
||||
<93e6> <93e7> 3264
|
||||
<93e8> <93e8> 7768
|
||||
<93e9> <93f3> 3267
|
||||
<93f4> <93f4> 7872
|
||||
<93f5> <93fc> 3279
|
||||
<9440> <9447> 3287
|
||||
<9448> <9448> 7769
|
||||
<9449> <9449> 7977
|
||||
<944a> <9457> 3297
|
||||
<9458> <9458> 7770
|
||||
<9459> <9475> 3312
|
||||
<9476> <9476> 7771
|
||||
<9477> <947e> 3342
|
||||
<9480> <9486> 3350
|
||||
<9487> <9487> 7772
|
||||
<9488> <9488> 3358
|
||||
<9489> <9489> 7773
|
||||
<948a> <948c> 3360
|
||||
<948d> <948d> 7774
|
||||
<948e> <94a1> 3364
|
||||
<94a2> <94a2> 7775
|
||||
<94a3> <94ab> 3385
|
||||
<94ac> <94ac> 7776
|
||||
<94ad> <94ad> 3395
|
||||
<94ae> <94ae> 7777
|
||||
<94af> <94bd> 3397
|
||||
<94be> <94be> 7978
|
||||
<94bf> <94d1> 3413
|
||||
<94d2> <94d2> 7778
|
||||
<94d3> <94f2> 3433
|
||||
<94f3> <94f3> 7780
|
||||
<94f4> <94fc> 3466
|
||||
<9540> <9540> 3475
|
||||
<9541> <9542> 7781
|
||||
<9543> <954d> 3478
|
||||
<954e> <954e> 7783
|
||||
<954f> <9550> 3490
|
||||
<9551> <9551> 7784
|
||||
<9552> <9553> 3493
|
||||
<9554> <9554> 7785
|
||||
<9555> <955e> 3496
|
||||
<955f> <955f> 7786
|
||||
<9560> <956c> 3507
|
||||
<956d> <956d> 7787
|
||||
<956e> <957e> 3521
|
||||
<9580> <95c0> 3538
|
||||
<95c1> <95c1> 7789
|
||||
<95c2> <95ca> 3604
|
||||
<95cb> <95cb> 7790
|
||||
<95cc> <95d0> 3614
|
||||
<95d1> <95d1> 7979
|
||||
<95d2> <95d7> 3620
|
||||
<95d8> <95d8> 7791
|
||||
<95d9> <95f6> 3627
|
||||
<95f7> <95f7> 7792
|
||||
<95f8> <95fc> 3658
|
||||
<9640> <9647> 3663
|
||||
<9648> <9648> 7794
|
||||
<9649> <9669> 3672
|
||||
<966a> <966a> 7795
|
||||
<966b> <967e> 3706
|
||||
<9680> <968f> 3726
|
||||
<9690> <9690> 7796
|
||||
<9691> <9697> 3743
|
||||
<9698> <9698> 7980
|
||||
<9699> <96ca> 3751
|
||||
<96cb> <96cb> 7797
|
||||
<96cc> <96d6> 3802
|
||||
<96d7> <96d7> 7798
|
||||
<96d8> <96dc> 3814
|
||||
<96dd> <96dd> 7799
|
||||
<96de> <96df> 3820
|
||||
<96e0> <96e0> 7800
|
||||
<96e1> <96f7> 3823
|
||||
<96f8> <96f8> 7801
|
||||
<96f9> <96f9> 3847
|
||||
<96fa> <96fa> 7802
|
||||
<96fb> <96fc> 3849
|
||||
<9740> <9750> 3851
|
||||
<9751> <9751> 7804
|
||||
<9752> <976e> 3869
|
||||
<976f> <976f> 7805
|
||||
<9770> <9772> 3899
|
||||
<9773> <9773> 7806
|
||||
<9774> <977e> 3903
|
||||
<9780> <9788> 3914
|
||||
<9789> <9789> 7807
|
||||
<978a> <97f7> 3924
|
||||
<97f8> <97f9> 7809
|
||||
<97fa> <97fa> 7981
|
||||
<97fb> <97fc> 4037
|
||||
<9840> <9840> 7811
|
||||
<9841> <984f> 4040
|
||||
<9850> <9850> 7812
|
||||
<9851> <9857> 4056
|
||||
<9858> <9858> 7813
|
||||
<9859> <9872> 4064
|
||||
<989f> <98fc> 4090
|
||||
<9940> <9940> 4184
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<9941> <9941> 7982
|
||||
<9942> <995b> 4186
|
||||
<995c> <995c> 7814
|
||||
<995d> <996b> 4213
|
||||
<996c> <996c> 7817
|
||||
<996d> <997e> 4229
|
||||
<9980> <99b5> 4247
|
||||
<99b6> <99b6> 7983
|
||||
<99b7> <99fc> 4302
|
||||
<9a40> <9a4e> 4372
|
||||
<9a4f> <9a4f> 7818
|
||||
<9a50> <9a58> 4388
|
||||
<9a59> <9a59> 7819
|
||||
<9a5a> <9a66> 4398
|
||||
<9a67> <9a67> 7984
|
||||
<9a68> <9a7c> 4412
|
||||
<9a7d> <9a7d> 7821
|
||||
<9a7e> <9a7e> 4434
|
||||
<9a80> <9a8a> 4435
|
||||
<9a8b> <9a8b> 7822
|
||||
<9a8c> <9a8c> 7985
|
||||
<9a8d> <9ac1> 4448
|
||||
<9ac2> <9ac2> 7823
|
||||
<9ac3> <9ac3> 7986
|
||||
<9ac4> <9ae9> 4503
|
||||
<9aea> <9aea> 7987
|
||||
<9aeb> <9afc> 4542
|
||||
<9b40> <9b5b> 4560
|
||||
<9b5c> <9b5c> 7824
|
||||
<9b5d> <9b7e> 4589
|
||||
<9b80> <9b82> 4623
|
||||
<9b83> <9b83> 7825
|
||||
<9b84> <9b97> 4627
|
||||
<9b98> <9b98> 7988
|
||||
<9b99> <9b9f> 4648
|
||||
<9ba0> <9ba0> 7826
|
||||
<9ba1> <9bfa> 4656
|
||||
<9bfb> <9bfc> 7989
|
||||
<9c40> <9c7e> 4748
|
||||
<9c80> <9ca1> 4811
|
||||
<9ca2> <9ca2> 7828
|
||||
<9ca3> <9cfc> 4846
|
||||
<9d40> <9d46> 4936
|
||||
<9d47> <9d47> 7991
|
||||
<9d48> <9d7e> 4944
|
||||
<9d80> <9d80> 7829
|
||||
<9d81> <9d8b> 5000
|
||||
<9d8c> <9d8c> 7830
|
||||
<9d8d> <9db6> 5012
|
||||
<9db7> <9db7> 7831
|
||||
<9db8> <9df7> 5055
|
||||
<9df8> <9df8> 7992
|
||||
<9df9> <9dfc> 5120
|
||||
<9e40> <9e63> 5124
|
||||
<9e64> <9e64> 7833
|
||||
<9e65> <9e7e> 5161
|
||||
<9e80> <9e8a> 5187
|
||||
<9e8b> <9e8b> 7835
|
||||
<9e8c> <9efc> 5199
|
||||
<9f40> <9f7e> 5312
|
||||
<9f80> <9f80> 5375
|
||||
<9f81> <9f81> 7993
|
||||
<9f82> <9fcd> 5377
|
||||
<9fce> <9fce> 7837
|
||||
<9fcf> <9fd3> 5454
|
||||
<9fd4> <9fd4> 7994
|
||||
<9fd5> <9ff3> 5460
|
||||
<9ff4> <9ff4> 7995
|
||||
<9ff5> <9ffc> 5492
|
||||
<a0> <df> 326
|
||||
<e040> <e07e> 5500
|
||||
<e080> <e092> 5563
|
||||
<e093> <e093> 7838
|
||||
<e094> <e0a3> 5583
|
||||
<e0a4> <e0a4> 7839
|
||||
<e0a5> <e0dc> 5600
|
||||
<e0dd> <e0dd> 7840
|
||||
<e0de> <e0fc> 5657
|
||||
<e140> <e149> 5688
|
||||
<e14a> <e14a> 7841
|
||||
<e14b> <e17e> 5699
|
||||
<e180> <e1ec> 5751
|
||||
<e1ed> <e1ed> 7845
|
||||
<e1ee> <e1fc> 5861
|
||||
<e240> <e268> 5876
|
||||
<e269> <e269> 7846
|
||||
<e26a> <e272> 5918
|
||||
<e273> <e273> 7847
|
||||
<e274> <e277> 5928
|
||||
<e278> <e278> 7996
|
||||
<e279> <e27e> 5933
|
||||
<e280> <e2b6> 5939
|
||||
<e2b7> <e2b7> 7848
|
||||
<e2b8> <e2bd> 5995
|
||||
<e2be> <e2be> 7997
|
||||
<e2bf> <e2e1> 6002
|
||||
<e2e2> <e2e2> 7849
|
||||
<e2e3> <e2eb> 6038
|
||||
<e2ec> <e2ec> 7850
|
||||
<e2ed> <e2fc> 6048
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<e340> <e357> 6064
|
||||
<e358> <e358> 7851
|
||||
<e359> <e359> 6089
|
||||
<e35a> <e35a> 7852
|
||||
<e35b> <e364> 6091
|
||||
<e365> <e365> 7853
|
||||
<e366> <e37e> 6102
|
||||
<e380> <e3c6> 6127
|
||||
<e3c7> <e3c7> 7998
|
||||
<e3c8> <e3fc> 6199
|
||||
<e440> <e47e> 6252
|
||||
<e480> <e483> 6315
|
||||
<e484> <e484> 7855
|
||||
<e485> <e488> 6320
|
||||
<e489> <e489> 7856
|
||||
<e48a> <e491> 6325
|
||||
<e492> <e492> 7857
|
||||
<e493> <e4b8> 6334
|
||||
<e4b9> <e4b9> 7859
|
||||
<e4ba> <e4ca> 6373
|
||||
<e4cb> <e4cb> 7999
|
||||
<e4cc> <e4fc> 6391
|
||||
<e540> <e57e> 6440
|
||||
<e580> <e59d> 6503
|
||||
<e59e> <e59e> 8000
|
||||
<e59f> <e5b9> 6534
|
||||
<e5ba> <e5bb> 8001
|
||||
<e5bc> <e5ec> 6563
|
||||
<e5ed> <e5ed> 7864
|
||||
<e5ee> <e5fc> 6613
|
||||
<e640> <e650> 6628
|
||||
<e651> <e651> 7865
|
||||
<e652> <e67e> 6646
|
||||
<e680> <e685> 6691
|
||||
<e686> <e686> 7866
|
||||
<e687> <e6e6> 6698
|
||||
<e6e7> <e6e7> 7868
|
||||
<e6e8> <e6fc> 6795
|
||||
<e740> <e76c> 6816
|
||||
<e76d> <e76d> 7870
|
||||
<e76e> <e77e> 6862
|
||||
<e780> <e7a6> 6879
|
||||
<e7a7> <e7a7> 7873
|
||||
<e7a8> <e7ba> 6919
|
||||
<e7bb> <e7bb> 7874
|
||||
<e7bc> <e7fc> 6939
|
||||
<e840> <e87e> 7004
|
||||
<e880> <e8ce> 7067
|
||||
<e8cf> <e8cf> 7879
|
||||
<e8d0> <e8fc> 7147
|
||||
<e940> <e977> 7192
|
||||
<e978> <e978> 8003
|
||||
<e979> <e97e> 7249
|
||||
<e980> <e9aa> 7255
|
||||
<e9ab> <e9ab> 7882
|
||||
<e9ac> <e9b9> 7299
|
||||
<e9ba> <e9ba> 7883
|
||||
<e9bb> <e9cb> 7314
|
||||
<e9cc> <e9cc> 7884
|
||||
<e9cd> <e9fc> 7332
|
||||
<ea40> <ea6f> 7380
|
||||
<ea70> <ea70> 7885
|
||||
<ea71> <ea71> 8004
|
||||
<ea72> <ea7e> 7430
|
||||
<ea80> <ea9c> 7443
|
||||
<ea9d> <ea9d> 7886
|
||||
<ea9e> <eaa2> 7473
|
||||
<eaa3> <eaa4> 8284
|
||||
<ec40> <ec42> 8005
|
||||
<ec46> <ec46> 8008
|
||||
<ec47> <ec47> 768
|
||||
<ec48> <ec48> 762
|
||||
<ec49> <ec49> 761
|
||||
<ec4d> <ec57> 8009
|
||||
<ec5b> <ec5d> 7601
|
||||
<ec5e> <ec5e> 8020
|
||||
<ec5f> <ec5f> 7607
|
||||
<ec60> <ec62> 8021
|
||||
<ec63> <ec65> 7604
|
||||
<ec66> <ec6f> 8024
|
||||
<ec70> <ec70> 771
|
||||
<ec71> <ec71> 8034
|
||||
<ec72> <ec72> 772
|
||||
<ec73> <ec74> 8035
|
||||
<ec76> <ec76> 8037
|
||||
<ec78> <ec78> 7588
|
||||
<ec79> <ec79> 7585
|
||||
<ec7a> <ec7a> 8038
|
||||
<ec7b> <ec7b> 7586
|
||||
<ec7c> <ec7e> 8039
|
||||
<ec80> <ec80> 7590
|
||||
<ec81> <ec81> 8042
|
||||
<ec82> <ec82> 7592
|
||||
<ec83> <ec83> 7596
|
||||
<ec84> <ec84> 8043
|
||||
<ec85> <ec85> 7598
|
||||
<ec86> <ec86> 7595
|
||||
<ec87> <ec88> 8044
|
||||
<ec89> <ec89> 7599
|
||||
<ec8a> <ec90> 8046
|
||||
endcidrange
|
||||
|
||||
35 begincidrange
|
||||
<ec94> <ec99> 8053
|
||||
<ec9a> <ec9a> 7610
|
||||
<ec9b> <ec9b> 8059
|
||||
<ec9e> <ec9e> 8060
|
||||
<eca7> <ecb0> 8061
|
||||
<ecb2> <ecc5> 8071
|
||||
<ecc7> <ecda> 7555
|
||||
<ecdb> <ecdb> 8091
|
||||
<ecdc> <ece5> 7575
|
||||
<ece9> <ecfc> 8092
|
||||
<ed40> <ed59> 8112
|
||||
<ed64> <ed64> 7958
|
||||
<ed68> <ed69> 8138
|
||||
<ed6a> <ed6a> 7620
|
||||
<ed6b> <ed6d> 8140
|
||||
<ed6e> <ed6e> 7619
|
||||
<ed6f> <ed73> 8143
|
||||
<ed74> <ed74> 7618
|
||||
<ed75> <ed78> 8148
|
||||
<ed7c> <ed7e> 8152
|
||||
<ed80> <ed8a> 8155
|
||||
<ed8f> <ed9e> 8166
|
||||
<ef40> <ef41> 7887
|
||||
<ef42> <ef42> 8268
|
||||
<ef43> <ef43> 8274
|
||||
<ef44> <ef4d> 7889
|
||||
<ef4e> <ef4e> 8282
|
||||
<ef4f> <ef4f> 8275
|
||||
<ef50> <ef50> 8280
|
||||
<ef51> <ef51> 8277
|
||||
<ef52> <ef63> 7899
|
||||
<ef64> <ef79> 7918
|
||||
<ef7a> <ef7b> 8264
|
||||
<ef8d> <ef90> 736
|
||||
<ef91> <ef94> 8182
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,135 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (Add-RKSJ-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (Add-RKSJ-H)
|
||||
%%BeginResource: CMap (Add-RKSJ-V)
|
||||
%%Title: (Add-RKSJ-V Adobe Japan1 1)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/Add-RKSJ-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 1 def
|
||||
end def
|
||||
|
||||
/CMapName /Add-RKSJ-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 780 def
|
||||
/XUID [1 10 25327] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
57 begincidrange
|
||||
<8141> <8142> 7887
|
||||
<8143> <8143> 8268
|
||||
<8144> <8144> 8274
|
||||
<8150> <8151> 7889
|
||||
<815b> <815d> 7891
|
||||
<8160> <8164> 7894
|
||||
<8165> <8165> 8282
|
||||
<8166> <8166> 8275
|
||||
<8167> <8167> 8280
|
||||
<8168> <8168> 8277
|
||||
<8169> <817a> 7899
|
||||
<829f> <829f> 7918
|
||||
<82a1> <82a1> 7919
|
||||
<82a3> <82a3> 7920
|
||||
<82a5> <82a5> 7921
|
||||
<82a7> <82a7> 7922
|
||||
<82c1> <82c1> 7923
|
||||
<82e1> <82e1> 7924
|
||||
<82e3> <82e3> 7925
|
||||
<82e5> <82e5> 7926
|
||||
<82ec> <82ec> 7927
|
||||
<82f3> <82f4> 8264
|
||||
<8340> <8340> 7928
|
||||
<8342> <8342> 7929
|
||||
<8344> <8344> 7930
|
||||
<8346> <8346> 7931
|
||||
<8348> <8348> 7932
|
||||
<8362> <8362> 7933
|
||||
<8383> <8383> 7934
|
||||
<8385> <8385> 7935
|
||||
<8387> <8387> 7936
|
||||
<838e> <838e> 7937
|
||||
<8395> <8396> 7938
|
||||
<ec78> <ec78> 7943
|
||||
<ec79> <ec79> 7940
|
||||
<ec7a> <ec7a> 8329
|
||||
<ec7b> <ec7b> 7941
|
||||
<ec7c> <ec7c> 8330
|
||||
<ec7d> <ec7e> 8339
|
||||
<ec80> <ec80> 7945
|
||||
<ec81> <ec81> 8338
|
||||
<ec82> <ec82> 7947
|
||||
<ec83> <ec83> 7951
|
||||
<ec84> <ec84> 8348
|
||||
<ec85> <ec85> 7953
|
||||
<ec86> <ec86> 7950
|
||||
<ec87> <ec87> 8344
|
||||
<ec88> <ec88> 8347
|
||||
<ec89> <ec89> 7954
|
||||
<ec8a> <ec8a> 8343
|
||||
<ec8b> <ec8c> 8349
|
||||
<ec8d> <ec8d> 8358
|
||||
<ec8e> <ec8e> 8357
|
||||
<ec8f> <ec8f> 8353
|
||||
<ec90> <ec90> 8356
|
||||
<ec95> <ec95> 8324
|
||||
<ef92> <ef92> 8333
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,136 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-CNS1-0 def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 960 def
|
||||
/XUID [1 10 25394] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 14099 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <37FF>
|
||||
endcodespacerange
|
||||
|
||||
56 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <3712> 14080
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,147 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe CNS1 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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 1 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-CNS1-1 def
|
||||
/CMapVersion 1.002 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25590] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 17408 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <43FF>
|
||||
endcodespacerange
|
||||
|
||||
68 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,148 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe CNS1 2)
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 2 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-CNS1-2 def
|
||||
/CMapVersion 1.002 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25586] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 17601 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <44FF>
|
||||
endcodespacerange
|
||||
|
||||
69 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
<4400> <44c0> 17408
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,153 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe CNS1 3)
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 3 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-CNS1-3 def
|
||||
/CMapVersion 1.002 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25587] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 18846 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <49FF>
|
||||
endcodespacerange
|
||||
|
||||
74 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
<4400> <44ff> 17408
|
||||
<4500> <45ff> 17664
|
||||
<4600> <46ff> 17920
|
||||
<4700> <47ff> 18176
|
||||
<4800> <48ff> 18432
|
||||
<4900> <499d> 18688
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,154 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe CNS1 4)
|
||||
%%Version: 1.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 4 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-CNS1-4 def
|
||||
/CMapVersion 1.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25595] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 18965 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <4AFF>
|
||||
endcodespacerange
|
||||
|
||||
75 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
<4400> <44ff> 17408
|
||||
<4500> <45ff> 17664
|
||||
<4600> <46ff> 17920
|
||||
<4700> <47ff> 18176
|
||||
<4800> <48ff> 18432
|
||||
<4900> <49ff> 18688
|
||||
<4a00> <4a14> 18944
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,154 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe CNS1 5)
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 5 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-CNS1-5 def
|
||||
/CMapVersion 1.002 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25598] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 19088 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <4AFF>
|
||||
endcodespacerange
|
||||
|
||||
75 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
<4400> <44ff> 17408
|
||||
<4500> <45ff> 17664
|
||||
<4600> <46ff> 17920
|
||||
<4700> <47ff> 18176
|
||||
<4800> <48ff> 18432
|
||||
<4900> <49ff> 18688
|
||||
<4a00> <4a8f> 18944
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,154 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe CNS1 6)
|
||||
%%Version: 1.000
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 6 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-CNS1-6 def
|
||||
/CMapVersion 1.000 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25599] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 19156 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <4AFF>
|
||||
endcodespacerange
|
||||
|
||||
75 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
<4400> <44ff> 17408
|
||||
<4500> <45ff> 17664
|
||||
<4600> <46ff> 17920
|
||||
<4700> <47ff> 18176
|
||||
<4800> <48ff> 18432
|
||||
<4900> <49ff> 18688
|
||||
<4a00> <4ad3> 18944
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,111 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe GB1 0)
|
||||
%%Version: 9.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (GB1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-GB1-0 def
|
||||
/CMapVersion 9.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 330 def
|
||||
/XUID [1 10 25368] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 7717 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <1EFF>
|
||||
endcodespacerange
|
||||
|
||||
31 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1e24> 7680
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe GB1 1)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (GB1) def
|
||||
/Supplement 1 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-GB1-1 def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 710 def
|
||||
/XUID [1 10 25453] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 9897 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <26FF>
|
||||
endcodespacerange
|
||||
|
||||
39 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26a8> 9728
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,167 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe GB1 2)
|
||||
%%Version: 11.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (GB1) def
|
||||
/Supplement 2 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-GB1-2 def
|
||||
/CMapVersion 11.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 750 def
|
||||
/XUID [1 10 25454] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 22127 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <56FF>
|
||||
endcodespacerange
|
||||
|
||||
87 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
<4400> <44ff> 17408
|
||||
<4500> <45ff> 17664
|
||||
<4600> <46ff> 17920
|
||||
<4700> <47ff> 18176
|
||||
<4800> <48ff> 18432
|
||||
<4900> <49ff> 18688
|
||||
<4a00> <4aff> 18944
|
||||
<4b00> <4bff> 19200
|
||||
<4c00> <4cff> 19456
|
||||
<4d00> <4dff> 19712
|
||||
<4e00> <4eff> 19968
|
||||
<4f00> <4fff> 20224
|
||||
<5000> <50ff> 20480
|
||||
<5100> <51ff> 20736
|
||||
<5200> <52ff> 20992
|
||||
<5300> <53ff> 21248
|
||||
<5400> <54ff> 21504
|
||||
<5500> <55ff> 21760
|
||||
<5600> <566e> 22016
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,167 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe GB1 3)
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (GB1) def
|
||||
/Supplement 3 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-GB1-3 def
|
||||
/CMapVersion 1.002 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25457] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 22353 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <57FF>
|
||||
endcodespacerange
|
||||
|
||||
88 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
<4400> <44ff> 17408
|
||||
<4500> <45ff> 17664
|
||||
<4600> <46ff> 17920
|
||||
<4700> <47ff> 18176
|
||||
<4800> <48ff> 18432
|
||||
<4900> <49ff> 18688
|
||||
<4a00> <4aff> 18944
|
||||
<4b00> <4bff> 19200
|
||||
<4c00> <4cff> 19456
|
||||
<4d00> <4dff> 19712
|
||||
<4e00> <4eff> 19968
|
||||
<4f00> <4fff> 20224
|
||||
<5000> <50ff> 20480
|
||||
<5100> <51ff> 20736
|
||||
<5200> <52ff> 20992
|
||||
<5300> <53ff> 21248
|
||||
<5400> <54ff> 21504
|
||||
<5500> <55ff> 21760
|
||||
<5600> <56ff> 22016
|
||||
<5700> <5750> 22272
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,197 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe GB1 4)
|
||||
%%Version: 1.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (GB1) def
|
||||
/Supplement 4 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-GB1-4 def
|
||||
/CMapVersion 1.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25458] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 29064 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <71FF>
|
||||
endcodespacerange
|
||||
|
||||
100 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
<4400> <44ff> 17408
|
||||
<4500> <45ff> 17664
|
||||
<4600> <46ff> 17920
|
||||
<4700> <47ff> 18176
|
||||
<4800> <48ff> 18432
|
||||
<4900> <49ff> 18688
|
||||
<4a00> <4aff> 18944
|
||||
<4b00> <4bff> 19200
|
||||
<4c00> <4cff> 19456
|
||||
<4d00> <4dff> 19712
|
||||
<4e00> <4eff> 19968
|
||||
<4f00> <4fff> 20224
|
||||
<5000> <50ff> 20480
|
||||
<5100> <51ff> 20736
|
||||
<5200> <52ff> 20992
|
||||
<5300> <53ff> 21248
|
||||
<5400> <54ff> 21504
|
||||
<5500> <55ff> 21760
|
||||
<5600> <56ff> 22016
|
||||
<5700> <57ff> 22272
|
||||
<5800> <58ff> 22528
|
||||
<5900> <59ff> 22784
|
||||
<5a00> <5aff> 23040
|
||||
<5b00> <5bff> 23296
|
||||
<5c00> <5cff> 23552
|
||||
<5d00> <5dff> 23808
|
||||
<5e00> <5eff> 24064
|
||||
<5f00> <5fff> 24320
|
||||
<6000> <60ff> 24576
|
||||
<6100> <61ff> 24832
|
||||
<6200> <62ff> 25088
|
||||
<6300> <63ff> 25344
|
||||
endcidrange
|
||||
|
||||
14 begincidrange
|
||||
<6400> <64ff> 25600
|
||||
<6500> <65ff> 25856
|
||||
<6600> <66ff> 26112
|
||||
<6700> <67ff> 26368
|
||||
<6800> <68ff> 26624
|
||||
<6900> <69ff> 26880
|
||||
<6a00> <6aff> 27136
|
||||
<6b00> <6bff> 27392
|
||||
<6c00> <6cff> 27648
|
||||
<6d00> <6dff> 27904
|
||||
<6e00> <6eff> 28160
|
||||
<6f00> <6fff> 28416
|
||||
<7000> <70ff> 28672
|
||||
<7100> <7187> 28928
|
||||
endcidrange
|
||||
endcmap
|
||||
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,202 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe GB1 5)
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (GB1) def
|
||||
/Supplement 5 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-GB1-5 def
|
||||
/CMapVersion 1.002 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25605] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 30284 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <76FF>
|
||||
endcodespacerange
|
||||
|
||||
100 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
<4400> <44ff> 17408
|
||||
<4500> <45ff> 17664
|
||||
<4600> <46ff> 17920
|
||||
<4700> <47ff> 18176
|
||||
<4800> <48ff> 18432
|
||||
<4900> <49ff> 18688
|
||||
<4a00> <4aff> 18944
|
||||
<4b00> <4bff> 19200
|
||||
<4c00> <4cff> 19456
|
||||
<4d00> <4dff> 19712
|
||||
<4e00> <4eff> 19968
|
||||
<4f00> <4fff> 20224
|
||||
<5000> <50ff> 20480
|
||||
<5100> <51ff> 20736
|
||||
<5200> <52ff> 20992
|
||||
<5300> <53ff> 21248
|
||||
<5400> <54ff> 21504
|
||||
<5500> <55ff> 21760
|
||||
<5600> <56ff> 22016
|
||||
<5700> <57ff> 22272
|
||||
<5800> <58ff> 22528
|
||||
<5900> <59ff> 22784
|
||||
<5a00> <5aff> 23040
|
||||
<5b00> <5bff> 23296
|
||||
<5c00> <5cff> 23552
|
||||
<5d00> <5dff> 23808
|
||||
<5e00> <5eff> 24064
|
||||
<5f00> <5fff> 24320
|
||||
<6000> <60ff> 24576
|
||||
<6100> <61ff> 24832
|
||||
<6200> <62ff> 25088
|
||||
<6300> <63ff> 25344
|
||||
endcidrange
|
||||
|
||||
19 begincidrange
|
||||
<6400> <64ff> 25600
|
||||
<6500> <65ff> 25856
|
||||
<6600> <66ff> 26112
|
||||
<6700> <67ff> 26368
|
||||
<6800> <68ff> 26624
|
||||
<6900> <69ff> 26880
|
||||
<6a00> <6aff> 27136
|
||||
<6b00> <6bff> 27392
|
||||
<6c00> <6cff> 27648
|
||||
<6d00> <6dff> 27904
|
||||
<6e00> <6eff> 28160
|
||||
<6f00> <6fff> 28416
|
||||
<7000> <70ff> 28672
|
||||
<7100> <71ff> 28928
|
||||
<7200> <72ff> 29184
|
||||
<7300> <73ff> 29440
|
||||
<7400> <74ff> 29696
|
||||
<7500> <75ff> 29952
|
||||
<7600> <764b> 30208
|
||||
endcidrange
|
||||
endcmap
|
||||
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,113 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe Japan1 0)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-Japan1-0 def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 480 def
|
||||
/XUID [1 10 25358] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 8284 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <20FF>
|
||||
endcodespacerange
|
||||
|
||||
33 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <205b> 8192
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,113 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe Japan1 1)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 1 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-Japan1-1 def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 1030 def
|
||||
/XUID [1 10 25530] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 8359 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <20FF>
|
||||
endcodespacerange
|
||||
|
||||
33 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20a6> 8192
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,115 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe Japan1 2)
|
||||
%%Version: 11.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 2 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-Japan1-2 def
|
||||
/CMapVersion 11.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 1065 def
|
||||
/XUID [1 10 25531] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 8720 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <22FF>
|
||||
endcodespacerange
|
||||
|
||||
35 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <220f> 8704
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe Japan1 3)
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 3 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-Japan1-3 def
|
||||
/CMapVersion 1.002 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25534] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 9354 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <24FF>
|
||||
endcodespacerange
|
||||
|
||||
37 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <2489> 9216
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,140 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe Japan1 4)
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 4 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-Japan1-4 def
|
||||
/CMapVersion 1.002 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25537] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 15444 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <3CFF>
|
||||
endcodespacerange
|
||||
|
||||
61 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3c53> 15360
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,159 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe Japan1 5)
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 5 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-Japan1-5 def
|
||||
/CMapVersion 1.002 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25613] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 20317 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <4FFF>
|
||||
endcodespacerange
|
||||
|
||||
80 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
<4400> <44ff> 17408
|
||||
<4500> <45ff> 17664
|
||||
<4600> <46ff> 17920
|
||||
<4700> <47ff> 18176
|
||||
<4800> <48ff> 18432
|
||||
<4900> <49ff> 18688
|
||||
<4a00> <4aff> 18944
|
||||
<4b00> <4bff> 19200
|
||||
<4c00> <4cff> 19456
|
||||
<4d00> <4dff> 19712
|
||||
<4e00> <4eff> 19968
|
||||
<4f00> <4f5c> 20224
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,170 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe Japan1 6)
|
||||
%%Version: 1.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 6 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-Japan1-6 def
|
||||
/CMapVersion 1.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25614] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 23058 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <5AFF>
|
||||
endcodespacerange
|
||||
|
||||
91 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
<4400> <44ff> 17408
|
||||
<4500> <45ff> 17664
|
||||
<4600> <46ff> 17920
|
||||
<4700> <47ff> 18176
|
||||
<4800> <48ff> 18432
|
||||
<4900> <49ff> 18688
|
||||
<4a00> <4aff> 18944
|
||||
<4b00> <4bff> 19200
|
||||
<4c00> <4cff> 19456
|
||||
<4d00> <4dff> 19712
|
||||
<4e00> <4eff> 19968
|
||||
<4f00> <4fff> 20224
|
||||
<5000> <50ff> 20480
|
||||
<5100> <51ff> 20736
|
||||
<5200> <52ff> 20992
|
||||
<5300> <53ff> 21248
|
||||
<5400> <54ff> 21504
|
||||
<5500> <55ff> 21760
|
||||
<5600> <56ff> 22016
|
||||
<5700> <57ff> 22272
|
||||
<5800> <58ff> 22528
|
||||
<5900> <59ff> 22784
|
||||
<5a00> <5a11> 23040
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,104 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe Japan2 0)
|
||||
%%Version: 9.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan2) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-Japan2-0 def
|
||||
/CMapVersion 9.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 220 def
|
||||
/XUID [1 10 25426] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 6068 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <17FF>
|
||||
endcodespacerange
|
||||
|
||||
24 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17b3> 5888
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe Korea1 0)
|
||||
%%Version: 9.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Korea1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-Korea1-0 def
|
||||
/CMapVersion 9.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25408] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 9333 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <24FF>
|
||||
endcodespacerange
|
||||
|
||||
37 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <2474> 9216
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,151 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe Korea1 1)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Korea1) def
|
||||
/Supplement 1 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-Korea1-1 def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 330 def
|
||||
/XUID [1 10 25418] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 18155 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <46FF>
|
||||
endcodespacerange
|
||||
|
||||
71 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
<4400> <44ff> 17408
|
||||
<4500> <45ff> 17664
|
||||
<4600> <46ea> 17920
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,151 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (Identity)
|
||||
%%Title: (Identity Adobe Korea1 2)
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Korea1) def
|
||||
/Supplement 2 def
|
||||
end def
|
||||
|
||||
/CMapName /Adobe-Korea1-2 def
|
||||
/CMapVersion 1.002 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25541] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
/CIDCount 18352 def
|
||||
|
||||
1 begincodespacerange
|
||||
<0000> <47FF>
|
||||
endcodespacerange
|
||||
|
||||
72 begincidrange
|
||||
<0000> <00ff> 0
|
||||
<0100> <01ff> 256
|
||||
<0200> <02ff> 512
|
||||
<0300> <03ff> 768
|
||||
<0400> <04ff> 1024
|
||||
<0500> <05ff> 1280
|
||||
<0600> <06ff> 1536
|
||||
<0700> <07ff> 1792
|
||||
<0800> <08ff> 2048
|
||||
<0900> <09ff> 2304
|
||||
<0a00> <0aff> 2560
|
||||
<0b00> <0bff> 2816
|
||||
<0c00> <0cff> 3072
|
||||
<0d00> <0dff> 3328
|
||||
<0e00> <0eff> 3584
|
||||
<0f00> <0fff> 3840
|
||||
<1000> <10ff> 4096
|
||||
<1100> <11ff> 4352
|
||||
<1200> <12ff> 4608
|
||||
<1300> <13ff> 4864
|
||||
<1400> <14ff> 5120
|
||||
<1500> <15ff> 5376
|
||||
<1600> <16ff> 5632
|
||||
<1700> <17ff> 5888
|
||||
<1800> <18ff> 6144
|
||||
<1900> <19ff> 6400
|
||||
<1a00> <1aff> 6656
|
||||
<1b00> <1bff> 6912
|
||||
<1c00> <1cff> 7168
|
||||
<1d00> <1dff> 7424
|
||||
<1e00> <1eff> 7680
|
||||
<1f00> <1fff> 7936
|
||||
<2000> <20ff> 8192
|
||||
<2100> <21ff> 8448
|
||||
<2200> <22ff> 8704
|
||||
<2300> <23ff> 8960
|
||||
<2400> <24ff> 9216
|
||||
<2500> <25ff> 9472
|
||||
<2600> <26ff> 9728
|
||||
<2700> <27ff> 9984
|
||||
<2800> <28ff> 10240
|
||||
<2900> <29ff> 10496
|
||||
<2a00> <2aff> 10752
|
||||
<2b00> <2bff> 11008
|
||||
<2c00> <2cff> 11264
|
||||
<2d00> <2dff> 11520
|
||||
<2e00> <2eff> 11776
|
||||
<2f00> <2fff> 12032
|
||||
<3000> <30ff> 12288
|
||||
<3100> <31ff> 12544
|
||||
<3200> <32ff> 12800
|
||||
<3300> <33ff> 13056
|
||||
<3400> <34ff> 13312
|
||||
<3500> <35ff> 13568
|
||||
<3600> <36ff> 13824
|
||||
<3700> <37ff> 14080
|
||||
<3800> <38ff> 14336
|
||||
<3900> <39ff> 14592
|
||||
<3a00> <3aff> 14848
|
||||
<3b00> <3bff> 15104
|
||||
<3c00> <3cff> 15360
|
||||
<3d00> <3dff> 15616
|
||||
<3e00> <3eff> 15872
|
||||
<3f00> <3fff> 16128
|
||||
<4000> <40ff> 16384
|
||||
<4100> <41ff> 16640
|
||||
<4200> <42ff> 16896
|
||||
<4300> <43ff> 17152
|
||||
<4400> <44ff> 17408
|
||||
<4500> <45ff> 17664
|
||||
<4600> <46ff> 17920
|
||||
<4700> <47af> 18176
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,337 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (B5pc-H)
|
||||
%%Title: (B5pc-H Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5pc-H def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 0 def
|
||||
/XUID [1 10 25382] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
3 begincodespacerange
|
||||
<00> <80>
|
||||
<A140> <FCFE>
|
||||
<FD> <FF>
|
||||
endcodespacerange
|
||||
|
||||
1 beginnotdefrange
|
||||
<00> <1f> 1
|
||||
endnotdefrange
|
||||
|
||||
100 begincidrange
|
||||
<20> <7e> 1
|
||||
<80> <80> 61
|
||||
<a140> <a158> 99
|
||||
<a159> <a15c> 13743
|
||||
<a15d> <a17e> 128
|
||||
<a1a1> <a1f5> 162
|
||||
<a1f6> <a1f6> 248
|
||||
<a1f7> <a1f7> 247
|
||||
<a1f8> <a1fe> 249
|
||||
<a240> <a27e> 256
|
||||
<a2a1> <a2fe> 319
|
||||
<a340> <a37e> 413
|
||||
<a3a1> <a3bb> 476
|
||||
<a3bd> <a3bf> 503
|
||||
<a3c0> <a3e0> 562
|
||||
<a440> <a47e> 595
|
||||
<a4a1> <a4fe> 658
|
||||
<a540> <a57e> 752
|
||||
<a5a1> <a5fe> 815
|
||||
<a640> <a67e> 909
|
||||
<a6a1> <a6fe> 972
|
||||
<a740> <a77e> 1066
|
||||
<a7a1> <a7fe> 1129
|
||||
<a840> <a87e> 1223
|
||||
<a8a1> <a8fe> 1286
|
||||
<a940> <a97e> 1380
|
||||
<a9a1> <a9fe> 1443
|
||||
<aa40> <aa7e> 1537
|
||||
<aaa1> <aafe> 1600
|
||||
<ab40> <ab7e> 1694
|
||||
<aba1> <abfe> 1757
|
||||
<ac40> <ac7e> 1851
|
||||
<aca1> <acfd> 1914
|
||||
<acfe> <acfe> 2431
|
||||
<ad40> <ad7e> 2007
|
||||
<ada1> <adfe> 2070
|
||||
<ae40> <ae7e> 2164
|
||||
<aea1> <aefe> 2227
|
||||
<af40> <af7e> 2321
|
||||
<afa1> <afcf> 2384
|
||||
<afd0> <affe> 2432
|
||||
<b040> <b07e> 2479
|
||||
<b0a1> <b0fe> 2542
|
||||
<b140> <b17e> 2636
|
||||
<b1a1> <b1fe> 2699
|
||||
<b240> <b27e> 2793
|
||||
<b2a1> <b2fe> 2856
|
||||
<b340> <b37e> 2950
|
||||
<b3a1> <b3fe> 3013
|
||||
<b440> <b47e> 3107
|
||||
<b4a1> <b4fe> 3170
|
||||
<b540> <b57e> 3264
|
||||
<b5a1> <b5fe> 3327
|
||||
<b640> <b67e> 3421
|
||||
<b6a1> <b6fe> 3484
|
||||
<b740> <b77e> 3578
|
||||
<b7a1> <b7fe> 3641
|
||||
<b840> <b87e> 3735
|
||||
<b8a1> <b8fe> 3798
|
||||
<b940> <b97e> 3892
|
||||
<b9a1> <b9fe> 3955
|
||||
<ba40> <ba7e> 4049
|
||||
<baa1> <bafe> 4112
|
||||
<bb40> <bb7e> 4206
|
||||
<bba1> <bbc7> 4269
|
||||
<bbc8> <bbfe> 4309
|
||||
<bc40> <bc7e> 4364
|
||||
<bca1> <bcfe> 4427
|
||||
<bd40> <bd7e> 4521
|
||||
<bda1> <bdfe> 4584
|
||||
<be40> <be51> 4678
|
||||
<be52> <be52> 4308
|
||||
<be53> <be7e> 4696
|
||||
<bea1> <befe> 4740
|
||||
<bf40> <bf7e> 4834
|
||||
<bfa1> <bffe> 4897
|
||||
<c040> <c07e> 4991
|
||||
<c0a1> <c0fe> 5054
|
||||
<c140> <c17e> 5148
|
||||
<c1a1> <c1aa> 5211
|
||||
<c1ab> <c1fe> 5222
|
||||
<c240> <c27e> 5306
|
||||
<c2a1> <c2ca> 5369
|
||||
<c2cb> <c2cb> 5221
|
||||
<c2cc> <c2fe> 5411
|
||||
<c340> <c360> 5462
|
||||
<c361> <c37e> 5496
|
||||
<c3a1> <c3b8> 5526
|
||||
<c3b9> <c3b9> 5551
|
||||
<c3ba> <c3ba> 5550
|
||||
<c3bb> <c3fe> 5552
|
||||
<c440> <c455> 5620
|
||||
<c456> <c456> 5495
|
||||
<c457> <c47e> 5642
|
||||
<c4a1> <c4fe> 5682
|
||||
<c540> <c57e> 5776
|
||||
<c5a1> <c5fe> 5839
|
||||
<c640> <c67e> 5933
|
||||
<c940> <c949> 5996
|
||||
<c94a> <c94a> 628
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<c94b> <c96b> 6006
|
||||
<c96c> <c97e> 6040
|
||||
<c9a1> <c9bd> 6059
|
||||
<c9be> <c9be> 6039
|
||||
<c9bf> <c9ec> 6088
|
||||
<c9ed> <c9fe> 6135
|
||||
<ca40> <ca7e> 6153
|
||||
<caa1> <caf6> 6216
|
||||
<caf7> <caf7> 6134
|
||||
<caf8> <cafe> 6302
|
||||
<cb40> <cb7e> 6309
|
||||
<cba1> <cbfe> 6372
|
||||
<cc40> <cc7e> 6466
|
||||
<cca1> <ccfe> 6529
|
||||
<cd40> <cd7e> 6623
|
||||
<cda1> <cdfe> 6686
|
||||
<ce40> <ce7e> 6780
|
||||
<cea1> <cefe> 6843
|
||||
<cf40> <cf7e> 6937
|
||||
<cfa1> <cffe> 7000
|
||||
<d040> <d07e> 7094
|
||||
<d0a1> <d0fe> 7157
|
||||
<d140> <d17e> 7251
|
||||
<d1a1> <d1fe> 7314
|
||||
<d240> <d27e> 7408
|
||||
<d2a1> <d2fe> 7471
|
||||
<d340> <d37e> 7565
|
||||
<d3a1> <d3fe> 7628
|
||||
<d440> <d47e> 7722
|
||||
<d4a1> <d4fe> 7785
|
||||
<d540> <d57e> 7879
|
||||
<d5a1> <d5fe> 7942
|
||||
<d640> <d67e> 8036
|
||||
<d6a1> <d6cb> 8099
|
||||
<d6cc> <d6cc> 8788
|
||||
<d6cd> <d6fe> 8143
|
||||
<d740> <d779> 8193
|
||||
<d77a> <d77a> 8889
|
||||
<d77b> <d77e> 8251
|
||||
<d7a1> <d7fe> 8255
|
||||
<d840> <d87e> 8349
|
||||
<d8a1> <d8fe> 8412
|
||||
<d940> <d97e> 8506
|
||||
<d9a1> <d9fe> 8569
|
||||
<da40> <da7e> 8663
|
||||
<daa1> <dade> 8726
|
||||
<dadf> <dadf> 8142
|
||||
<dae0> <dafe> 8789
|
||||
<db40> <db7e> 8820
|
||||
<dba1> <dba6> 8883
|
||||
<dba7> <dbfe> 8890
|
||||
<dc40> <dc7e> 8978
|
||||
<dca1> <dcfe> 9041
|
||||
<dd40> <dd7e> 9135
|
||||
<dda1> <ddfb> 9198
|
||||
<ddfc> <ddfc> 9089
|
||||
<ddfd> <ddfe> 9289
|
||||
<de40> <de7e> 9291
|
||||
<dea1> <defe> 9354
|
||||
<df40> <df7e> 9448
|
||||
<dfa1> <dffe> 9511
|
||||
<e040> <e07e> 9605
|
||||
<e0a1> <e0fe> 9668
|
||||
<e140> <e17e> 9762
|
||||
<e1a1> <e1fe> 9825
|
||||
<e240> <e27e> 9919
|
||||
<e2a1> <e2fe> 9982
|
||||
<e340> <e37e> 10076
|
||||
<e3a1> <e3fe> 10139
|
||||
<e440> <e47e> 10233
|
||||
<e4a1> <e4fe> 10296
|
||||
<e540> <e57e> 10390
|
||||
<e5a1> <e5fe> 10453
|
||||
<e640> <e67e> 10547
|
||||
<e6a1> <e6fe> 10610
|
||||
<e740> <e77e> 10704
|
||||
<e7a1> <e7fe> 10767
|
||||
<e840> <e87e> 10861
|
||||
<e8a1> <e8a2> 10924
|
||||
<e8a3> <e8fe> 10927
|
||||
<e940> <e975> 11019
|
||||
<e976> <e97e> 11074
|
||||
<e9a1> <e9fe> 11083
|
||||
<ea40> <ea7e> 11177
|
||||
<eaa1> <eafe> 11240
|
||||
<eb40> <eb5a> 11334
|
||||
<eb5b> <eb7e> 11362
|
||||
<eba1> <ebf0> 11398
|
||||
<ebf1> <ebf1> 10926
|
||||
<ebf2> <ebfe> 11478
|
||||
<ec40> <ec7e> 11491
|
||||
<eca1> <ecdd> 11554
|
||||
<ecde> <ecde> 11073
|
||||
<ecdf> <ecfe> 11615
|
||||
<ed40> <ed7e> 11647
|
||||
<eda1> <eda9> 11710
|
||||
<edaa> <edfe> 11720
|
||||
<ee40> <ee7e> 11805
|
||||
<eea1> <eeea> 11868
|
||||
<eeeb> <eeeb> 12308
|
||||
endcidrange
|
||||
|
||||
47 begincidrange
|
||||
<eeec> <eefe> 11942
|
||||
<ef40> <ef7e> 11961
|
||||
<efa1> <effe> 12024
|
||||
<f040> <f055> 12118
|
||||
<f056> <f056> 11719
|
||||
<f057> <f07e> 12140
|
||||
<f0a1> <f0ca> 12180
|
||||
<f0cb> <f0cb> 11361
|
||||
<f0cc> <f0fe> 12222
|
||||
<f140> <f162> 12273
|
||||
<f163> <f16a> 12309
|
||||
<f16b> <f16b> 12640
|
||||
<f16c> <f17e> 12317
|
||||
<f1a1> <f1fe> 12336
|
||||
<f240> <f267> 12430
|
||||
<f268> <f268> 12783
|
||||
<f269> <f27e> 12470
|
||||
<f2a1> <f2c2> 12492
|
||||
<f2c3> <f2fe> 12527
|
||||
<f340> <f374> 12587
|
||||
<f375> <f37e> 12641
|
||||
<f3a1> <f3fe> 12651
|
||||
<f440> <f465> 12745
|
||||
<f466> <f47e> 12784
|
||||
<f4a1> <f4b4> 12809
|
||||
<f4b5> <f4b5> 12526
|
||||
<f4b6> <f4fc> 12829
|
||||
<f4fd> <f4fe> 12901
|
||||
<f540> <f57e> 12903
|
||||
<f5a1> <f5fe> 12966
|
||||
<f640> <f662> 13060
|
||||
<f663> <f663> 12900
|
||||
<f664> <f67e> 13095
|
||||
<f6a1> <f6fe> 13122
|
||||
<f740> <f77e> 13216
|
||||
<f7a1> <f7fe> 13279
|
||||
<f840> <f87e> 13373
|
||||
<f8a1> <f8fe> 13436
|
||||
<f940> <f976> 13530
|
||||
<f977> <f97e> 13586
|
||||
<f9a1> <f9c3> 13594
|
||||
<f9c4> <f9c4> 13585
|
||||
<f9c5> <f9c5> 13629
|
||||
<f9c6> <f9c6> 13641
|
||||
<f9c7> <f9d1> 13630
|
||||
<f9d2> <f9d5> 13642
|
||||
<fd> <ff> 96
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5pc-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5pc-H)
|
||||
%%BeginResource: CMap (B5pc-V)
|
||||
%%Title: (B5pc-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/B5pc-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5pc-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 900 def
|
||||
/XUID [1 10 25383] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package org.apache.fontbox.cmap;
|
||||
|
||||
class CIDRange {
|
||||
private final char from;
|
||||
|
||||
private final char to;
|
||||
|
||||
private final int cid;
|
||||
|
||||
CIDRange(char from, char to, int cid) {
|
||||
this.from = from;
|
||||
this.to = to;
|
||||
this.cid = cid;
|
||||
}
|
||||
|
||||
public int map(char ch) {
|
||||
if (this.from <= ch && ch <= this.to)
|
||||
return this.cid + ch - this.from;
|
||||
return -1;
|
||||
}
|
||||
|
||||
public int unmap(int code) {
|
||||
if (this.cid <= code && code <= this.cid + this.to - this.from)
|
||||
return this.from + code - this.cid;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,190 @@
|
|||
package org.apache.fontbox.cmap;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class CMap {
|
||||
private int wmode = 0;
|
||||
|
||||
private String cmapName = null;
|
||||
|
||||
private String cmapVersion = null;
|
||||
|
||||
private int cmapType = -1;
|
||||
|
||||
private String registry = null;
|
||||
|
||||
private String ordering = null;
|
||||
|
||||
private int supplement = 0;
|
||||
|
||||
private int minCodeLength = 4;
|
||||
|
||||
private int maxCodeLength;
|
||||
|
||||
private final List<CodespaceRange> codespaceRanges = new ArrayList<CodespaceRange>();
|
||||
|
||||
private final Map<Integer, String> charToUnicode = new HashMap<Integer, String>();
|
||||
|
||||
private final Map<Integer, Integer> codeToCid = new HashMap<Integer, Integer>();
|
||||
|
||||
private final List<CIDRange> codeToCidRanges = new ArrayList<CIDRange>();
|
||||
|
||||
private static final String SPACE = " ";
|
||||
|
||||
private int spaceMapping = -1;
|
||||
|
||||
public boolean hasCIDMappings() {
|
||||
return (!this.codeToCid.isEmpty() || !this.codeToCidRanges.isEmpty());
|
||||
}
|
||||
|
||||
public boolean hasUnicodeMappings() {
|
||||
return !this.charToUnicode.isEmpty();
|
||||
}
|
||||
|
||||
public String toUnicode(int code) {
|
||||
return this.charToUnicode.get(Integer.valueOf(code));
|
||||
}
|
||||
|
||||
public int readCode(InputStream in) throws IOException {
|
||||
byte[] bytes = new byte[this.maxCodeLength];
|
||||
in.read(bytes, 0, this.minCodeLength);
|
||||
for (int i = this.minCodeLength - 1; i < this.maxCodeLength; i++) {
|
||||
int byteCount = i + 1;
|
||||
for (CodespaceRange range : this.codespaceRanges) {
|
||||
if (range.isFullMatch(bytes, byteCount))
|
||||
return toInt(bytes, byteCount);
|
||||
}
|
||||
if (byteCount < this.maxCodeLength)
|
||||
bytes[byteCount] = (byte)in.read();
|
||||
}
|
||||
throw new IOException("CMap is invalid");
|
||||
}
|
||||
|
||||
private int toInt(byte[] data, int dataLen) {
|
||||
int code = 0;
|
||||
for (int i = 0; i < dataLen; i++) {
|
||||
code <<= 8;
|
||||
code |= (data[i] + 256) % 256;
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
public int toCID(int code) {
|
||||
Integer cid = this.codeToCid.get(Integer.valueOf(code));
|
||||
if (cid != null)
|
||||
return cid;
|
||||
for (CIDRange range : this.codeToCidRanges) {
|
||||
int ch = range.map((char)code);
|
||||
if (ch != -1)
|
||||
return ch;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int getCodeFromArray(byte[] data, int offset, int length) {
|
||||
int code = 0;
|
||||
for (int i = 0; i < length; i++) {
|
||||
code <<= 8;
|
||||
code |= (data[offset + i] + 256) % 256;
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
void addCharMapping(byte[] codes, String unicode) {
|
||||
int code = getCodeFromArray(codes, 0, codes.length);
|
||||
this.charToUnicode.put(Integer.valueOf(code), unicode);
|
||||
if (" ".equals(unicode))
|
||||
this.spaceMapping = code;
|
||||
}
|
||||
|
||||
void addCIDMapping(int code, int cid) {
|
||||
this.codeToCid.put(Integer.valueOf(cid), Integer.valueOf(code));
|
||||
}
|
||||
|
||||
void addCIDRange(char from, char to, int cid) {
|
||||
this.codeToCidRanges.add(new CIDRange(from, to, cid));
|
||||
}
|
||||
|
||||
void addCodespaceRange(CodespaceRange range) {
|
||||
this.codespaceRanges.add(range);
|
||||
this.maxCodeLength = Math.max(this.maxCodeLength, range.getCodeLength());
|
||||
this.minCodeLength = Math.min(this.minCodeLength, range.getCodeLength());
|
||||
}
|
||||
|
||||
void useCmap(CMap cmap) {
|
||||
for (CodespaceRange codespaceRange : cmap.codespaceRanges)
|
||||
addCodespaceRange(codespaceRange);
|
||||
this.charToUnicode.putAll(cmap.charToUnicode);
|
||||
this.codeToCid.putAll(cmap.codeToCid);
|
||||
this.codeToCidRanges.addAll(cmap.codeToCidRanges);
|
||||
}
|
||||
|
||||
public int getWMode() {
|
||||
return this.wmode;
|
||||
}
|
||||
|
||||
public void setWMode(int newWMode) {
|
||||
this.wmode = newWMode;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.cmapName;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.cmapName = name;
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return this.cmapVersion;
|
||||
}
|
||||
|
||||
public void setVersion(String version) {
|
||||
this.cmapVersion = version;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return this.cmapType;
|
||||
}
|
||||
|
||||
public void setType(int type) {
|
||||
this.cmapType = type;
|
||||
}
|
||||
|
||||
public String getRegistry() {
|
||||
return this.registry;
|
||||
}
|
||||
|
||||
public void setRegistry(String newRegistry) {
|
||||
this.registry = newRegistry;
|
||||
}
|
||||
|
||||
public String getOrdering() {
|
||||
return this.ordering;
|
||||
}
|
||||
|
||||
public void setOrdering(String newOrdering) {
|
||||
this.ordering = newOrdering;
|
||||
}
|
||||
|
||||
public int getSupplement() {
|
||||
return this.supplement;
|
||||
}
|
||||
|
||||
public void setSupplement(int newSupplement) {
|
||||
this.supplement = newSupplement;
|
||||
}
|
||||
|
||||
public int getSpaceMapping() {
|
||||
return this.spaceMapping;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return this.cmapName;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,497 @@
|
|||
package org.apache.fontbox.cmap;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.PushbackInputStream;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.apache.fontbox.util.Charsets;
|
||||
|
||||
public class CMapParser {
|
||||
private static final String MARK_END_OF_DICTIONARY = ">>";
|
||||
|
||||
private static final String MARK_END_OF_ARRAY = "]";
|
||||
|
||||
private final byte[] tokenParserByteBuffer = new byte[512];
|
||||
|
||||
public CMap parse(File file) throws IOException {
|
||||
FileInputStream input = null;
|
||||
try {
|
||||
input = new FileInputStream(file);
|
||||
return parse(input);
|
||||
} finally {
|
||||
if (input != null)
|
||||
input.close();
|
||||
}
|
||||
}
|
||||
|
||||
public CMap parsePredefined(String name) throws IOException {
|
||||
InputStream input = null;
|
||||
try {
|
||||
input = getExternalCMap(name);
|
||||
return parse(input);
|
||||
} finally {
|
||||
if (input != null)
|
||||
input.close();
|
||||
}
|
||||
}
|
||||
|
||||
public CMap parse(InputStream input) throws IOException {
|
||||
PushbackInputStream cmapStream = new PushbackInputStream(input);
|
||||
CMap result = new CMap();
|
||||
Object previousToken = null;
|
||||
Object token;
|
||||
while ((token = parseNextToken(cmapStream)) != null) {
|
||||
if (token instanceof Operator) {
|
||||
Operator op = (Operator)token;
|
||||
if (op.op.equals("usecmap")) {
|
||||
parseUsecmap(previousToken, result);
|
||||
} else {
|
||||
if (op.op.equals("endcmap"))
|
||||
break;
|
||||
if (op.op.equals("begincodespacerange")) {
|
||||
parseBegincodespacerange(previousToken, cmapStream, result);
|
||||
} else if (op.op.equals("beginbfchar")) {
|
||||
parseBeginbfchar(previousToken, cmapStream, result);
|
||||
} else if (op.op.equals("beginbfrange")) {
|
||||
parseBeginbfrange(previousToken, cmapStream, result);
|
||||
} else if (op.op.equals("begincidchar")) {
|
||||
parseBegincidchar(previousToken, cmapStream, result);
|
||||
} else if (op.op.equals("begincidrange")) {
|
||||
parseBegincidrange(previousToken, cmapStream, result);
|
||||
}
|
||||
}
|
||||
} else if (token instanceof LiteralName) {
|
||||
parseLiteralName(token, cmapStream, result);
|
||||
}
|
||||
previousToken = token;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private void parseUsecmap(Object previousToken, CMap result) throws IOException {
|
||||
LiteralName useCmapName = (LiteralName)previousToken;
|
||||
InputStream useStream = getExternalCMap(useCmapName.name);
|
||||
CMap useCMap = parse(useStream);
|
||||
result.useCmap(useCMap);
|
||||
}
|
||||
|
||||
private void parseLiteralName(Object token, PushbackInputStream cmapStream, CMap result) throws IOException {
|
||||
LiteralName literal = (LiteralName)token;
|
||||
if ("WMode".equals(literal.name)) {
|
||||
Object next = parseNextToken(cmapStream);
|
||||
if (next instanceof Integer)
|
||||
result.setWMode(((Integer)next).intValue());
|
||||
} else if ("CMapName".equals(literal.name)) {
|
||||
Object next = parseNextToken(cmapStream);
|
||||
if (next instanceof LiteralName)
|
||||
result.setName(((LiteralName)next).name);
|
||||
} else if ("CMapVersion".equals(literal.name)) {
|
||||
Object next = parseNextToken(cmapStream);
|
||||
if (next instanceof Number) {
|
||||
result.setVersion(next.toString());
|
||||
} else if (next instanceof String) {
|
||||
result.setVersion((String)next);
|
||||
}
|
||||
} else if ("CMapType".equals(literal.name)) {
|
||||
Object next = parseNextToken(cmapStream);
|
||||
if (next instanceof Integer)
|
||||
result.setType(((Integer)next).intValue());
|
||||
} else if ("Registry".equals(literal.name)) {
|
||||
Object next = parseNextToken(cmapStream);
|
||||
if (next instanceof String)
|
||||
result.setRegistry((String)next);
|
||||
} else if ("Ordering".equals(literal.name)) {
|
||||
Object next = parseNextToken(cmapStream);
|
||||
if (next instanceof String)
|
||||
result.setOrdering((String)next);
|
||||
} else if ("Supplement".equals(literal.name)) {
|
||||
Object next = parseNextToken(cmapStream);
|
||||
if (next instanceof Integer)
|
||||
result.setSupplement(((Integer)next).intValue());
|
||||
}
|
||||
}
|
||||
|
||||
private void parseBegincodespacerange(Object previousToken, PushbackInputStream cmapStream, CMap result) throws IOException {
|
||||
Number cosCount = (Number)previousToken;
|
||||
for (int j = 0; j < cosCount.intValue(); j++) {
|
||||
Object nextToken = parseNextToken(cmapStream);
|
||||
if (nextToken instanceof Operator) {
|
||||
if (!((Operator)nextToken).op.equals("endcodespacerange"))
|
||||
throw new IOException("Error : ~codespacerange contains an unexpected operator : " + ((Operator)nextToken).op);
|
||||
break;
|
||||
}
|
||||
byte[] startRange = (byte[])nextToken;
|
||||
byte[] endRange = (byte[])parseNextToken(cmapStream);
|
||||
CodespaceRange range = new CodespaceRange();
|
||||
range.setStart(startRange);
|
||||
range.setEnd(endRange);
|
||||
result.addCodespaceRange(range);
|
||||
}
|
||||
}
|
||||
|
||||
private void parseBeginbfchar(Object previousToken, PushbackInputStream cmapStream, CMap result) throws IOException {
|
||||
Number cosCount = (Number)previousToken;
|
||||
for (int j = 0; j < cosCount.intValue(); j++) {
|
||||
Object nextToken = parseNextToken(cmapStream);
|
||||
if (nextToken instanceof Operator) {
|
||||
if (!((Operator)nextToken).op.equals("endbfchar"))
|
||||
throw new IOException("Error : ~bfchar contains an unexpected operator : " + ((Operator)nextToken).op);
|
||||
break;
|
||||
}
|
||||
byte[] inputCode = (byte[])nextToken;
|
||||
nextToken = parseNextToken(cmapStream);
|
||||
if (nextToken instanceof byte[]) {
|
||||
byte[] bytes = (byte[])nextToken;
|
||||
String value = createStringFromBytes(bytes);
|
||||
result.addCharMapping(inputCode, value);
|
||||
} else if (nextToken instanceof LiteralName) {
|
||||
result.addCharMapping(inputCode, ((LiteralName)nextToken).name);
|
||||
} else {
|
||||
throw new IOException("Error parsing CMap beginbfchar, expected{COSString or COSName} and not " + nextToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void parseBegincidrange(Object previousToken, PushbackInputStream cmapStream, CMap result) throws IOException {
|
||||
int numberOfLines = (Integer)previousToken;
|
||||
for (int n = 0; n < numberOfLines; n++) {
|
||||
Object nextToken = parseNextToken(cmapStream);
|
||||
if (nextToken instanceof Operator) {
|
||||
if (!((Operator)nextToken).op.equals("endcidrange"))
|
||||
throw new IOException("Error : ~cidrange contains an unexpected operator : " + ((Operator)nextToken).op);
|
||||
break;
|
||||
}
|
||||
byte[] startCode = (byte[])nextToken;
|
||||
int start = createIntFromBytes(startCode);
|
||||
byte[] endCode = (byte[])parseNextToken(cmapStream);
|
||||
int end = createIntFromBytes(endCode);
|
||||
int mappedCode = (Integer)parseNextToken(cmapStream);
|
||||
if (startCode.length <= 2 && endCode.length <= 2) {
|
||||
result.addCIDRange((char)start, (char)end, mappedCode);
|
||||
} else {
|
||||
int endOfMappings = mappedCode + end - start;
|
||||
while (mappedCode <= endOfMappings) {
|
||||
int mappedCID = createIntFromBytes(startCode);
|
||||
result.addCIDMapping(mappedCode++, mappedCID);
|
||||
increment(startCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void parseBegincidchar(Object previousToken, PushbackInputStream cmapStream, CMap result) throws IOException {
|
||||
Number cosCount = (Number)previousToken;
|
||||
for (int j = 0; j < cosCount.intValue(); j++) {
|
||||
Object nextToken = parseNextToken(cmapStream);
|
||||
if (nextToken instanceof Operator) {
|
||||
if (!((Operator)nextToken).op.equals("endcidchar"))
|
||||
throw new IOException("Error : ~cidchar contains an unexpected operator : " + ((Operator)nextToken).op);
|
||||
break;
|
||||
}
|
||||
byte[] inputCode = (byte[])nextToken;
|
||||
int mappedCode = (Integer)parseNextToken(cmapStream);
|
||||
int mappedCID = createIntFromBytes(inputCode);
|
||||
result.addCIDMapping(mappedCode, mappedCID);
|
||||
}
|
||||
}
|
||||
|
||||
private void parseBeginbfrange(Object previousToken, PushbackInputStream cmapStream, CMap result) throws IOException {
|
||||
Number cosCount = (Number)previousToken;
|
||||
for (int j = 0; j < cosCount.intValue(); j++) {
|
||||
byte[] tokenBytes;
|
||||
Object nextToken = parseNextToken(cmapStream);
|
||||
if (nextToken instanceof Operator) {
|
||||
if (!((Operator)nextToken).op.equals("endbfrange"))
|
||||
throw new IOException("Error : ~bfrange contains an unexpected operator : " + ((Operator)nextToken).op);
|
||||
break;
|
||||
}
|
||||
byte[] startCode = (byte[])nextToken;
|
||||
byte[] endCode = (byte[])parseNextToken(cmapStream);
|
||||
nextToken = parseNextToken(cmapStream);
|
||||
List<byte[]> array = null;
|
||||
if (nextToken instanceof List) {
|
||||
array = (List<byte[]>)nextToken;
|
||||
tokenBytes = array.get(0);
|
||||
} else {
|
||||
tokenBytes = (byte[])nextToken;
|
||||
}
|
||||
boolean done = false;
|
||||
int arrayIndex = 0;
|
||||
while (!done) {
|
||||
if (compare(startCode, endCode) >= 0)
|
||||
done = true;
|
||||
String value = createStringFromBytes(tokenBytes);
|
||||
result.addCharMapping(startCode, value);
|
||||
increment(startCode);
|
||||
if (array == null) {
|
||||
increment(tokenBytes);
|
||||
continue;
|
||||
}
|
||||
arrayIndex++;
|
||||
if (arrayIndex < array.size())
|
||||
tokenBytes = array.get(arrayIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected InputStream getExternalCMap(String name) throws IOException {
|
||||
URL url = getClass().getResource(name);
|
||||
if (url == null)
|
||||
throw new IOException("Error: Could not find referenced cmap stream " + name);
|
||||
return url.openStream();
|
||||
}
|
||||
|
||||
private Object parseNextToken(PushbackInputStream is) throws IOException {
|
||||
byte[] arrayOfByte1;
|
||||
LiteralName literalName;
|
||||
Operator operator;
|
||||
StringBuffer stringBuffer1;
|
||||
int secondCloseBrace;
|
||||
List<Object> list;
|
||||
int theNextByte;
|
||||
StringBuffer buffer;
|
||||
int i;
|
||||
Object nextToken;
|
||||
int multiplyer, stringByte;
|
||||
String value;
|
||||
int bufferIndex;
|
||||
byte[] finalResult;
|
||||
Object<Object> retval = null;
|
||||
int nextByte = is.read();
|
||||
while (nextByte == 9 || nextByte == 32 || nextByte == 13 || nextByte == 10)
|
||||
nextByte = is.read();
|
||||
switch (nextByte) {
|
||||
case 37:
|
||||
stringBuffer1 = new StringBuffer();
|
||||
stringBuffer1.append((char)nextByte);
|
||||
readUntilEndOfLine(is, stringBuffer1);
|
||||
retval = (Object<Object>)stringBuffer1.toString();
|
||||
break;
|
||||
case 40:
|
||||
stringBuffer1 = new StringBuffer();
|
||||
i = is.read();
|
||||
while (i != -1 && i != 41) {
|
||||
stringBuffer1.append((char)i);
|
||||
i = is.read();
|
||||
}
|
||||
retval = (Object<Object>)stringBuffer1.toString();
|
||||
break;
|
||||
case 62:
|
||||
secondCloseBrace = is.read();
|
||||
if (secondCloseBrace == 62) {
|
||||
retval = (Object<Object>)">>";
|
||||
break;
|
||||
}
|
||||
throw new IOException("Error: expected the end of a dictionary.");
|
||||
case 93:
|
||||
retval = (Object<Object>)"]";
|
||||
break;
|
||||
case 91:
|
||||
list = new ArrayList();
|
||||
nextToken = parseNextToken(is);
|
||||
while (nextToken != null && !"]".equals(nextToken)) {
|
||||
list.add(nextToken);
|
||||
nextToken = parseNextToken(is);
|
||||
}
|
||||
retval = (Object<Object>)list;
|
||||
break;
|
||||
case 60:
|
||||
theNextByte = is.read();
|
||||
if (theNextByte == 60) {
|
||||
Map<String, Object> result = new HashMap<String, Object>();
|
||||
Object key = parseNextToken(is);
|
||||
while (key instanceof LiteralName && !">>".equals(key)) {
|
||||
Object object = parseNextToken(is);
|
||||
result.put(((LiteralName)key).name, object);
|
||||
key = parseNextToken(is);
|
||||
}
|
||||
Map<String, Object> map1 = result;
|
||||
break;
|
||||
}
|
||||
multiplyer = 16;
|
||||
bufferIndex = -1;
|
||||
while (theNextByte != -1 && theNextByte != 62) {
|
||||
int intValue = 0;
|
||||
if (theNextByte >= 48 && theNextByte <= 57) {
|
||||
intValue = theNextByte - 48;
|
||||
} else if (theNextByte >= 65 && theNextByte <= 70) {
|
||||
intValue = 10 + theNextByte - 65;
|
||||
} else if (theNextByte >= 97 && theNextByte <= 102) {
|
||||
intValue = 10 + theNextByte - 97;
|
||||
} else {
|
||||
if (isWhitespaceOrEOF(theNextByte)) {
|
||||
theNextByte = is.read();
|
||||
continue;
|
||||
}
|
||||
throw new IOException("Error: expected hex character and not " + (char)theNextByte + ":" + theNextByte);
|
||||
}
|
||||
intValue *= multiplyer;
|
||||
if (multiplyer == 16) {
|
||||
bufferIndex++;
|
||||
this.tokenParserByteBuffer[bufferIndex] = 0;
|
||||
multiplyer = 1;
|
||||
} else {
|
||||
multiplyer = 16;
|
||||
}
|
||||
this.tokenParserByteBuffer[bufferIndex] = (byte)(this.tokenParserByteBuffer[bufferIndex] + intValue);
|
||||
theNextByte = is.read();
|
||||
}
|
||||
finalResult = new byte[bufferIndex + 1];
|
||||
System.arraycopy(this.tokenParserByteBuffer, 0, finalResult, 0, bufferIndex + 1);
|
||||
arrayOfByte1 = finalResult;
|
||||
break;
|
||||
case 47:
|
||||
buffer = new StringBuffer();
|
||||
stringByte = is.read();
|
||||
while (!isWhitespaceOrEOF(stringByte) && !isDelimiter(stringByte)) {
|
||||
buffer.append((char)stringByte);
|
||||
stringByte = is.read();
|
||||
}
|
||||
if (isDelimiter(stringByte))
|
||||
is.unread(stringByte);
|
||||
literalName = new LiteralName(buffer.toString());
|
||||
break;
|
||||
case -1:
|
||||
break;
|
||||
case 48:
|
||||
case 49:
|
||||
case 50:
|
||||
case 51:
|
||||
case 52:
|
||||
case 53:
|
||||
case 54:
|
||||
case 55:
|
||||
case 56:
|
||||
case 57:
|
||||
buffer = new StringBuffer();
|
||||
buffer.append((char)nextByte);
|
||||
nextByte = is.read();
|
||||
while (!isWhitespaceOrEOF(nextByte) && (Character.isDigit((char)nextByte) || nextByte == 46)) {
|
||||
buffer.append((char)nextByte);
|
||||
nextByte = is.read();
|
||||
}
|
||||
is.unread(nextByte);
|
||||
value = buffer.toString();
|
||||
if (value.indexOf('.') >= 0) {
|
||||
Double double_ = new Double(value);
|
||||
} else {
|
||||
Integer integer = Integer.valueOf(value);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
buffer = new StringBuffer();
|
||||
buffer.append((char)nextByte);
|
||||
nextByte = is.read();
|
||||
while (!isWhitespaceOrEOF(nextByte) && !isDelimiter(nextByte) && !Character.isDigit(nextByte)) {
|
||||
buffer.append((char)nextByte);
|
||||
nextByte = is.read();
|
||||
}
|
||||
if (isDelimiter(nextByte) || Character.isDigit(nextByte))
|
||||
is.unread(nextByte);
|
||||
operator = new Operator(buffer.toString());
|
||||
break;
|
||||
}
|
||||
return operator;
|
||||
}
|
||||
|
||||
private void readUntilEndOfLine(InputStream is, StringBuffer buf) throws IOException {
|
||||
int nextByte = is.read();
|
||||
while (nextByte != -1 && nextByte != 13 && nextByte != 10) {
|
||||
buf.append((char)nextByte);
|
||||
nextByte = is.read();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isWhitespaceOrEOF(int aByte) {
|
||||
return (aByte == -1 || aByte == 32 || aByte == 13 || aByte == 10);
|
||||
}
|
||||
|
||||
private boolean isDelimiter(int aByte) {
|
||||
switch (aByte) {
|
||||
case 37:
|
||||
case 40:
|
||||
case 41:
|
||||
case 47:
|
||||
case 60:
|
||||
case 62:
|
||||
case 91:
|
||||
case 93:
|
||||
case 123:
|
||||
case 125:
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void increment(byte[] data) {
|
||||
increment(data, data.length - 1);
|
||||
}
|
||||
|
||||
private void increment(byte[] data, int position) {
|
||||
if (position > 0 && (data[position] + 256) % 256 == 255) {
|
||||
data[position] = 0;
|
||||
increment(data, position - 1);
|
||||
} else {
|
||||
data[position] = (byte)(data[position] + 1);
|
||||
}
|
||||
}
|
||||
|
||||
private int createIntFromBytes(byte[] bytes) {
|
||||
int intValue = (bytes[0] + 256) % 256;
|
||||
if (bytes.length == 2) {
|
||||
intValue <<= 8;
|
||||
intValue += (bytes[1] + 256) % 256;
|
||||
}
|
||||
return intValue;
|
||||
}
|
||||
|
||||
private String createStringFromBytes(byte[] bytes) throws IOException {
|
||||
String retval;
|
||||
if (bytes.length == 1) {
|
||||
retval = new String(bytes, Charsets.ISO_8859_1);
|
||||
} else {
|
||||
retval = new String(bytes, Charsets.UTF_16BE);
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
private int compare(byte[] first, byte[] second) {
|
||||
int retval = 1;
|
||||
int firstLength = first.length;
|
||||
for (int i = 0; i < firstLength; ) {
|
||||
if (first[i] == second[i]) {
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
if ((first[i] + 256) % 256 < (second[i] + 256) % 256) {
|
||||
retval = -1;
|
||||
break;
|
||||
}
|
||||
retval = 1;
|
||||
break;
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
private final class LiteralName {
|
||||
private String name;
|
||||
|
||||
private LiteralName(String theName) {
|
||||
this.name = theName;
|
||||
}
|
||||
}
|
||||
|
||||
private final class Operator {
|
||||
private String op;
|
||||
|
||||
private Operator(String theOp) {
|
||||
this.op = theOp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,490 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (CNS-EUC-H)
|
||||
%%Title: (CNS-EUC-H Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /CNS-EUC-H def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 300 def
|
||||
/XUID [1 10 25388] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
5 begincodespacerange
|
||||
<00> <80>
|
||||
<8EA1A1A1> <8EA1FEFE>
|
||||
<8EA2A1A1> <8EA2FEFE>
|
||||
<8EA3A1A1> <8EA3FEFE>
|
||||
<A1A1> <FEFE>
|
||||
endcodespacerange
|
||||
|
||||
1 beginnotdefrange
|
||||
<00> <1f> 13648
|
||||
endnotdefrange
|
||||
|
||||
100 begincidrange
|
||||
<20> <7e> 13648
|
||||
<8ea1a1a1> <8ea1a1fe> 99
|
||||
<8ea1a2a1> <8ea1a2fe> 193
|
||||
<8ea1a3a1> <8ea1a3ce> 287
|
||||
<8ea1a4a1> <8ea1a4fe> 333
|
||||
<8ea1a5a1> <8ea1a5ec> 427
|
||||
<8ea1a5ee> <8ea1a5f0> 503
|
||||
<8ea1a6a1> <8ea1a6be> 506
|
||||
<8ea1a7a1> <8ea1a7a1> 595
|
||||
<8ea1a7a2> <8ea1a7a4> 536
|
||||
<8ea1a7a5> <8ea1a7a5> 596
|
||||
<8ea1a7a6> <8ea1a7a6> 539
|
||||
<8ea1a7a7> <8ea1a7a7> 602
|
||||
<8ea1a7a8> <8ea1a7a8> 540
|
||||
<8ea1a7a9> <8ea1a7ac> 603
|
||||
<8ea1a7ad> <8ea1a7af> 541
|
||||
<8ea1a7b0> <8ea1a7b0> 607
|
||||
<8ea1a7b1> <8ea1a7b1> 5998
|
||||
<8ea1a7b2> <8ea1a7b2> 608
|
||||
<8ea1a7b3> <8ea1a7b3> 610
|
||||
<8ea1a7b4> <8ea1a7b4> 544
|
||||
<8ea1a7b5> <8ea1a7b5> 611
|
||||
<8ea1a7b6> <8ea1a7b6> 5999
|
||||
<8ea1a7b7> <8ea1a7b7> 545
|
||||
<8ea1a7b8> <8ea1a7b9> 612
|
||||
<8ea1a7ba> <8ea1a7ba> 546
|
||||
<8ea1a7bb> <8ea1a7bb> 6000
|
||||
<8ea1a7bc> <8ea1a7bc> 547
|
||||
<8ea1a7bd> <8ea1a7bd> 614
|
||||
<8ea1a7be> <8ea1a7be> 633
|
||||
<8ea1a7bf> <8ea1a7bf> 6005
|
||||
<8ea1a7c0> <8ea1a7c1> 634
|
||||
<8ea1a7c2> <8ea1a7c2> 548
|
||||
<8ea1a7c3> <8ea1a7c6> 636
|
||||
<8ea1a7c7> <8ea1a7c7> 549
|
||||
<8ea1a7c8> <8ea1a7cb> 642
|
||||
<8ea1a7cc> <8ea1a7cc> 6006
|
||||
<8ea1a7cd> <8ea1a7cd> 646
|
||||
<8ea1a7ce> <8ea1a7ce> 550
|
||||
<8ea1a7cf> <8ea1a7d0> 648
|
||||
<8ea1a7d1> <8ea1a7d2> 652
|
||||
<8ea1a7d3> <8ea1a7d5> 551
|
||||
<8ea1a7d6> <8ea1a7d8> 654
|
||||
<8ea1a7d9> <8ea1a7da> 554
|
||||
<8ea1a7db> <8ea1a7db> 6007
|
||||
<8ea1a7dc> <8ea1a7df> 720
|
||||
<8ea1a7e0> <8ea1a7e0> 725
|
||||
<8ea1a7e1> <8ea1a7e1> 556
|
||||
<8ea1a7e2> <8ea1a7e5> 726
|
||||
<8ea1a7e6> <8ea1a7e6> 557
|
||||
<8ea1a7e7> <8ea1a7ed> 730
|
||||
<8ea1a7ee> <8ea1a7ee> 6026
|
||||
<8ea1a7ef> <8ea1a7f2> 737
|
||||
<8ea1a7f3> <8ea1a7f3> 6028
|
||||
<8ea1a7f4> <8ea1a7f8> 741
|
||||
<8ea1a7f9> <8ea1a7f9> 6029
|
||||
<8ea1a7fa> <8ea1a7fd> 746
|
||||
<8ea1a7fe> <8ea1a7fe> 854
|
||||
<8ea1a8a1> <8ea1a8a6> 855
|
||||
<8ea1a8a7> <8ea1a8a7> 862
|
||||
<8ea1a8a8> <8ea1a8a8> 866
|
||||
<8ea1a8a9> <8ea1a8aa> 558
|
||||
<8ea1a8ab> <8ea1a8b2> 867
|
||||
<8ea1a8b3> <8ea1a8b3> 6066
|
||||
<8ea1a8b4> <8ea1a8b6> 875
|
||||
<8ea1a8b7> <8ea1a8ba> 1014
|
||||
<8ea1a8bb> <8ea1a8bb> 6162
|
||||
<8ea1a8bc> <8ea1a8be> 1018
|
||||
<8ea1a8bf> <8ea1a8c3> 1022
|
||||
<8ea1a8c4> <8ea1a8cc> 1029
|
||||
<8ea1a8cd> <8ea1a8cd> 6163
|
||||
<8ea1a8ce> <8ea1a8ce> 6168
|
||||
<8ea1a8cf> <8ea1a8d2> 1039
|
||||
<8ea1a8d3> <8ea1a8d3> 6169
|
||||
<8ea1a8d4> <8ea1a8d9> 1288
|
||||
<8ea1a8da> <8ea1a8da> 6375
|
||||
<8ea1a8db> <8ea1a8e2> 1294
|
||||
<8ea1a8e3> <8ea1a8e3> 560
|
||||
<8ea1a8e4> <8ea1a8e4> 1307
|
||||
<8ea1a8e5> <8ea1a8e7> 1312
|
||||
<8ea1a8e8> <8ea1a8eb> 1686
|
||||
<8ea1a8ec> <8ea1a8ec> 561
|
||||
<8ea1a8ed> <8ea1a8f0> 1695
|
||||
<8ea1a8f1> <8ea1a8fb> 2086
|
||||
<8ea1a8fc> <8ea1a8fe> 2549
|
||||
<8ea1a9a1> <8ea1a9a1> 7731
|
||||
<8ea1a9a2> <8ea1a9a2> 2552
|
||||
<8ea1a9a3> <8ea1a9a3> 7732
|
||||
<8ea1a9a4> <8ea1a9a5> 2553
|
||||
<8ea1a9a6> <8ea1a9ab> 3041
|
||||
<8ea1a9ac> <8ea1a9ae> 3515
|
||||
<8ea1a9af> <8ea1a9af> 9056
|
||||
<8ea1a9b0> <8ea1a9b0> 9746
|
||||
<8ea1a9b1> <8ea1a9b3> 3963
|
||||
<8ea1a9b4> <8ea1a9b5> 4352
|
||||
<8ea1a9b6> <8ea1a9b6> 4745
|
||||
<8ea1a9b7> <8ea1a9b8> 5042
|
||||
<8ea1a9b9> <8ea1a9b9> 12045
|
||||
<8ea1c2a1> <8ea1c2c1> 562
|
||||
<8ea1c4a1> <8ea1c4fe> 595
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<8ea1c5a1> <8ea1c5fe> 689
|
||||
<8ea1c6a1> <8ea1c6fe> 783
|
||||
<8ea1c7a1> <8ea1c7fe> 877
|
||||
<8ea1c8a1> <8ea1c8fe> 971
|
||||
<8ea1c9a1> <8ea1c9fe> 1065
|
||||
<8ea1caa1> <8ea1cafe> 1159
|
||||
<8ea1cba1> <8ea1cbfe> 1253
|
||||
<8ea1cca1> <8ea1ccfe> 1347
|
||||
<8ea1cda1> <8ea1cdfe> 1441
|
||||
<8ea1cea1> <8ea1cefe> 1535
|
||||
<8ea1cfa1> <8ea1cffe> 1629
|
||||
<8ea1d0a1> <8ea1d0fe> 1723
|
||||
<8ea1d1a1> <8ea1d1fe> 1817
|
||||
<8ea1d2a1> <8ea1d2fe> 1911
|
||||
<8ea1d3a1> <8ea1d3fe> 2005
|
||||
<8ea1d4a1> <8ea1d4fe> 2099
|
||||
<8ea1d5a1> <8ea1d5fe> 2193
|
||||
<8ea1d6a1> <8ea1d6fe> 2287
|
||||
<8ea1d7a1> <8ea1d7fe> 2381
|
||||
<8ea1d8a1> <8ea1d8fe> 2475
|
||||
<8ea1d9a1> <8ea1d9fe> 2569
|
||||
<8ea1daa1> <8ea1dafe> 2663
|
||||
<8ea1dba1> <8ea1dbfe> 2757
|
||||
<8ea1dca1> <8ea1dcfe> 2851
|
||||
<8ea1dda1> <8ea1ddfe> 2945
|
||||
<8ea1dea1> <8ea1defe> 3039
|
||||
<8ea1dfa1> <8ea1dffe> 3133
|
||||
<8ea1e0a1> <8ea1e0fe> 3227
|
||||
<8ea1e1a1> <8ea1e1fe> 3321
|
||||
<8ea1e2a1> <8ea1e2fe> 3415
|
||||
<8ea1e3a1> <8ea1e3fe> 3509
|
||||
<8ea1e4a1> <8ea1e4fe> 3603
|
||||
<8ea1e5a1> <8ea1e5fe> 3697
|
||||
<8ea1e6a1> <8ea1e6fe> 3791
|
||||
<8ea1e7a1> <8ea1e7fe> 3885
|
||||
<8ea1e8a1> <8ea1e8fe> 3979
|
||||
<8ea1e9a1> <8ea1e9fe> 4073
|
||||
<8ea1eaa1> <8ea1eafe> 4167
|
||||
<8ea1eba1> <8ea1ebfe> 4261
|
||||
<8ea1eca1> <8ea1ecfe> 4355
|
||||
<8ea1eda1> <8ea1edfe> 4449
|
||||
<8ea1eea1> <8ea1eefe> 4543
|
||||
<8ea1efa1> <8ea1effe> 4637
|
||||
<8ea1f0a1> <8ea1f0fe> 4731
|
||||
<8ea1f1a1> <8ea1f1fe> 4825
|
||||
<8ea1f2a1> <8ea1f2fe> 4919
|
||||
<8ea1f3a1> <8ea1f3fe> 5013
|
||||
<8ea1f4a1> <8ea1f4fe> 5107
|
||||
<8ea1f5a1> <8ea1f5fe> 5201
|
||||
<8ea1f6a1> <8ea1f6fe> 5295
|
||||
<8ea1f7a1> <8ea1f7fe> 5389
|
||||
<8ea1f8a1> <8ea1f8fe> 5483
|
||||
<8ea1f9a1> <8ea1f9fe> 5577
|
||||
<8ea1faa1> <8ea1fafe> 5671
|
||||
<8ea1fba1> <8ea1fbfe> 5765
|
||||
<8ea1fca1> <8ea1fcfe> 5859
|
||||
<8ea1fda1> <8ea1fdcb> 5953
|
||||
<8ea2a1a1> <8ea2a1fe> 5996
|
||||
<8ea2a2a1> <8ea2a2fe> 6090
|
||||
<8ea2a3a1> <8ea2a3fe> 6184
|
||||
<8ea2a4a1> <8ea2a4fe> 6278
|
||||
<8ea2a5a1> <8ea2a5fe> 6372
|
||||
<8ea2a6a1> <8ea2a6fe> 6466
|
||||
<8ea2a7a1> <8ea2a7fe> 6560
|
||||
<8ea2a8a1> <8ea2a8fe> 6654
|
||||
<8ea2a9a1> <8ea2a9fe> 6748
|
||||
<8ea2aaa1> <8ea2aafe> 6842
|
||||
<8ea2aba1> <8ea2abfe> 6936
|
||||
<8ea2aca1> <8ea2acfe> 7030
|
||||
<8ea2ada1> <8ea2adfe> 7124
|
||||
<8ea2aea1> <8ea2aefe> 7218
|
||||
<8ea2afa1> <8ea2affe> 7312
|
||||
<8ea2b0a1> <8ea2b0fe> 7406
|
||||
<8ea2b1a1> <8ea2b1fe> 7500
|
||||
<8ea2b2a1> <8ea2b2fe> 7594
|
||||
<8ea2b3a1> <8ea2b3fe> 7688
|
||||
<8ea2b4a1> <8ea2b4fe> 7782
|
||||
<8ea2b5a1> <8ea2b5fe> 7876
|
||||
<8ea2b6a1> <8ea2b6fe> 7970
|
||||
<8ea2b7a1> <8ea2b7fe> 8064
|
||||
<8ea2b8a1> <8ea2b8fe> 8158
|
||||
<8ea2b9a1> <8ea2b9fe> 8252
|
||||
<8ea2baa1> <8ea2bafe> 8346
|
||||
<8ea2bba1> <8ea2bbfe> 8440
|
||||
<8ea2bca1> <8ea2bcfe> 8534
|
||||
<8ea2bda1> <8ea2bdfe> 8628
|
||||
<8ea2bea1> <8ea2befe> 8722
|
||||
<8ea2bfa1> <8ea2bffe> 8816
|
||||
<8ea2c0a1> <8ea2c0fe> 8910
|
||||
<8ea2c1a1> <8ea2c1fe> 9004
|
||||
<8ea2c2a1> <8ea2c2fe> 9098
|
||||
<8ea2c3a1> <8ea2c3fe> 9192
|
||||
<8ea2c4a1> <8ea2c4fe> 9286
|
||||
<8ea2c5a1> <8ea2c5fe> 9380
|
||||
<8ea2c6a1> <8ea2c6fe> 9474
|
||||
<8ea2c7a1> <8ea2c7fe> 9568
|
||||
<8ea2c8a1> <8ea2c8fe> 9662
|
||||
<8ea2c9a1> <8ea2c9fe> 9756
|
||||
<8ea2caa1> <8ea2cafe> 9850
|
||||
<8ea2cba1> <8ea2cbfe> 9944
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<8ea2cca1> <8ea2ccfe> 10038
|
||||
<8ea2cda1> <8ea2cdfe> 10132
|
||||
<8ea2cea1> <8ea2cefe> 10226
|
||||
<8ea2cfa1> <8ea2cffe> 10320
|
||||
<8ea2d0a1> <8ea2d0fe> 10414
|
||||
<8ea2d1a1> <8ea2d1fe> 10508
|
||||
<8ea2d2a1> <8ea2d2fe> 10602
|
||||
<8ea2d3a1> <8ea2d3fe> 10696
|
||||
<8ea2d4a1> <8ea2d4fe> 10790
|
||||
<8ea2d5a1> <8ea2d5fe> 10884
|
||||
<8ea2d6a1> <8ea2d6fe> 10978
|
||||
<8ea2d7a1> <8ea2d7fe> 11072
|
||||
<8ea2d8a1> <8ea2d8fe> 11166
|
||||
<8ea2d9a1> <8ea2d9fe> 11260
|
||||
<8ea2daa1> <8ea2dafe> 11354
|
||||
<8ea2dba1> <8ea2dbfe> 11448
|
||||
<8ea2dca1> <8ea2dcfe> 11542
|
||||
<8ea2dda1> <8ea2ddfe> 11636
|
||||
<8ea2dea1> <8ea2defe> 11730
|
||||
<8ea2dfa1> <8ea2dffe> 11824
|
||||
<8ea2e0a1> <8ea2e0fe> 11918
|
||||
<8ea2e1a1> <8ea2e1fe> 12012
|
||||
<8ea2e2a1> <8ea2e2fe> 12106
|
||||
<8ea2e3a1> <8ea2e3fe> 12200
|
||||
<8ea2e4a1> <8ea2e4fe> 12294
|
||||
<8ea2e5a1> <8ea2e5fe> 12388
|
||||
<8ea2e6a1> <8ea2e6fe> 12482
|
||||
<8ea2e7a1> <8ea2e7fe> 12576
|
||||
<8ea2e8a1> <8ea2e8fe> 12670
|
||||
<8ea2e9a1> <8ea2e9fe> 12764
|
||||
<8ea2eaa1> <8ea2eafe> 12858
|
||||
<8ea2eba1> <8ea2ebfe> 12952
|
||||
<8ea2eca1> <8ea2ecfe> 13046
|
||||
<8ea2eda1> <8ea2edfe> 13140
|
||||
<8ea2eea1> <8ea2eefe> 13234
|
||||
<8ea2efa1> <8ea2effe> 13328
|
||||
<8ea2f0a1> <8ea2f0fe> 13422
|
||||
<8ea2f1a1> <8ea2f1fe> 13516
|
||||
<8ea2f2a1> <8ea2f2c4> 13610
|
||||
<a1a1> <a1fe> 99
|
||||
<a2a1> <a2fe> 193
|
||||
<a3a1> <a3ce> 287
|
||||
<a4a1> <a4fe> 333
|
||||
<a5a1> <a5ec> 427
|
||||
<a5ee> <a5f0> 503
|
||||
<a6a1> <a6be> 506
|
||||
<a7a1> <a7a1> 595
|
||||
<a7a2> <a7a4> 536
|
||||
<a7a5> <a7a5> 596
|
||||
<a7a6> <a7a6> 539
|
||||
<a7a7> <a7a7> 602
|
||||
<a7a8> <a7a8> 540
|
||||
<a7a9> <a7ac> 603
|
||||
<a7ad> <a7af> 541
|
||||
<a7b0> <a7b0> 607
|
||||
<a7b1> <a7b1> 5998
|
||||
<a7b2> <a7b2> 608
|
||||
<a7b3> <a7b3> 610
|
||||
<a7b4> <a7b4> 544
|
||||
<a7b5> <a7b5> 611
|
||||
<a7b6> <a7b6> 5999
|
||||
<a7b7> <a7b7> 545
|
||||
<a7b8> <a7b9> 612
|
||||
<a7ba> <a7ba> 546
|
||||
<a7bb> <a7bb> 6000
|
||||
<a7bc> <a7bc> 547
|
||||
<a7bd> <a7bd> 614
|
||||
<a7be> <a7be> 633
|
||||
<a7bf> <a7bf> 6005
|
||||
<a7c0> <a7c1> 634
|
||||
<a7c2> <a7c2> 548
|
||||
<a7c3> <a7c6> 636
|
||||
<a7c7> <a7c7> 549
|
||||
<a7c8> <a7cb> 642
|
||||
<a7cc> <a7cc> 6006
|
||||
<a7cd> <a7cd> 646
|
||||
<a7ce> <a7ce> 550
|
||||
<a7cf> <a7d0> 648
|
||||
<a7d1> <a7d2> 652
|
||||
<a7d3> <a7d5> 551
|
||||
<a7d6> <a7d8> 654
|
||||
<a7d9> <a7da> 554
|
||||
<a7db> <a7db> 6007
|
||||
<a7dc> <a7df> 720
|
||||
<a7e0> <a7e0> 725
|
||||
<a7e1> <a7e1> 556
|
||||
<a7e2> <a7e5> 726
|
||||
<a7e6> <a7e6> 557
|
||||
<a7e7> <a7ed> 730
|
||||
<a7ee> <a7ee> 6026
|
||||
<a7ef> <a7f2> 737
|
||||
<a7f3> <a7f3> 6028
|
||||
<a7f4> <a7f8> 741
|
||||
<a7f9> <a7f9> 6029
|
||||
<a7fa> <a7fd> 746
|
||||
<a7fe> <a7fe> 854
|
||||
<a8a1> <a8a6> 855
|
||||
<a8a7> <a8a7> 862
|
||||
<a8a8> <a8a8> 866
|
||||
<a8a9> <a8aa> 558
|
||||
endcidrange
|
||||
|
||||
95 begincidrange
|
||||
<a8ab> <a8b2> 867
|
||||
<a8b3> <a8b3> 6066
|
||||
<a8b4> <a8b6> 875
|
||||
<a8b7> <a8ba> 1014
|
||||
<a8bb> <a8bb> 6162
|
||||
<a8bc> <a8be> 1018
|
||||
<a8bf> <a8c3> 1022
|
||||
<a8c4> <a8cc> 1029
|
||||
<a8cd> <a8cd> 6163
|
||||
<a8ce> <a8ce> 6168
|
||||
<a8cf> <a8d2> 1039
|
||||
<a8d3> <a8d3> 6169
|
||||
<a8d4> <a8d9> 1288
|
||||
<a8da> <a8da> 6375
|
||||
<a8db> <a8e2> 1294
|
||||
<a8e3> <a8e3> 560
|
||||
<a8e4> <a8e4> 1307
|
||||
<a8e5> <a8e7> 1312
|
||||
<a8e8> <a8eb> 1686
|
||||
<a8ec> <a8ec> 561
|
||||
<a8ed> <a8f0> 1695
|
||||
<a8f1> <a8fb> 2086
|
||||
<a8fc> <a8fe> 2549
|
||||
<a9a1> <a9a1> 7731
|
||||
<a9a2> <a9a2> 2552
|
||||
<a9a3> <a9a3> 7732
|
||||
<a9a4> <a9a5> 2553
|
||||
<a9a6> <a9ab> 3041
|
||||
<a9ac> <a9ae> 3515
|
||||
<a9af> <a9af> 9056
|
||||
<a9b0> <a9b0> 9746
|
||||
<a9b1> <a9b3> 3963
|
||||
<a9b4> <a9b5> 4352
|
||||
<a9b6> <a9b6> 4745
|
||||
<a9b7> <a9b8> 5042
|
||||
<a9b9> <a9b9> 12045
|
||||
<c2a1> <c2c1> 562
|
||||
<c4a1> <c4fe> 595
|
||||
<c5a1> <c5fe> 689
|
||||
<c6a1> <c6fe> 783
|
||||
<c7a1> <c7fe> 877
|
||||
<c8a1> <c8fe> 971
|
||||
<c9a1> <c9fe> 1065
|
||||
<caa1> <cafe> 1159
|
||||
<cba1> <cbfe> 1253
|
||||
<cca1> <ccfe> 1347
|
||||
<cda1> <cdfe> 1441
|
||||
<cea1> <cefe> 1535
|
||||
<cfa1> <cffe> 1629
|
||||
<d0a1> <d0fe> 1723
|
||||
<d1a1> <d1fe> 1817
|
||||
<d2a1> <d2fe> 1911
|
||||
<d3a1> <d3fe> 2005
|
||||
<d4a1> <d4fe> 2099
|
||||
<d5a1> <d5fe> 2193
|
||||
<d6a1> <d6fe> 2287
|
||||
<d7a1> <d7fe> 2381
|
||||
<d8a1> <d8fe> 2475
|
||||
<d9a1> <d9fe> 2569
|
||||
<daa1> <dafe> 2663
|
||||
<dba1> <dbfe> 2757
|
||||
<dca1> <dcfe> 2851
|
||||
<dda1> <ddfe> 2945
|
||||
<dea1> <defe> 3039
|
||||
<dfa1> <dffe> 3133
|
||||
<e0a1> <e0fe> 3227
|
||||
<e1a1> <e1fe> 3321
|
||||
<e2a1> <e2fe> 3415
|
||||
<e3a1> <e3fe> 3509
|
||||
<e4a1> <e4fe> 3603
|
||||
<e5a1> <e5fe> 3697
|
||||
<e6a1> <e6fe> 3791
|
||||
<e7a1> <e7fe> 3885
|
||||
<e8a1> <e8fe> 3979
|
||||
<e9a1> <e9fe> 4073
|
||||
<eaa1> <eafe> 4167
|
||||
<eba1> <ebfe> 4261
|
||||
<eca1> <ecfe> 4355
|
||||
<eda1> <edfe> 4449
|
||||
<eea1> <eefe> 4543
|
||||
<efa1> <effe> 4637
|
||||
<f0a1> <f0fe> 4731
|
||||
<f1a1> <f1fe> 4825
|
||||
<f2a1> <f2fe> 4919
|
||||
<f3a1> <f3fe> 5013
|
||||
<f4a1> <f4fe> 5107
|
||||
<f5a1> <f5fe> 5201
|
||||
<f6a1> <f6fe> 5295
|
||||
<f7a1> <f7fe> 5389
|
||||
<f8a1> <f8fe> 5483
|
||||
<f9a1> <f9fe> 5577
|
||||
<faa1> <fafe> 5671
|
||||
<fba1> <fbfe> 5765
|
||||
<fca1> <fcfe> 5859
|
||||
<fda1> <fdcb> 5953
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,538 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (CNS-EUC-V)
|
||||
%%Title: (CNS-EUC-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /CNS-EUC-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25389] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
5 begincodespacerange
|
||||
<00> <80>
|
||||
<8EA1A1A1> <8EA1FEFE>
|
||||
<8EA2A1A1> <8EA2FEFE>
|
||||
<8EA3A1A1> <8EA3FEFE>
|
||||
<A1A1> <FEFE>
|
||||
endcodespacerange
|
||||
|
||||
1 beginnotdefrange
|
||||
<00> <1f> 13648
|
||||
endnotdefrange
|
||||
|
||||
100 begincidrange
|
||||
<20> <7e> 13648
|
||||
<8ea1a1a1> <8ea1a1ab> 99
|
||||
<8ea1a1ac> <8ea1a1ac> 13646
|
||||
<8ea1a1ad> <8ea1a1ba> 111
|
||||
<8ea1a1bb> <8ea1a1bb> 124
|
||||
<8ea1a1bc> <8ea1a1bc> 126
|
||||
<8ea1a1bd> <8ea1a1bd> 126
|
||||
<8ea1a1be> <8ea1a1bf> 130
|
||||
<8ea1a1c0> <8ea1a1c1> 130
|
||||
<8ea1a1c2> <8ea1a1c3> 134
|
||||
<8ea1a1c4> <8ea1a1c5> 134
|
||||
<8ea1a1c6> <8ea1a1c7> 138
|
||||
<8ea1a1c8> <8ea1a1c9> 138
|
||||
<8ea1a1ca> <8ea1a1cb> 142
|
||||
<8ea1a1cc> <8ea1a1cd> 142
|
||||
<8ea1a1ce> <8ea1a1cf> 146
|
||||
<8ea1a1d0> <8ea1a1d1> 146
|
||||
<8ea1a1d2> <8ea1a1d3> 150
|
||||
<8ea1a1d4> <8ea1a1d5> 150
|
||||
<8ea1a1d6> <8ea1a1d7> 154
|
||||
<8ea1a1d8> <8ea1a1d9> 154
|
||||
<8ea1a1da> <8ea1a1db> 158
|
||||
<8ea1a1dc> <8ea1a1fe> 158
|
||||
<8ea1a2a1> <8ea1a2c3> 193
|
||||
<8ea1a2c4> <8ea1a2c4> 13647
|
||||
<8ea1a2c5> <8ea1a2fe> 229
|
||||
<8ea1a3a1> <8ea1a3ce> 287
|
||||
<8ea1a4a1> <8ea1a4fe> 333
|
||||
<8ea1a5a1> <8ea1a5ec> 427
|
||||
<8ea1a5ee> <8ea1a5f0> 503
|
||||
<8ea1a6a1> <8ea1a6be> 506
|
||||
<8ea1a7a1> <8ea1a7a1> 595
|
||||
<8ea1a7a2> <8ea1a7a4> 536
|
||||
<8ea1a7a5> <8ea1a7a5> 596
|
||||
<8ea1a7a6> <8ea1a7a6> 539
|
||||
<8ea1a7a7> <8ea1a7a7> 602
|
||||
<8ea1a7a8> <8ea1a7a8> 540
|
||||
<8ea1a7a9> <8ea1a7ac> 603
|
||||
<8ea1a7ad> <8ea1a7af> 541
|
||||
<8ea1a7b0> <8ea1a7b0> 607
|
||||
<8ea1a7b1> <8ea1a7b1> 5998
|
||||
<8ea1a7b2> <8ea1a7b2> 608
|
||||
<8ea1a7b3> <8ea1a7b3> 610
|
||||
<8ea1a7b4> <8ea1a7b4> 544
|
||||
<8ea1a7b5> <8ea1a7b5> 611
|
||||
<8ea1a7b6> <8ea1a7b6> 5999
|
||||
<8ea1a7b7> <8ea1a7b7> 545
|
||||
<8ea1a7b8> <8ea1a7b9> 612
|
||||
<8ea1a7ba> <8ea1a7ba> 546
|
||||
<8ea1a7bb> <8ea1a7bb> 6000
|
||||
<8ea1a7bc> <8ea1a7bc> 547
|
||||
<8ea1a7bd> <8ea1a7bd> 614
|
||||
<8ea1a7be> <8ea1a7be> 633
|
||||
<8ea1a7bf> <8ea1a7bf> 6005
|
||||
<8ea1a7c0> <8ea1a7c1> 634
|
||||
<8ea1a7c2> <8ea1a7c2> 548
|
||||
<8ea1a7c3> <8ea1a7c6> 636
|
||||
<8ea1a7c7> <8ea1a7c7> 549
|
||||
<8ea1a7c8> <8ea1a7cb> 642
|
||||
<8ea1a7cc> <8ea1a7cc> 6006
|
||||
<8ea1a7cd> <8ea1a7cd> 646
|
||||
<8ea1a7ce> <8ea1a7ce> 550
|
||||
<8ea1a7cf> <8ea1a7d0> 648
|
||||
<8ea1a7d1> <8ea1a7d2> 652
|
||||
<8ea1a7d3> <8ea1a7d5> 551
|
||||
<8ea1a7d6> <8ea1a7d8> 654
|
||||
<8ea1a7d9> <8ea1a7da> 554
|
||||
<8ea1a7db> <8ea1a7db> 6007
|
||||
<8ea1a7dc> <8ea1a7df> 720
|
||||
<8ea1a7e0> <8ea1a7e0> 725
|
||||
<8ea1a7e1> <8ea1a7e1> 556
|
||||
<8ea1a7e2> <8ea1a7e5> 726
|
||||
<8ea1a7e6> <8ea1a7e6> 557
|
||||
<8ea1a7e7> <8ea1a7ed> 730
|
||||
<8ea1a7ee> <8ea1a7ee> 6026
|
||||
<8ea1a7ef> <8ea1a7f2> 737
|
||||
<8ea1a7f3> <8ea1a7f3> 6028
|
||||
<8ea1a7f4> <8ea1a7f8> 741
|
||||
<8ea1a7f9> <8ea1a7f9> 6029
|
||||
<8ea1a7fa> <8ea1a7fd> 746
|
||||
<8ea1a7fe> <8ea1a7fe> 854
|
||||
<8ea1a8a1> <8ea1a8a6> 855
|
||||
<8ea1a8a7> <8ea1a8a7> 862
|
||||
<8ea1a8a8> <8ea1a8a8> 866
|
||||
<8ea1a8a9> <8ea1a8aa> 558
|
||||
<8ea1a8ab> <8ea1a8b2> 867
|
||||
<8ea1a8b3> <8ea1a8b3> 6066
|
||||
<8ea1a8b4> <8ea1a8b6> 875
|
||||
<8ea1a8b7> <8ea1a8ba> 1014
|
||||
<8ea1a8bb> <8ea1a8bb> 6162
|
||||
<8ea1a8bc> <8ea1a8be> 1018
|
||||
<8ea1a8bf> <8ea1a8c3> 1022
|
||||
<8ea1a8c4> <8ea1a8cc> 1029
|
||||
<8ea1a8cd> <8ea1a8cd> 6163
|
||||
<8ea1a8ce> <8ea1a8ce> 6168
|
||||
<8ea1a8cf> <8ea1a8d2> 1039
|
||||
<8ea1a8d3> <8ea1a8d3> 6169
|
||||
<8ea1a8d4> <8ea1a8d9> 1288
|
||||
<8ea1a8da> <8ea1a8da> 6375
|
||||
<8ea1a8db> <8ea1a8e2> 1294
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<8ea1a8e3> <8ea1a8e3> 560
|
||||
<8ea1a8e4> <8ea1a8e4> 1307
|
||||
<8ea1a8e5> <8ea1a8e7> 1312
|
||||
<8ea1a8e8> <8ea1a8eb> 1686
|
||||
<8ea1a8ec> <8ea1a8ec> 561
|
||||
<8ea1a8ed> <8ea1a8f0> 1695
|
||||
<8ea1a8f1> <8ea1a8fb> 2086
|
||||
<8ea1a8fc> <8ea1a8fe> 2549
|
||||
<8ea1a9a1> <8ea1a9a1> 7731
|
||||
<8ea1a9a2> <8ea1a9a2> 2552
|
||||
<8ea1a9a3> <8ea1a9a3> 7732
|
||||
<8ea1a9a4> <8ea1a9a5> 2553
|
||||
<8ea1a9a6> <8ea1a9ab> 3041
|
||||
<8ea1a9ac> <8ea1a9ae> 3515
|
||||
<8ea1a9af> <8ea1a9af> 9056
|
||||
<8ea1a9b0> <8ea1a9b0> 9746
|
||||
<8ea1a9b1> <8ea1a9b3> 3963
|
||||
<8ea1a9b4> <8ea1a9b5> 4352
|
||||
<8ea1a9b6> <8ea1a9b6> 4745
|
||||
<8ea1a9b7> <8ea1a9b8> 5042
|
||||
<8ea1a9b9> <8ea1a9b9> 12045
|
||||
<8ea1c2a1> <8ea1c2c1> 562
|
||||
<8ea1c4a1> <8ea1c4fe> 595
|
||||
<8ea1c5a1> <8ea1c5fe> 689
|
||||
<8ea1c6a1> <8ea1c6fe> 783
|
||||
<8ea1c7a1> <8ea1c7fe> 877
|
||||
<8ea1c8a1> <8ea1c8fe> 971
|
||||
<8ea1c9a1> <8ea1c9fe> 1065
|
||||
<8ea1caa1> <8ea1cafe> 1159
|
||||
<8ea1cba1> <8ea1cbfe> 1253
|
||||
<8ea1cca1> <8ea1ccfe> 1347
|
||||
<8ea1cda1> <8ea1cdfe> 1441
|
||||
<8ea1cea1> <8ea1cefe> 1535
|
||||
<8ea1cfa1> <8ea1cffe> 1629
|
||||
<8ea1d0a1> <8ea1d0fe> 1723
|
||||
<8ea1d1a1> <8ea1d1fe> 1817
|
||||
<8ea1d2a1> <8ea1d2fe> 1911
|
||||
<8ea1d3a1> <8ea1d3fe> 2005
|
||||
<8ea1d4a1> <8ea1d4fe> 2099
|
||||
<8ea1d5a1> <8ea1d5fe> 2193
|
||||
<8ea1d6a1> <8ea1d6fe> 2287
|
||||
<8ea1d7a1> <8ea1d7fe> 2381
|
||||
<8ea1d8a1> <8ea1d8fe> 2475
|
||||
<8ea1d9a1> <8ea1d9fe> 2569
|
||||
<8ea1daa1> <8ea1dafe> 2663
|
||||
<8ea1dba1> <8ea1dbfe> 2757
|
||||
<8ea1dca1> <8ea1dcfe> 2851
|
||||
<8ea1dda1> <8ea1ddfe> 2945
|
||||
<8ea1dea1> <8ea1defe> 3039
|
||||
<8ea1dfa1> <8ea1dffe> 3133
|
||||
<8ea1e0a1> <8ea1e0fe> 3227
|
||||
<8ea1e1a1> <8ea1e1fe> 3321
|
||||
<8ea1e2a1> <8ea1e2fe> 3415
|
||||
<8ea1e3a1> <8ea1e3fe> 3509
|
||||
<8ea1e4a1> <8ea1e4fe> 3603
|
||||
<8ea1e5a1> <8ea1e5fe> 3697
|
||||
<8ea1e6a1> <8ea1e6fe> 3791
|
||||
<8ea1e7a1> <8ea1e7fe> 3885
|
||||
<8ea1e8a1> <8ea1e8fe> 3979
|
||||
<8ea1e9a1> <8ea1e9fe> 4073
|
||||
<8ea1eaa1> <8ea1eafe> 4167
|
||||
<8ea1eba1> <8ea1ebfe> 4261
|
||||
<8ea1eca1> <8ea1ecfe> 4355
|
||||
<8ea1eda1> <8ea1edfe> 4449
|
||||
<8ea1eea1> <8ea1eefe> 4543
|
||||
<8ea1efa1> <8ea1effe> 4637
|
||||
<8ea1f0a1> <8ea1f0fe> 4731
|
||||
<8ea1f1a1> <8ea1f1fe> 4825
|
||||
<8ea1f2a1> <8ea1f2fe> 4919
|
||||
<8ea1f3a1> <8ea1f3fe> 5013
|
||||
<8ea1f4a1> <8ea1f4fe> 5107
|
||||
<8ea1f5a1> <8ea1f5fe> 5201
|
||||
<8ea1f6a1> <8ea1f6fe> 5295
|
||||
<8ea1f7a1> <8ea1f7fe> 5389
|
||||
<8ea1f8a1> <8ea1f8fe> 5483
|
||||
<8ea1f9a1> <8ea1f9fe> 5577
|
||||
<8ea1faa1> <8ea1fafe> 5671
|
||||
<8ea1fba1> <8ea1fbfe> 5765
|
||||
<8ea1fca1> <8ea1fcfe> 5859
|
||||
<8ea1fda1> <8ea1fdcb> 5953
|
||||
<8ea2a1a1> <8ea2a1fe> 5996
|
||||
<8ea2a2a1> <8ea2a2fe> 6090
|
||||
<8ea2a3a1> <8ea2a3fe> 6184
|
||||
<8ea2a4a1> <8ea2a4fe> 6278
|
||||
<8ea2a5a1> <8ea2a5fe> 6372
|
||||
<8ea2a6a1> <8ea2a6fe> 6466
|
||||
<8ea2a7a1> <8ea2a7fe> 6560
|
||||
<8ea2a8a1> <8ea2a8fe> 6654
|
||||
<8ea2a9a1> <8ea2a9fe> 6748
|
||||
<8ea2aaa1> <8ea2aafe> 6842
|
||||
<8ea2aba1> <8ea2abfe> 6936
|
||||
<8ea2aca1> <8ea2acfe> 7030
|
||||
<8ea2ada1> <8ea2adfe> 7124
|
||||
<8ea2aea1> <8ea2aefe> 7218
|
||||
<8ea2afa1> <8ea2affe> 7312
|
||||
<8ea2b0a1> <8ea2b0fe> 7406
|
||||
<8ea2b1a1> <8ea2b1fe> 7500
|
||||
<8ea2b2a1> <8ea2b2fe> 7594
|
||||
<8ea2b3a1> <8ea2b3fe> 7688
|
||||
<8ea2b4a1> <8ea2b4fe> 7782
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<8ea2b5a1> <8ea2b5fe> 7876
|
||||
<8ea2b6a1> <8ea2b6fe> 7970
|
||||
<8ea2b7a1> <8ea2b7fe> 8064
|
||||
<8ea2b8a1> <8ea2b8fe> 8158
|
||||
<8ea2b9a1> <8ea2b9fe> 8252
|
||||
<8ea2baa1> <8ea2bafe> 8346
|
||||
<8ea2bba1> <8ea2bbfe> 8440
|
||||
<8ea2bca1> <8ea2bcfe> 8534
|
||||
<8ea2bda1> <8ea2bdfe> 8628
|
||||
<8ea2bea1> <8ea2befe> 8722
|
||||
<8ea2bfa1> <8ea2bffe> 8816
|
||||
<8ea2c0a1> <8ea2c0fe> 8910
|
||||
<8ea2c1a1> <8ea2c1fe> 9004
|
||||
<8ea2c2a1> <8ea2c2fe> 9098
|
||||
<8ea2c3a1> <8ea2c3fe> 9192
|
||||
<8ea2c4a1> <8ea2c4fe> 9286
|
||||
<8ea2c5a1> <8ea2c5fe> 9380
|
||||
<8ea2c6a1> <8ea2c6fe> 9474
|
||||
<8ea2c7a1> <8ea2c7fe> 9568
|
||||
<8ea2c8a1> <8ea2c8fe> 9662
|
||||
<8ea2c9a1> <8ea2c9fe> 9756
|
||||
<8ea2caa1> <8ea2cafe> 9850
|
||||
<8ea2cba1> <8ea2cbfe> 9944
|
||||
<8ea2cca1> <8ea2ccfe> 10038
|
||||
<8ea2cda1> <8ea2cdfe> 10132
|
||||
<8ea2cea1> <8ea2cefe> 10226
|
||||
<8ea2cfa1> <8ea2cffe> 10320
|
||||
<8ea2d0a1> <8ea2d0fe> 10414
|
||||
<8ea2d1a1> <8ea2d1fe> 10508
|
||||
<8ea2d2a1> <8ea2d2fe> 10602
|
||||
<8ea2d3a1> <8ea2d3fe> 10696
|
||||
<8ea2d4a1> <8ea2d4fe> 10790
|
||||
<8ea2d5a1> <8ea2d5fe> 10884
|
||||
<8ea2d6a1> <8ea2d6fe> 10978
|
||||
<8ea2d7a1> <8ea2d7fe> 11072
|
||||
<8ea2d8a1> <8ea2d8fe> 11166
|
||||
<8ea2d9a1> <8ea2d9fe> 11260
|
||||
<8ea2daa1> <8ea2dafe> 11354
|
||||
<8ea2dba1> <8ea2dbfe> 11448
|
||||
<8ea2dca1> <8ea2dcfe> 11542
|
||||
<8ea2dda1> <8ea2ddfe> 11636
|
||||
<8ea2dea1> <8ea2defe> 11730
|
||||
<8ea2dfa1> <8ea2dffe> 11824
|
||||
<8ea2e0a1> <8ea2e0fe> 11918
|
||||
<8ea2e1a1> <8ea2e1fe> 12012
|
||||
<8ea2e2a1> <8ea2e2fe> 12106
|
||||
<8ea2e3a1> <8ea2e3fe> 12200
|
||||
<8ea2e4a1> <8ea2e4fe> 12294
|
||||
<8ea2e5a1> <8ea2e5fe> 12388
|
||||
<8ea2e6a1> <8ea2e6fe> 12482
|
||||
<8ea2e7a1> <8ea2e7fe> 12576
|
||||
<8ea2e8a1> <8ea2e8fe> 12670
|
||||
<8ea2e9a1> <8ea2e9fe> 12764
|
||||
<8ea2eaa1> <8ea2eafe> 12858
|
||||
<8ea2eba1> <8ea2ebfe> 12952
|
||||
<8ea2eca1> <8ea2ecfe> 13046
|
||||
<8ea2eda1> <8ea2edfe> 13140
|
||||
<8ea2eea1> <8ea2eefe> 13234
|
||||
<8ea2efa1> <8ea2effe> 13328
|
||||
<8ea2f0a1> <8ea2f0fe> 13422
|
||||
<8ea2f1a1> <8ea2f1fe> 13516
|
||||
<8ea2f2a1> <8ea2f2c4> 13610
|
||||
<a1a1> <a1ab> 99
|
||||
<a1ac> <a1ac> 13646
|
||||
<a1ad> <a1ba> 111
|
||||
<a1bb> <a1bb> 124
|
||||
<a1bc> <a1bc> 126
|
||||
<a1bd> <a1bd> 126
|
||||
<a1be> <a1bf> 130
|
||||
<a1c0> <a1c1> 130
|
||||
<a1c2> <a1c3> 134
|
||||
<a1c4> <a1c5> 134
|
||||
<a1c6> <a1c7> 138
|
||||
<a1c8> <a1c9> 138
|
||||
<a1ca> <a1cb> 142
|
||||
<a1cc> <a1cd> 142
|
||||
<a1ce> <a1cf> 146
|
||||
<a1d0> <a1d1> 146
|
||||
<a1d2> <a1d3> 150
|
||||
<a1d4> <a1d5> 150
|
||||
<a1d6> <a1d7> 154
|
||||
<a1d8> <a1d9> 154
|
||||
<a1da> <a1db> 158
|
||||
<a1dc> <a1fe> 158
|
||||
<a2a1> <a2c3> 193
|
||||
<a2c4> <a2c4> 13647
|
||||
<a2c5> <a2fe> 229
|
||||
<a3a1> <a3ce> 287
|
||||
<a4a1> <a4fe> 333
|
||||
<a5a1> <a5ec> 427
|
||||
<a5ee> <a5f0> 503
|
||||
<a6a1> <a6be> 506
|
||||
<a7a1> <a7a1> 595
|
||||
<a7a2> <a7a4> 536
|
||||
<a7a5> <a7a5> 596
|
||||
<a7a6> <a7a6> 539
|
||||
<a7a7> <a7a7> 602
|
||||
<a7a8> <a7a8> 540
|
||||
<a7a9> <a7ac> 603
|
||||
<a7ad> <a7af> 541
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<a7b0> <a7b0> 607
|
||||
<a7b1> <a7b1> 5998
|
||||
<a7b2> <a7b2> 608
|
||||
<a7b3> <a7b3> 610
|
||||
<a7b4> <a7b4> 544
|
||||
<a7b5> <a7b5> 611
|
||||
<a7b6> <a7b6> 5999
|
||||
<a7b7> <a7b7> 545
|
||||
<a7b8> <a7b9> 612
|
||||
<a7ba> <a7ba> 546
|
||||
<a7bb> <a7bb> 6000
|
||||
<a7bc> <a7bc> 547
|
||||
<a7bd> <a7bd> 614
|
||||
<a7be> <a7be> 633
|
||||
<a7bf> <a7bf> 6005
|
||||
<a7c0> <a7c1> 634
|
||||
<a7c2> <a7c2> 548
|
||||
<a7c3> <a7c6> 636
|
||||
<a7c7> <a7c7> 549
|
||||
<a7c8> <a7cb> 642
|
||||
<a7cc> <a7cc> 6006
|
||||
<a7cd> <a7cd> 646
|
||||
<a7ce> <a7ce> 550
|
||||
<a7cf> <a7d0> 648
|
||||
<a7d1> <a7d2> 652
|
||||
<a7d3> <a7d5> 551
|
||||
<a7d6> <a7d8> 654
|
||||
<a7d9> <a7da> 554
|
||||
<a7db> <a7db> 6007
|
||||
<a7dc> <a7df> 720
|
||||
<a7e0> <a7e0> 725
|
||||
<a7e1> <a7e1> 556
|
||||
<a7e2> <a7e5> 726
|
||||
<a7e6> <a7e6> 557
|
||||
<a7e7> <a7ed> 730
|
||||
<a7ee> <a7ee> 6026
|
||||
<a7ef> <a7f2> 737
|
||||
<a7f3> <a7f3> 6028
|
||||
<a7f4> <a7f8> 741
|
||||
<a7f9> <a7f9> 6029
|
||||
<a7fa> <a7fd> 746
|
||||
<a7fe> <a7fe> 854
|
||||
<a8a1> <a8a6> 855
|
||||
<a8a7> <a8a7> 862
|
||||
<a8a8> <a8a8> 866
|
||||
<a8a9> <a8aa> 558
|
||||
<a8ab> <a8b2> 867
|
||||
<a8b3> <a8b3> 6066
|
||||
<a8b4> <a8b6> 875
|
||||
<a8b7> <a8ba> 1014
|
||||
<a8bb> <a8bb> 6162
|
||||
<a8bc> <a8be> 1018
|
||||
<a8bf> <a8c3> 1022
|
||||
<a8c4> <a8cc> 1029
|
||||
<a8cd> <a8cd> 6163
|
||||
<a8ce> <a8ce> 6168
|
||||
<a8cf> <a8d2> 1039
|
||||
<a8d3> <a8d3> 6169
|
||||
<a8d4> <a8d9> 1288
|
||||
<a8da> <a8da> 6375
|
||||
<a8db> <a8e2> 1294
|
||||
<a8e3> <a8e3> 560
|
||||
<a8e4> <a8e4> 1307
|
||||
<a8e5> <a8e7> 1312
|
||||
<a8e8> <a8eb> 1686
|
||||
<a8ec> <a8ec> 561
|
||||
<a8ed> <a8f0> 1695
|
||||
<a8f1> <a8fb> 2086
|
||||
<a8fc> <a8fe> 2549
|
||||
<a9a1> <a9a1> 7731
|
||||
<a9a2> <a9a2> 2552
|
||||
<a9a3> <a9a3> 7732
|
||||
<a9a4> <a9a5> 2553
|
||||
<a9a6> <a9ab> 3041
|
||||
<a9ac> <a9ae> 3515
|
||||
<a9af> <a9af> 9056
|
||||
<a9b0> <a9b0> 9746
|
||||
<a9b1> <a9b3> 3963
|
||||
<a9b4> <a9b5> 4352
|
||||
<a9b6> <a9b6> 4745
|
||||
<a9b7> <a9b8> 5042
|
||||
<a9b9> <a9b9> 12045
|
||||
<c2a1> <c2c1> 562
|
||||
<c4a1> <c4fe> 595
|
||||
<c5a1> <c5fe> 689
|
||||
<c6a1> <c6fe> 783
|
||||
<c7a1> <c7fe> 877
|
||||
<c8a1> <c8fe> 971
|
||||
<c9a1> <c9fe> 1065
|
||||
<caa1> <cafe> 1159
|
||||
<cba1> <cbfe> 1253
|
||||
<cca1> <ccfe> 1347
|
||||
<cda1> <cdfe> 1441
|
||||
<cea1> <cefe> 1535
|
||||
<cfa1> <cffe> 1629
|
||||
<d0a1> <d0fe> 1723
|
||||
<d1a1> <d1fe> 1817
|
||||
<d2a1> <d2fe> 1911
|
||||
<d3a1> <d3fe> 2005
|
||||
<d4a1> <d4fe> 2099
|
||||
endcidrange
|
||||
|
||||
41 begincidrange
|
||||
<d5a1> <d5fe> 2193
|
||||
<d6a1> <d6fe> 2287
|
||||
<d7a1> <d7fe> 2381
|
||||
<d8a1> <d8fe> 2475
|
||||
<d9a1> <d9fe> 2569
|
||||
<daa1> <dafe> 2663
|
||||
<dba1> <dbfe> 2757
|
||||
<dca1> <dcfe> 2851
|
||||
<dda1> <ddfe> 2945
|
||||
<dea1> <defe> 3039
|
||||
<dfa1> <dffe> 3133
|
||||
<e0a1> <e0fe> 3227
|
||||
<e1a1> <e1fe> 3321
|
||||
<e2a1> <e2fe> 3415
|
||||
<e3a1> <e3fe> 3509
|
||||
<e4a1> <e4fe> 3603
|
||||
<e5a1> <e5fe> 3697
|
||||
<e6a1> <e6fe> 3791
|
||||
<e7a1> <e7fe> 3885
|
||||
<e8a1> <e8fe> 3979
|
||||
<e9a1> <e9fe> 4073
|
||||
<eaa1> <eafe> 4167
|
||||
<eba1> <ebfe> 4261
|
||||
<eca1> <ecfe> 4355
|
||||
<eda1> <edfe> 4449
|
||||
<eea1> <eefe> 4543
|
||||
<efa1> <effe> 4637
|
||||
<f0a1> <f0fe> 4731
|
||||
<f1a1> <f1fe> 4825
|
||||
<f2a1> <f2fe> 4919
|
||||
<f3a1> <f3fe> 5013
|
||||
<f4a1> <f4fe> 5107
|
||||
<f5a1> <f5fe> 5201
|
||||
<f6a1> <f6fe> 5295
|
||||
<f7a1> <f7fe> 5389
|
||||
<f8a1> <f8fe> 5483
|
||||
<f9a1> <f9fe> 5577
|
||||
<faa1> <fafe> 5671
|
||||
<fba1> <fbfe> 5765
|
||||
<fca1> <fcfe> 5859
|
||||
<fda1> <fdcb> 5953
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
package org.apache.fontbox.cmap;
|
||||
|
||||
public class CodespaceRange {
|
||||
private byte[] start;
|
||||
|
||||
private byte[] end;
|
||||
|
||||
private int startInt;
|
||||
|
||||
private int endInt;
|
||||
|
||||
private int codeLength = 0;
|
||||
|
||||
public int getCodeLength() {
|
||||
return this.codeLength;
|
||||
}
|
||||
|
||||
public byte[] getEnd() {
|
||||
return this.end;
|
||||
}
|
||||
|
||||
void setEnd(byte[] endBytes) {
|
||||
this.end = endBytes;
|
||||
this.endInt = toInt(endBytes, endBytes.length);
|
||||
}
|
||||
|
||||
public byte[] getStart() {
|
||||
return this.start;
|
||||
}
|
||||
|
||||
void setStart(byte[] startBytes) {
|
||||
this.start = startBytes;
|
||||
this.codeLength = this.start.length;
|
||||
this.startInt = toInt(startBytes, startBytes.length);
|
||||
}
|
||||
|
||||
public boolean matches(byte[] code) {
|
||||
return isFullMatch(code, code.length);
|
||||
}
|
||||
|
||||
private int toInt(byte[] data, int dataLen) {
|
||||
int code = 0;
|
||||
for (int i = 0; i < dataLen; i++) {
|
||||
code <<= 8;
|
||||
code |= (data[i] + 256) % 256;
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
public boolean isFullMatch(byte[] code, int codeLen) {
|
||||
if (codeLen == this.codeLength) {
|
||||
int value = toInt(code, codeLen);
|
||||
if (value >= this.startInt && value <= this.endInt)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,343 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (ETen-B5-H)
|
||||
%%Title: (ETen-B5-H Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /ETen-B5-H def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 200 def
|
||||
/XUID [1 10 25390] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
2 begincodespacerange
|
||||
<00> <80>
|
||||
<A140> <FEFE>
|
||||
endcodespacerange
|
||||
|
||||
1 beginnotdefrange
|
||||
<00> <1f> 13648
|
||||
endnotdefrange
|
||||
|
||||
100 begincidrange
|
||||
<20> <7e> 13648
|
||||
<a140> <a158> 99
|
||||
<a159> <a15c> 13743
|
||||
<a15d> <a17e> 128
|
||||
<a1a1> <a1f5> 162
|
||||
<a1f6> <a1f6> 248
|
||||
<a1f7> <a1f7> 247
|
||||
<a1f8> <a1fe> 249
|
||||
<a240> <a27e> 256
|
||||
<a2a1> <a2fe> 319
|
||||
<a340> <a37e> 413
|
||||
<a3a1> <a3bb> 476
|
||||
<a3bd> <a3bf> 503
|
||||
<a440> <a47e> 595
|
||||
<a4a1> <a4fe> 658
|
||||
<a540> <a57e> 752
|
||||
<a5a1> <a5fe> 815
|
||||
<a640> <a67e> 909
|
||||
<a6a1> <a6fe> 972
|
||||
<a740> <a77e> 1066
|
||||
<a7a1> <a7fe> 1129
|
||||
<a840> <a87e> 1223
|
||||
<a8a1> <a8fe> 1286
|
||||
<a940> <a97e> 1380
|
||||
<a9a1> <a9fe> 1443
|
||||
<aa40> <aa7e> 1537
|
||||
<aaa1> <aafe> 1600
|
||||
<ab40> <ab7e> 1694
|
||||
<aba1> <abfe> 1757
|
||||
<ac40> <ac7e> 1851
|
||||
<aca1> <acfd> 1914
|
||||
<acfe> <acfe> 2431
|
||||
<ad40> <ad7e> 2007
|
||||
<ada1> <adfe> 2070
|
||||
<ae40> <ae7e> 2164
|
||||
<aea1> <aefe> 2227
|
||||
<af40> <af7e> 2321
|
||||
<afa1> <afcf> 2384
|
||||
<afd0> <affe> 2432
|
||||
<b040> <b07e> 2479
|
||||
<b0a1> <b0fe> 2542
|
||||
<b140> <b17e> 2636
|
||||
<b1a1> <b1fe> 2699
|
||||
<b240> <b27e> 2793
|
||||
<b2a1> <b2fe> 2856
|
||||
<b340> <b37e> 2950
|
||||
<b3a1> <b3fe> 3013
|
||||
<b440> <b47e> 3107
|
||||
<b4a1> <b4fe> 3170
|
||||
<b540> <b57e> 3264
|
||||
<b5a1> <b5fe> 3327
|
||||
<b640> <b67e> 3421
|
||||
<b6a1> <b6fe> 3484
|
||||
<b740> <b77e> 3578
|
||||
<b7a1> <b7fe> 3641
|
||||
<b840> <b87e> 3735
|
||||
<b8a1> <b8fe> 3798
|
||||
<b940> <b97e> 3892
|
||||
<b9a1> <b9fe> 3955
|
||||
<ba40> <ba7e> 4049
|
||||
<baa1> <bafe> 4112
|
||||
<bb40> <bb7e> 4206
|
||||
<bba1> <bbc7> 4269
|
||||
<bbc8> <bbfe> 4309
|
||||
<bc40> <bc7e> 4364
|
||||
<bca1> <bcfe> 4427
|
||||
<bd40> <bd7e> 4521
|
||||
<bda1> <bdfe> 4584
|
||||
<be40> <be51> 4678
|
||||
<be52> <be52> 4308
|
||||
<be53> <be7e> 4696
|
||||
<bea1> <befe> 4740
|
||||
<bf40> <bf7e> 4834
|
||||
<bfa1> <bffe> 4897
|
||||
<c040> <c07e> 4991
|
||||
<c0a1> <c0fe> 5054
|
||||
<c140> <c17e> 5148
|
||||
<c1a1> <c1aa> 5211
|
||||
<c1ab> <c1fe> 5222
|
||||
<c240> <c27e> 5306
|
||||
<c2a1> <c2ca> 5369
|
||||
<c2cb> <c2cb> 5221
|
||||
<c2cc> <c2fe> 5411
|
||||
<c340> <c360> 5462
|
||||
<c361> <c37e> 5496
|
||||
<c3a1> <c3b8> 5526
|
||||
<c3b9> <c3b9> 5551
|
||||
<c3ba> <c3ba> 5550
|
||||
<c3bb> <c3fe> 5552
|
||||
<c440> <c455> 5620
|
||||
<c456> <c456> 5495
|
||||
<c457> <c47e> 5642
|
||||
<c4a1> <c4fe> 5682
|
||||
<c540> <c57e> 5776
|
||||
<c5a1> <c5fe> 5839
|
||||
<c640> <c67e> 5933
|
||||
<c6a1> <c6be> 506
|
||||
<c6bf> <c6d7> 537
|
||||
<c6d8> <c6de> 13747
|
||||
<c6df> <c6df> 6036
|
||||
endcidrange
|
||||
|
||||
100 begincidrange
|
||||
<c6e0> <c6fe> 13754
|
||||
<c740> <c77e> 13785
|
||||
<c7a1> <c7fe> 13848
|
||||
<c840> <c87e> 13942
|
||||
<c8a1> <c8d3> 14005
|
||||
<c940> <c949> 5996
|
||||
<c94a> <c94a> 628
|
||||
<c94b> <c96b> 6006
|
||||
<c96c> <c97e> 6040
|
||||
<c9a1> <c9bd> 6059
|
||||
<c9be> <c9be> 6039
|
||||
<c9bf> <c9ec> 6088
|
||||
<c9ed> <c9fe> 6135
|
||||
<ca40> <ca7e> 6153
|
||||
<caa1> <caf6> 6216
|
||||
<caf7> <caf7> 6134
|
||||
<caf8> <cafe> 6302
|
||||
<cb40> <cb7e> 6309
|
||||
<cba1> <cbfe> 6372
|
||||
<cc40> <cc7e> 6466
|
||||
<cca1> <ccfe> 6529
|
||||
<cd40> <cd7e> 6623
|
||||
<cda1> <cdfe> 6686
|
||||
<ce40> <ce7e> 6780
|
||||
<cea1> <cefe> 6843
|
||||
<cf40> <cf7e> 6937
|
||||
<cfa1> <cffe> 7000
|
||||
<d040> <d07e> 7094
|
||||
<d0a1> <d0fe> 7157
|
||||
<d140> <d17e> 7251
|
||||
<d1a1> <d1fe> 7314
|
||||
<d240> <d27e> 7408
|
||||
<d2a1> <d2fe> 7471
|
||||
<d340> <d37e> 7565
|
||||
<d3a1> <d3fe> 7628
|
||||
<d440> <d47e> 7722
|
||||
<d4a1> <d4fe> 7785
|
||||
<d540> <d57e> 7879
|
||||
<d5a1> <d5fe> 7942
|
||||
<d640> <d67e> 8036
|
||||
<d6a1> <d6cb> 8099
|
||||
<d6cc> <d6cc> 8788
|
||||
<d6cd> <d6fe> 8143
|
||||
<d740> <d779> 8193
|
||||
<d77a> <d77a> 8889
|
||||
<d77b> <d77e> 8251
|
||||
<d7a1> <d7fe> 8255
|
||||
<d840> <d87e> 8349
|
||||
<d8a1> <d8fe> 8412
|
||||
<d940> <d97e> 8506
|
||||
<d9a1> <d9fe> 8569
|
||||
<da40> <da7e> 8663
|
||||
<daa1> <dade> 8726
|
||||
<dadf> <dadf> 8142
|
||||
<dae0> <dafe> 8789
|
||||
<db40> <db7e> 8820
|
||||
<dba1> <dba6> 8883
|
||||
<dba7> <dbfe> 8890
|
||||
<dc40> <dc7e> 8978
|
||||
<dca1> <dcfe> 9041
|
||||
<dd40> <dd7e> 9135
|
||||
<dda1> <ddfb> 9198
|
||||
<ddfc> <ddfc> 9089
|
||||
<ddfd> <ddfe> 9289
|
||||
<de40> <de7e> 9291
|
||||
<dea1> <defe> 9354
|
||||
<df40> <df7e> 9448
|
||||
<dfa1> <dffe> 9511
|
||||
<e040> <e07e> 9605
|
||||
<e0a1> <e0fe> 9668
|
||||
<e140> <e17e> 9762
|
||||
<e1a1> <e1fe> 9825
|
||||
<e240> <e27e> 9919
|
||||
<e2a1> <e2fe> 9982
|
||||
<e340> <e37e> 10076
|
||||
<e3a1> <e3fe> 10139
|
||||
<e440> <e47e> 10233
|
||||
<e4a1> <e4fe> 10296
|
||||
<e540> <e57e> 10390
|
||||
<e5a1> <e5fe> 10453
|
||||
<e640> <e67e> 10547
|
||||
<e6a1> <e6fe> 10610
|
||||
<e740> <e77e> 10704
|
||||
<e7a1> <e7fe> 10767
|
||||
<e840> <e87e> 10861
|
||||
<e8a1> <e8a2> 10924
|
||||
<e8a3> <e8fe> 10927
|
||||
<e940> <e975> 11019
|
||||
<e976> <e97e> 11074
|
||||
<e9a1> <e9fe> 11083
|
||||
<ea40> <ea7e> 11177
|
||||
<eaa1> <eafe> 11240
|
||||
<eb40> <eb5a> 11334
|
||||
<eb5b> <eb7e> 11362
|
||||
<eba1> <ebf0> 11398
|
||||
<ebf1> <ebf1> 10926
|
||||
<ebf2> <ebfe> 11478
|
||||
<ec40> <ec7e> 11491
|
||||
<eca1> <ecdd> 11554
|
||||
<ecde> <ecde> 11073
|
||||
endcidrange
|
||||
|
||||
54 begincidrange
|
||||
<ecdf> <ecfe> 11615
|
||||
<ed40> <ed7e> 11647
|
||||
<eda1> <eda9> 11710
|
||||
<edaa> <edfe> 11720
|
||||
<ee40> <ee7e> 11805
|
||||
<eea1> <eeea> 11868
|
||||
<eeeb> <eeeb> 12308
|
||||
<eeec> <eefe> 11942
|
||||
<ef40> <ef7e> 11961
|
||||
<efa1> <effe> 12024
|
||||
<f040> <f055> 12118
|
||||
<f056> <f056> 11719
|
||||
<f057> <f07e> 12140
|
||||
<f0a1> <f0ca> 12180
|
||||
<f0cb> <f0cb> 11361
|
||||
<f0cc> <f0fe> 12222
|
||||
<f140> <f162> 12273
|
||||
<f163> <f16a> 12309
|
||||
<f16b> <f16b> 12640
|
||||
<f16c> <f17e> 12317
|
||||
<f1a1> <f1fe> 12336
|
||||
<f240> <f267> 12430
|
||||
<f268> <f268> 12783
|
||||
<f269> <f27e> 12470
|
||||
<f2a1> <f2c2> 12492
|
||||
<f2c3> <f2fe> 12527
|
||||
<f340> <f374> 12587
|
||||
<f375> <f37e> 12641
|
||||
<f3a1> <f3fe> 12651
|
||||
<f440> <f465> 12745
|
||||
<f466> <f47e> 12784
|
||||
<f4a1> <f4b4> 12809
|
||||
<f4b5> <f4b5> 12526
|
||||
<f4b6> <f4fc> 12829
|
||||
<f4fd> <f4fe> 12901
|
||||
<f540> <f57e> 12903
|
||||
<f5a1> <f5fe> 12966
|
||||
<f640> <f662> 13060
|
||||
<f663> <f663> 12900
|
||||
<f664> <f67e> 13095
|
||||
<f6a1> <f6fe> 13122
|
||||
<f740> <f77e> 13216
|
||||
<f7a1> <f7fe> 13279
|
||||
<f840> <f87e> 13373
|
||||
<f8a1> <f8fe> 13436
|
||||
<f940> <f976> 13530
|
||||
<f977> <f97e> 13586
|
||||
<f9a1> <f9c3> 13594
|
||||
<f9c4> <f9c4> 13585
|
||||
<f9c5> <f9c5> 13629
|
||||
<f9c6> <f9c6> 13641
|
||||
<f9c7> <f9d1> 13630
|
||||
<f9d2> <f9d5> 13642
|
||||
<f9d6> <f9fe> 14056
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (ETen-B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (ETen-B5-H)
|
||||
%%BeginResource: CMap (ETen-B5-V)
|
||||
%%Title: (ETen-B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/ETen-B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /ETen-B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 920 def
|
||||
/XUID [1 10 25391] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
13 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
<c6e4> <c6e5> 14097
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (ETen-B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (ETen-B5-H)
|
||||
%%BeginResource: CMap (ETenms-B5-H)
|
||||
%%Title: (ETenms-B5-H Adobe CNS1 0)
|
||||
%%Version: 10.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
|
||||
|
||||
/ETen-B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /ETenms-B5-H def
|
||||
/CMapVersion 10.002 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25596] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
1 begincidrange
|
||||
<20> <7e> 1
|
||||
endcidrange
|
||||
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (ETenms-B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (ETenms-B5-H)
|
||||
%%BeginResource: CMap (ETenms-B5-V)
|
||||
%%Title: (ETenms-B5-V Adobe CNS1 0)
|
||||
%%Version: 10.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
|
||||
|
||||
/ETenms-B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /ETenms-B5-V def
|
||||
/CMapVersion 10.002 def
|
||||
/CMapType 1 def
|
||||
|
||||
/XUID [1 10 25597] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
6 begincidchar
|
||||
<a14b> 13646
|
||||
<a14c> 109
|
||||
<a156> 312
|
||||
<a158> 122
|
||||
<a15a> 13743
|
||||
<a15c> 13745
|
||||
endcidchar
|
||||
|
||||
12 begincidrange
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a17d> <a17e> 130
|
||||
<a1a1> <a1a2> 134
|
||||
<a1a3> <a1a4> 138
|
||||
<c6e4> <c6e5> 14097
|
||||
endcidrange
|
||||
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,207 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%BeginResource: CMap (EUC-H)
|
||||
%%Title: (EUC-H Adobe Japan1 1)
|
||||
%%Version: 10.003
|
||||
%%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
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 1 def
|
||||
end def
|
||||
|
||||
/CMapName /EUC-H def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 680 def
|
||||
/XUID [1 10 25329] def
|
||||
|
||||
/WMode 0 def
|
||||
|
||||
3 begincodespacerange
|
||||
<00> <80>
|
||||
<8EA0> <8EDF>
|
||||
<A1A1> <FEFE>
|
||||
endcodespacerange
|
||||
|
||||
1 beginnotdefrange
|
||||
<00> <1f> 231
|
||||
endnotdefrange
|
||||
|
||||
100 begincidrange
|
||||
<20> <7e> 231
|
||||
<8ea0> <8edf> 326
|
||||
<a1a1> <a1fe> 633
|
||||
<a2a1> <a2ae> 727
|
||||
<a2ba> <a2c1> 741
|
||||
<a2ca> <a2d0> 749
|
||||
<a2dc> <a2ea> 756
|
||||
<a2f2> <a2f9> 771
|
||||
<a2fe> <a2fe> 779
|
||||
<a3b0> <a3b9> 780
|
||||
<a3c1> <a3da> 790
|
||||
<a3e1> <a3fa> 816
|
||||
<a4a1> <a4f3> 842
|
||||
<a5a1> <a5f6> 925
|
||||
<a6a1> <a6b8> 1011
|
||||
<a6c1> <a6d8> 1035
|
||||
<a7a1> <a7c1> 1059
|
||||
<a7d1> <a7f1> 1092
|
||||
<a8a1> <a8a1> 7479
|
||||
<a8a2> <a8a2> 7481
|
||||
<a8a3> <a8a3> 7491
|
||||
<a8a4> <a8a4> 7495
|
||||
<a8a5> <a8a5> 7503
|
||||
<a8a6> <a8a6> 7499
|
||||
<a8a7> <a8a7> 7507
|
||||
<a8a8> <a8a8> 7523
|
||||
<a8a9> <a8a9> 7515
|
||||
<a8aa> <a8aa> 7531
|
||||
<a8ab> <a8ab> 7539
|
||||
<a8ac> <a8ac> 7480
|
||||
<a8ad> <a8ad> 7482
|
||||
<a8ae> <a8ae> 7494
|
||||
<a8af> <a8af> 7498
|
||||
<a8b0> <a8b0> 7506
|
||||
<a8b1> <a8b1> 7502
|
||||
<a8b2> <a8b2> 7514
|
||||
<a8b3> <a8b3> 7530
|
||||
<a8b4> <a8b4> 7522
|
||||
<a8b5> <a8b5> 7538
|
||||
<a8b6> <a8b6> 7554
|
||||
<a8b7> <a8b7> 7511
|
||||
<a8b8> <a8b8> 7526
|
||||
<a8b9> <a8b9> 7519
|
||||
<a8ba> <a8ba> 7534
|
||||
<a8bb> <a8bb> 7542
|
||||
<a8bc> <a8bc> 7508
|
||||
<a8bd> <a8bd> 7527
|
||||
<a8be> <a8be> 7516
|
||||
<a8bf> <a8bf> 7535
|
||||
<a8c0> <a8c0> 7545
|
||||
<b0a1> <b0fe> 1125
|
||||
<b1a1> <b1fe> 1219
|
||||
<b2a1> <b2fe> 1313
|
||||
<b3a1> <b3fe> 1407
|
||||
<b4a1> <b4fe> 1501
|
||||
<b5a1> <b5fe> 1595
|
||||
<b6a1> <b6fe> 1689
|
||||
<b7a1> <b7fe> 1783
|
||||
<b8a1> <b8fe> 1877
|
||||
<b9a1> <b9fe> 1971
|
||||
<baa1> <bafe> 2065
|
||||
<bba1> <bbfe> 2159
|
||||
<bca1> <bcfe> 2253
|
||||
<bda1> <bdfe> 2347
|
||||
<bea1> <befe> 2441
|
||||
<bfa1> <bffe> 2535
|
||||
<c0a1> <c0fe> 2629
|
||||
<c1a1> <c1fe> 2723
|
||||
<c2a1> <c2fe> 2817
|
||||
<c3a1> <c3fe> 2911
|
||||
<c4a1> <c4fe> 3005
|
||||
<c5a1> <c5fe> 3099
|
||||
<c6a1> <c6fe> 3193
|
||||
<c7a1> <c7fe> 3287
|
||||
<c8a1> <c8fe> 3381
|
||||
<c9a1> <c9fe> 3475
|
||||
<caa1> <cafe> 3569
|
||||
<cba1> <cbfe> 3663
|
||||
<cca1> <ccfe> 3757
|
||||
<cda1> <cdfe> 3851
|
||||
<cea1> <cefe> 3945
|
||||
<cfa1> <cfd3> 4039
|
||||
<d0a1> <d0fe> 4090
|
||||
<d1a1> <d1fe> 4184
|
||||
<d2a1> <d2fe> 4278
|
||||
<d3a1> <d3fe> 4372
|
||||
<d4a1> <d4fe> 4466
|
||||
<d5a1> <d5fe> 4560
|
||||
<d6a1> <d6fe> 4654
|
||||
<d7a1> <d7fe> 4748
|
||||
<d8a1> <d8fe> 4842
|
||||
<d9a1> <d9fe> 4936
|
||||
<daa1> <dafe> 5030
|
||||
<dba1> <dbfe> 5124
|
||||
<dca1> <dcfe> 5218
|
||||
<dda1> <ddfe> 5312
|
||||
<dea1> <defe> 5406
|
||||
<dfa1> <dffe> 5500
|
||||
<e0a1> <e0fe> 5594
|
||||
<e1a1> <e1fe> 5688
|
||||
endcidrange
|
||||
|
||||
20 begincidrange
|
||||
<e2a1> <e2fe> 5782
|
||||
<e3a1> <e3fe> 5876
|
||||
<e4a1> <e4fe> 5970
|
||||
<e5a1> <e5fe> 6064
|
||||
<e6a1> <e6fe> 6158
|
||||
<e7a1> <e7fe> 6252
|
||||
<e8a1> <e8fe> 6346
|
||||
<e9a1> <e9fe> 6440
|
||||
<eaa1> <eafe> 6534
|
||||
<eba1> <ebfe> 6628
|
||||
<eca1> <ecfe> 6722
|
||||
<eda1> <edfe> 6816
|
||||
<eea1> <eefe> 6910
|
||||
<efa1> <effe> 7004
|
||||
<f0a1> <f0fe> 7098
|
||||
<f1a1> <f1fe> 7192
|
||||
<f2a1> <f2fe> 7286
|
||||
<f3a1> <f3fe> 7380
|
||||
<f4a1> <f4a4> 7474
|
||||
<f4a5> <f4a6> 8284
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (EUC-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (EUC-H)
|
||||
%%BeginResource: CMap (EUC-V)
|
||||
%%Title: (EUC-V Adobe Japan1 1)
|
||||
%%Version: 12.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
|
||||
|
||||
/EUC-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (Japan1) def
|
||||
/Supplement 1 def
|
||||
end def
|
||||
|
||||
/CMapName /EUC-V def
|
||||
/CMapVersion 12.002 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 800 def
|
||||
/XUID [1 10 25330] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
27 begincidrange
|
||||
<a1a2> <a1a3> 7887
|
||||
<a1b1> <a1b2> 7889
|
||||
<a1bc> <a1be> 7891
|
||||
<a1c1> <a1c5> 7894
|
||||
<a1ca> <a1db> 7899
|
||||
<a1e1> <a1e1> 7917
|
||||
<a4a1> <a4a1> 7918
|
||||
<a4a3> <a4a3> 7919
|
||||
<a4a5> <a4a5> 7920
|
||||
<a4a7> <a4a7> 7921
|
||||
<a4a9> <a4a9> 7922
|
||||
<a4c3> <a4c3> 7923
|
||||
<a4e3> <a4e3> 7924
|
||||
<a4e5> <a4e5> 7925
|
||||
<a4e7> <a4e7> 7926
|
||||
<a4ee> <a4ee> 7927
|
||||
<a5a1> <a5a1> 7928
|
||||
<a5a3> <a5a3> 7929
|
||||
<a5a5> <a5a5> 7930
|
||||
<a5a7> <a5a7> 7931
|
||||
<a5a9> <a5a9> 7932
|
||||
<a5c3> <a5c3> 7933
|
||||
<a5e3> <a5e3> 7934
|
||||
<a5e5> <a5e5> 7935
|
||||
<a5e7> <a5e7> 7936
|
||||
<a5ee> <a5ee> 7937
|
||||
<a5f5> <a5f6> 7938
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue