public void writeTo()

in src/main/java/org/apache/xmlgraphics/ps/PSProcSets.java [87:262]


        public void writeTo(PSGenerator gen) throws IOException {
            gen.writeDSCComment(DSCConstants.BEGIN_RESOURCE,
                    new Object[] {TYPE_PROCSET, getName(),
                        Float.toString(getVersion()), Integer.toString(getRevision())});
            gen.writeDSCComment(DSCConstants.VERSION,
                    new Object[] {Float.toString(getVersion()), Integer.toString(getRevision())});
            gen.writeDSCComment(DSCConstants.COPYRIGHT, "Copyright 2001-2003,2010 "
                        + "The Apache Software Foundation. "
                        + "License terms: http://www.apache.org/licenses/LICENSE-2.0");
            gen.writeDSCComment(DSCConstants.TITLE,
                    "Basic set of procedures used by the XML Graphics project (Batik and FOP)");

            gen.writeln("/bd{bind def}bind def");
            gen.writeln("/ld{load def}bd");
            for (Object o : STANDARD_MACROS.entrySet()) {
                Map.Entry entry = (Map.Entry) o;
                gen.writeln("/" + entry.getValue() + "/" + entry.getKey() + " ld");
            }

            gen.writeln("/re {4 2 roll M"); //define rectangle
            gen.writeln("1 index 0 rlineto");
            gen.writeln("0 exch rlineto");
            gen.writeln("neg 0 rlineto");
            gen.writeln("cp } bd");

            gen.writeln("/_ctm matrix def"); //Holds the current matrix
            gen.writeln("/_tm matrix def");
            //BT: save currentmatrix, set _tm to identitymatrix and move to 0/0
            gen.writeln("/BT { _ctm currentmatrix pop matrix _tm copy pop 0 0 moveto } bd");
            //ET: restore last currentmatrix
            gen.writeln("/ET { _ctm setmatrix } bd");
            gen.writeln("/iTm { _ctm setmatrix _tm concat } bd");
            gen.writeln("/Tm { _tm astore pop iTm 0 0 moveto } bd");

            gen.writeln("/ux 0.0 def");
            gen.writeln("/uy 0.0 def");

            // <font> <size> F
            gen.writeln("/F {");
            gen.writeln("  /Tp exch def");
            // gen.writeln("  currentdict exch get");
            gen.writeln("  /Tf exch def");
            gen.writeln("  Tf findfont Tp scalefont setfont");
            gen.writeln("  /cf Tf def  /cs Tp def");
            gen.writeln("} bd");

            gen.writeln("/ULS {currentpoint /uy exch def /ux exch def} bd");
            gen.writeln("/ULE {");
            gen.writeln("  /Tcx currentpoint pop def");
            gen.writeln("  gsave");
            gen.writeln("  newpath");
            gen.writeln("  cf findfont cs scalefont dup");
            gen.writeln("  /FontMatrix get 0 get /Ts exch def /FontInfo get dup");
            gen.writeln("  /UnderlinePosition get Ts mul /To exch def");
            gen.writeln("  /UnderlineThickness get Ts mul /Tt exch def");
            gen.writeln("  ux uy To add moveto  Tcx uy To add lineto");
            gen.writeln("  Tt setlinewidth stroke");
            gen.writeln("  grestore");
            gen.writeln("} bd");

            gen.writeln("/OLE {");
            gen.writeln("  /Tcx currentpoint pop def");
            gen.writeln("  gsave");
            gen.writeln("  newpath");
            gen.writeln("  cf findfont cs scalefont dup");
            gen.writeln("  /FontMatrix get 0 get /Ts exch def /FontInfo get dup");
            gen.writeln("  /UnderlinePosition get Ts mul /To exch def");
            gen.writeln("  /UnderlineThickness get Ts mul /Tt exch def");
            gen.writeln("  ux uy To add cs add moveto Tcx uy To add cs add lineto");
            gen.writeln("  Tt setlinewidth stroke");
            gen.writeln("  grestore");
            gen.writeln("} bd");

            gen.writeln("/SOE {");
            gen.writeln("  /Tcx currentpoint pop def");
            gen.writeln("  gsave");
            gen.writeln("  newpath");
            gen.writeln("  cf findfont cs scalefont dup");
            gen.writeln("  /FontMatrix get 0 get /Ts exch def /FontInfo get dup");
            gen.writeln("  /UnderlinePosition get Ts mul /To exch def");
            gen.writeln("  /UnderlineThickness get Ts mul /Tt exch def");
            gen.writeln("  ux uy To add cs 10 mul 26 idiv add moveto "
                        + "Tcx uy To add cs 10 mul 26 idiv add lineto");
            gen.writeln("  Tt setlinewidth stroke");
            gen.writeln("  grestore");
            gen.writeln("} bd");

            gen.writeln("/QT {");
            gen.writeln("/Y22 exch store");
            gen.writeln("/X22 exch store");
            gen.writeln("/Y21 exch store");
            gen.writeln("/X21 exch store");
            gen.writeln("currentpoint");
            gen.writeln("/Y21 load 2 mul add 3 div exch");
            gen.writeln("/X21 load 2 mul add 3 div exch");
            gen.writeln("/X21 load 2 mul /X22 load add 3 div");
            gen.writeln("/Y21 load 2 mul /Y22 load add 3 div");
            gen.writeln("/X22 load /Y22 load curveto");
            gen.writeln("} bd");

            gen.writeln("/SSPD {");
            gen.writeln("dup length /d exch dict def");
            gen.writeln("{");
            gen.writeln("/v exch def");
            gen.writeln("/k exch def");
            gen.writeln("currentpagedevice k known {");
            gen.writeln("/cpdv currentpagedevice k get def");
            gen.writeln("v cpdv ne {");
            gen.writeln("/upd false def");
            gen.writeln("/nullv v type /nulltype eq def");
            gen.writeln("/nullcpdv cpdv type /nulltype eq def");
            gen.writeln("nullv nullcpdv or");
            gen.writeln("{");
            gen.writeln("/upd true def");
            gen.writeln("} {");
            gen.writeln("/sametype v type cpdv type eq def");
            gen.writeln("sametype {");
            gen.writeln("v type /arraytype eq {");
            gen.writeln("/vlen v length def");
            gen.writeln("/cpdvlen cpdv length def");
            gen.writeln("vlen cpdvlen eq {");
            gen.writeln("0 1 vlen 1 sub {");
            gen.writeln("/i exch def");
            gen.writeln("/obj v i get def");
            gen.writeln("/cpdobj cpdv i get def");
            gen.writeln("obj cpdobj ne {");
            gen.writeln("/upd true def");
            gen.writeln("exit");
            gen.writeln("} if");
            gen.writeln("} for");
            gen.writeln("} {");
            gen.writeln("/upd true def");
            gen.writeln("} ifelse");
            gen.writeln("} {");
            gen.writeln("v type /dicttype eq {");
            gen.writeln("v {");
            gen.writeln("/dv exch def");
            gen.writeln("/dk exch def");
            gen.writeln("/cpddv cpdv dk get def");
            gen.writeln("dv cpddv ne {");
            gen.writeln("/upd true def");
            gen.writeln("exit");
            gen.writeln("} if");
            gen.writeln("} forall");
            gen.writeln("} {");
            gen.writeln("/upd true def");
            gen.writeln("} ifelse");
            gen.writeln("} ifelse");
            gen.writeln("} if");
            gen.writeln("} ifelse");
            gen.writeln("upd true eq {");
            gen.writeln("d k v put");
            gen.writeln("} if");
            gen.writeln("} if");
            gen.writeln("} if");
            gen.writeln("} forall");
            gen.writeln("d length 0 gt {");
            gen.writeln("d setpagedevice");
            gen.writeln("} if");
            gen.writeln("} bd");

            gen.writeln("/RE { % /NewFontName [NewEncodingArray] /FontName RE -");
            gen.writeln("  findfont dup length dict begin");
            gen.writeln("  {");
            gen.writeln("    1 index /FID ne");
            gen.writeln("    {def} {pop pop} ifelse");
            gen.writeln("  } forall");
            gen.writeln("  /Encoding exch def");
            gen.writeln("  /FontName 1 index def");
            gen.writeln("  currentdict definefont pop");
            gen.writeln("  end");
            gen.writeln("} bind def");

            gen.writeDSCComment(DSCConstants.END_RESOURCE);
            gen.getResourceTracker().registerSuppliedResource(this);
        }