You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlgraphics.apache.org by je...@apache.org on 2010/03/18 10:41:26 UTC
svn commit: r924674 - in /xmlgraphics/commons/trunk:
src/java/org/apache/xmlgraphics/fonts/Glyphs.java
src/java/org/apache/xmlgraphics/ps/PSFontUtils.java status.xml
Author: jeremias
Date: Thu Mar 18 09:41:26 2010
New Revision: 924674
URL: http://svn.apache.org/viewvc?rev=924674&view=rev
Log:
Bugzilla #48395:
Added code for supporting the AdobeStandardCyrillic encoding.
Submitted by: Andrey Koltunov <koldun.at.id.ru>
Changes to patch:
- converted tabs to spaces.
- slight reformatting
Modified:
xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/fonts/Glyphs.java
xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/PSFontUtils.java
xmlgraphics/commons/trunk/status.xml
Modified: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/fonts/Glyphs.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/fonts/Glyphs.java?rev=924674&r1=924673&r2=924674&view=diff
==============================================================================
--- xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/fonts/Glyphs.java (original)
+++ xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/fonts/Glyphs.java Thu Mar 18 09:41:26 2010
@@ -219,6 +219,251 @@ public class Glyphs {
};
/**
+ * The characters in AdobeStandardCyrillicEncoding
+ */
+ public static final char[] ADOBECYRILLIC_ENCODING = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ ' ', //space
+ '\u0021', //exclam
+ '\"', //quotedbl
+ '\u0023', //numbersign
+ '$', //dollar
+ '%', //percent
+ '&', //ampersand
+ '\'', //quotesingle
+ '(', //parenleft
+ ')', //parenright
+ '*', //asterisk
+ '+', //plus
+ ',', //comma
+ '\u002d', //hyphen
+ '\u002e', //period
+ '/', //slash
+
+ '0', //zero
+ '1', //one
+ '2', //two
+ '3', //three
+ '4', //four
+ '5', //five
+ '6', //six
+ '7', //seven
+ '8', //eight
+ '9', //nine
+ ':', //colon
+ ';', //semicolon
+ '<', //less
+ '=', //equal
+ '>', //greater
+ '?', //question
+
+ '@', //at
+ 'A', //A
+ 'B', //B
+ 'C', //C
+ 'D', //D
+ 'E', //E
+ 'F', //F
+ 'G', //G
+ 'H', //H
+ 'I', //I
+ 'J', //J
+ 'K', //K
+ 'L', //L
+ 'M', //M
+ 'N', //N
+ 'O', //O
+
+ 'P', //P
+ 'Q', //Q
+ 'R', //R
+ 'S', //S
+ 'T', //T
+ 'U', //U
+ 'V', //V
+ 'W', //W
+ 'X', //X
+ 'Y', //Y
+ 'Z', //Z
+ '\u005b', //bracketleft
+ '\\', //backslash
+ '\u005d', //bracketright
+ '^', //asciicircum
+ '_', //underscore
+
+ '\u0060', //grave
+ 'a', //a
+ 'b', //b
+ 'c', //c
+ 'd', //d
+ 'e', //e
+ 'f', //f
+ 'g', //g
+ 'h', //h
+ 'i', //i
+ 'j', //j
+ 'k', //k
+ 'l', //l
+ 'm', //m
+ 'n', //n
+ 'o', //o
+
+ 'p', //p
+ 'q', //q
+ 'r', //r
+ 's', //s
+ 't', //t
+ 'u', //u
+ 'v', //v
+ 'w', //w
+ 'x', //x
+ 'y', //y
+ 'z', //z
+ '\u007b', //braceleft
+ '\u007c', //bar
+ '\u007d', //braceright
+ '\u007e', //asciitilde
+ 0,
+
+ '\u0402', //afii10051
+ '\u0403', //afii10052
+ '\u201a', //quotesinglebase
+ '\u0453', //afii10100
+ '\u201e', //quotedblbase
+ '\u2026', //ellipsis
+ '\u2020', //dagger
+ '\u2021', //daggerdbl
+ '\u20ac', //euro
+ '\u2030', //perthousand
+ '\u0409', //afii10058
+ '\u2039', //guilsignlleft
+ '\u040a', //afii10059
+ '\u040c', //afii10061
+ '\u040b', //afii10060
+ '\u040f', //afii10045
+
+ '\u0452', //afii10099
+ '\u2018', //quoteleft
+ '\u2019', //quoteright
+ '\u201c', //quotedblleft
+ '\u201d', //quotedblright
+ '\u2022', //bullet
+ '\u2013', //endash
+ '\u2014', //emdash
+ 0,
+ '\u2122', //trademark
+ '\u0459', //afii10106
+ '\u203a', //guilsinglright
+ '\u045a', //afii10107
+ '\u045c', //afii10109
+ '\u045b', //afii10108
+ '\u045f', //afii10193
+
+ '\u00a0', //nbspace
+ '\u040e', //afii10062
+ '\u045e', //afii10110
+ '\u0408', //afii10057
+ '\u00a4', //currency
+ '\u0490', //afii10050
+ '\u00a6', //brokenbar
+ '\u00a7', //section
+ '\u0401', //afii10023
+ '\u00a9', //copyright
+ '\u0404', //afii10053
+ '\u00ab', //guillemotleft
+ '\u00ac', //logicalnot
+ '\u00ad', //softhyphen
+ '\u00ae', //registered
+ '\u0407', //afii10056
+
+ '\u00b0', //degree
+ '\u00b1', //plusminus
+ '\u0406', //afii10055
+ '\u0456', //afii10103
+ '\u0491', //afii10098
+ '\u00b5', //mu
+ '\u00b6', //paragraph
+ '\u00b7', //periodcentered
+ '\u0451', //afii10071
+ '\u2116', //afii61352
+ '\u0454', //afii10101
+ '\u00bb', //guillemotright
+ '\u0458', //afii10105
+ '\u0405', //afii10054
+ '\u0455', //afii10102
+ '\u0457', //afii10104
+
+ '\u0410', //afii10017
+ '\u0411', //afii10018
+ '\u0412', //afii10019
+ '\u0413', //afii10020
+ '\u0414', //afii10021
+ '\u0415', //afii10022
+ '\u0416', //afii10024
+ '\u0417', //afii10025
+ '\u0418', //afii10026
+ '\u0419', //afii10027
+ '\u041a', //afii10028
+ '\u041b', //afii10029
+ '\u041c', //afii10030
+ '\u041d', //afii10031
+ '\u041e', //afii10032
+ '\u041f', //afii10033
+
+ '\u0420', //afii10034
+ '\u0421', //afii10035
+ '\u0422', //afii10036
+ '\u0423', //afii10037
+ '\u0424', //afii10038
+ '\u0425', //afii10039
+ '\u0426', //afii10040
+ '\u0427', //afii10041
+ '\u0428', //afii10042
+ '\u0429', //afii10043
+ '\u042a', //afii10044
+ '\u042b', //afii10045
+ '\u042c', //afii10046
+ '\u042d', //afii10047
+ '\u042e', //afii10048
+ '\u042f', //afii10049
+
+ '\u0430', //afii10065
+ '\u0431', //afii10066
+ '\u0432', //afii10067
+ '\u0433', //afii10068
+ '\u0434', //afii10069
+ '\u0435', //afii10070
+ '\u0436', //afii10072
+ '\u0437', //afii10073
+ '\u0438', //afii10074
+ '\u0439', //afii10075
+ '\u043a', //afii10076
+ '\u043b', //afii10077
+ '\u043c', //afii10078
+ '\u043d', //afii10079
+ '\u043e', //afii10080
+ '\u043f', //afii10081
+
+ '\u0440', //afii10082
+ '\u0441', //afii10083
+ '\u0442', //afii10084
+ '\u0443', //afii10085
+ '\u0444', //afii10086
+ '\u0445', //afii10087
+ '\u0446', //afii10088
+ '\u0447', //afii10089
+ '\u0448', //afii10090
+ '\u0449', //afii10091
+ '\u044a', //afii10092
+ '\u044b', //afii10093
+ '\u044c', //afii10094
+ '\u044d', //afii10095
+ '\u044e', //afii10096
+ '\u044f', //afii10097
+ };
+
+ /**
* List of unicode glyphs
*/
private static final String[] UNICODE_GLYPHS;
@@ -273,6 +518,113 @@ public class Glyphs {
addAlternatives(map, new String[] {"cent", "centoldstyle"});
addAlternatives(map, new String[] {"dollar", "dollaroldstyle"});
+ //Cyrillic names according Adobe Techninal Note #5013 aka Adobe Standard Cyrillic Font Specification
+ addAlternatives(map, new String[] {"Acyrillic", "afii10017"});
+ addAlternatives(map, new String[] {"Becyrillic", "afii10018"});
+ addAlternatives(map, new String[] {"Vecyrillic", "afii10019"});
+ addAlternatives(map, new String[] {"Gecyrillic", "afii10020"});
+ addAlternatives(map, new String[] {"Decyrillic", "afii10021"});
+ addAlternatives(map, new String[] {"Iecyrillic", "afii10022"});
+ addAlternatives(map, new String[] {"Iocyrillic", "afii10023"});
+ addAlternatives(map, new String[] {"Zhecyrillic", "afii10024"});
+ addAlternatives(map, new String[] {"Zecyrillic", "afii10025"});
+ addAlternatives(map, new String[] {"Iicyrillic", "afii10026"});
+ addAlternatives(map, new String[] {"Iishortcyrillic", "afii10027"});
+ addAlternatives(map, new String[] {"Kacyrillic", "afii10028"});
+ addAlternatives(map, new String[] {"Elcyrillic", "afii10029"});
+ addAlternatives(map, new String[] {"Emcyrillic", "afii10030"});
+ addAlternatives(map, new String[] {"Encyrillic", "afii10031"});
+ addAlternatives(map, new String[] {"Ocyrillic", "afii10032"});
+ addAlternatives(map, new String[] {"Pecyrillic", "afii10033"});
+ addAlternatives(map, new String[] {"Ercyrillic", "afii10034"});
+ addAlternatives(map, new String[] {"Escyrillic", "afii10035"});
+ addAlternatives(map, new String[] {"Tecyrillic", "afii10036"});
+ addAlternatives(map, new String[] {"Ucyrillic", "afii10037"});
+ addAlternatives(map, new String[] {"Efcyrillic", "afii10038"});
+ addAlternatives(map, new String[] {"Khacyrillic", "afii10039"});
+ addAlternatives(map, new String[] {"Tsecyrillic", "afii10040"});
+ addAlternatives(map, new String[] {"Checyrillic", "afii10041"});
+ addAlternatives(map, new String[] {"Shacyrillic", "afii10042"});
+ addAlternatives(map, new String[] {"Shchacyrillic", "afii10043"});
+ addAlternatives(map, new String[] {"Hardsigncyrillic", "afii10044"});
+ addAlternatives(map, new String[] {"Yericyrillic", "afii10045"});
+ addAlternatives(map, new String[] {"Softsigncyrillic", "afii10046"});
+ addAlternatives(map, new String[] {"Ereversedcyrillic", "afii10047"});
+ addAlternatives(map, new String[] {"IUcyrillic", "afii10048"});
+ addAlternatives(map, new String[] {"IAcyrillic", "afii10049"});
+
+ addAlternatives(map, new String[] {"acyrillic", "afii10065"});
+ addAlternatives(map, new String[] {"becyrillic", "afii10066"});
+ addAlternatives(map, new String[] {"vecyrillic", "afii10067"});
+ addAlternatives(map, new String[] {"gecyrillic", "afii10068"});
+ addAlternatives(map, new String[] {"decyrillic", "afii10069"});
+ addAlternatives(map, new String[] {"iecyrillic", "afii10070"});
+ addAlternatives(map, new String[] {"iocyrillic", "afii10071"});
+ addAlternatives(map, new String[] {"zhecyrillic", "afii10072"});
+ addAlternatives(map, new String[] {"zecyrillic", "afii10073"});
+ addAlternatives(map, new String[] {"iicyrillic", "afii10074"});
+ addAlternatives(map, new String[] {"iishortcyrillic", "afii10075"});
+ addAlternatives(map, new String[] {"kacyrillic", "afii10076"});
+ addAlternatives(map, new String[] {"elcyrillic", "afii10077"});
+ addAlternatives(map, new String[] {"emcyrillic", "afii10078"});
+ addAlternatives(map, new String[] {"encyrillic", "afii10079"});
+ addAlternatives(map, new String[] {"ocyrillic", "afii10080"});
+ addAlternatives(map, new String[] {"pecyrillic", "afii10081"});
+ addAlternatives(map, new String[] {"ercyrillic", "afii10082"});
+ addAlternatives(map, new String[] {"escyrillic", "afii10083"});
+ addAlternatives(map, new String[] {"tecyrillic", "afii10084"});
+ addAlternatives(map, new String[] {"ucyrillic", "afii10085"});
+ addAlternatives(map, new String[] {"efcyrillic", "afii10086"});
+ addAlternatives(map, new String[] {"khacyrillic", "afii10087"});
+ addAlternatives(map, new String[] {"tsecyrillic", "afii10088"});
+ addAlternatives(map, new String[] {"checyrillic", "afii10089"});
+ addAlternatives(map, new String[] {"shacyrillic", "afii10090"});
+ addAlternatives(map, new String[] {"shchacyrillic", "afii10091"});
+ addAlternatives(map, new String[] {"hardsigncyrillic", "afii10092"});
+ addAlternatives(map, new String[] {"yericyrillic", "afii10093"});
+ addAlternatives(map, new String[] {"softsigncyrillic", "afii10094"});
+ addAlternatives(map, new String[] {"ereversedcyrillic", "afii10095"});
+ addAlternatives(map, new String[] {"iucyrillic", "afii10096"});
+ addAlternatives(map, new String[] {"iacyrillic", "afii10097"});
+
+ addAlternatives(map, new String[] {"Gheupturncyrillic", "afii10050"});
+ addAlternatives(map, new String[] {"Djecyrillic", "afii10051"});
+ addAlternatives(map, new String[] {"Gjecyrillic", "afii10052"});
+ addAlternatives(map, new String[] {"Ecyrillic", "afii10053"});
+ addAlternatives(map, new String[] {"Dzecyrillic", "afii10054"});
+ addAlternatives(map, new String[] {"Icyrillic", "afii10055"});
+ addAlternatives(map, new String[] {"Yicyrillic", "afii10056"});
+ addAlternatives(map, new String[] {"Jecyrillic", "afii10057"});
+ addAlternatives(map, new String[] {"Ljecyrillic", "afii10058"});
+ addAlternatives(map, new String[] {"Njecyrillic", "afii10059"});
+ addAlternatives(map, new String[] {"Tshecyrillic", "afii10060"});
+ addAlternatives(map, new String[] {"Kjecyrillic", "afii10061"});
+ addAlternatives(map, new String[] {"Ushortcyrillic", "afii10062"});
+
+ addAlternatives(map, new String[] {"Dzhecyrillic", "afii10145"});
+ addAlternatives(map, new String[] {"Yatcyrillic", "afii10146"});
+ addAlternatives(map, new String[] {"Fitacyrillic", "afii10147"});
+ addAlternatives(map, new String[] {"Izhitsacyrillic", "afii10148"});
+
+ addAlternatives(map, new String[] {"gheupturncyrillic", "afii10098"});
+ addAlternatives(map, new String[] {"djecyrillic", "afii10099"});
+ addAlternatives(map, new String[] {"gjecyrillic", "afii10100"});
+ addAlternatives(map, new String[] {"ecyrillic", "afii10101"});
+ addAlternatives(map, new String[] {"dzecyrillic", "afii10102"});
+ addAlternatives(map, new String[] {"icyrillic", "afii10103"});
+ addAlternatives(map, new String[] {"yicyrillic", "afii10104"});
+ addAlternatives(map, new String[] {"jecyrillic", "afii10105"});
+ addAlternatives(map, new String[] {"ljecyrillic", "afii10106"});
+ addAlternatives(map, new String[] {"njecyrillic", "afii10107"});
+ addAlternatives(map, new String[] {"tshecyrillic", "afii10108"});
+ addAlternatives(map, new String[] {"kjecyrillic", "afii10109"});
+ addAlternatives(map, new String[] {"ushortcyrillic", "afii10110"});
+
+ addAlternatives(map, new String[] {"dzhecyrillic", "afii10193"});
+ addAlternatives(map, new String[] {"yatcyrillic", "afii10194"});
+ addAlternatives(map, new String[] {"fitacyrillic", "afii10195"});
+ addAlternatives(map, new String[] {"izhitsacyrillic", "afii10196"});
+
CHARNAME_ALTERNATIVES = Collections.unmodifiableMap(map);
}
@@ -475,4 +827,3 @@ public class Glyphs {
}
}
-
Modified: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/PSFontUtils.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/PSFontUtils.java?rev=924674&r1=924673&r2=924674&view=diff
==============================================================================
--- xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/PSFontUtils.java (original)
+++ xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/ps/PSFontUtils.java Thu Mar 18 09:41:26 2010
@@ -120,6 +120,42 @@ public class PSFontUtils {
gen.getResourceTracker().registerSuppliedResource(WINANSI_ENCODING_RESOURCE);
}
+ /** the PSResource representing the AdobeStandardCyrillicEncoding. */
+ public static final PSResource ADOBECYRILLIC_ENCODING_RESOURCE
+ = new PSResource(PSResource.TYPE_ENCODING, "AdobeStandardCyrillicEncoding");
+
+ /**
+ * Defines the AdobeStandardCyrillic encoding for use in PostScript files.
+ * @param gen the PostScript generator
+ * @throws IOException In case of an I/O problem
+ */
+ public static void defineAdobeCyrillicEncoding(PSGenerator gen) throws IOException {
+ gen.writeDSCComment(DSCConstants.BEGIN_RESOURCE, ADOBECYRILLIC_ENCODING_RESOURCE);
+ gen.writeln("/AdobeStandardCyrillicEncoding [");
+ for (int i = 0; i < Glyphs.ADOBECYRILLIC_ENCODING.length; i++) {
+ if (i > 0) {
+ if ((i % 5) == 0) {
+ gen.newLine();
+ } else {
+ gen.write(" ");
+ }
+ }
+ final char ch = Glyphs.ADOBECYRILLIC_ENCODING[i];
+ final String glyphname = Glyphs.charToGlyphName(ch);
+ if ("".equals(glyphname)) {
+ gen.write("/" + Glyphs.NOTDEF);
+ } else {
+ gen.write("/");
+ gen.write(glyphname);
+ }
+ }
+ gen.newLine();
+ gen.writeln("] def");
+ gen.writeDSCComment(DSCConstants.END_RESOURCE);
+ gen.getResourceTracker().registerSuppliedResource(ADOBECYRILLIC_ENCODING_RESOURCE);
+ }
+
+
/**
* Redefines the encoding of a font.
* @param gen the PostScript generator
Modified: xmlgraphics/commons/trunk/status.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/status.xml?rev=924674&r1=924673&r2=924674&view=diff
==============================================================================
--- xmlgraphics/commons/trunk/status.xml (original)
+++ xmlgraphics/commons/trunk/status.xml Thu Mar 18 09:41:26 2010
@@ -40,6 +40,13 @@
</contexts>
<changes>
<release version="Trunk" date="n/a">
+ <action context="Code" dev="JM" type="add" fixes-bug="48395" due-to="Andrey Koltunov">
+ Added code for supporting the AdobeStandardCyrillic encoding.
+ </action>
+ <action context="Code" dev="JM" type="add">
+ Added support for configurable additional penalties for preloader, loader and converter
+ plug-ins in the ImageImplRegistry (in addition to the hard-coded penalties).
+ </action>
<action context="Code" dev="JM" type="fix">
Bugfix for detecting multi-strip CCITT-encoded TIFFs.
</action>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: commits-help@xmlgraphics.apache.org