| Clazz.declarePackage ("JSV.common"); | |
| Clazz.load (["JSV.api.JSVPdfWriter", "J.api.GenericGraphics"], "JSV.common.PDFWriter", ["java.util.Hashtable", "javajs.export.PDFCreator", "JU.CU", "JSV.common.JSVersion"], function () { | |
| c$ = Clazz.decorateAsClass (function () { | |
| this.g2d = null; | |
| this.date = null; | |
| this.pdf = null; | |
| this.inPath = false; | |
| this.rgb = null; | |
| Clazz.instantialize (this, arguments); | |
| }, JSV.common, "PDFWriter", null, [J.api.GenericGraphics, JSV.api.JSVPdfWriter]); | |
| Clazz.prepareFields (c$, function () { | |
| this.rgb = Clazz.newFloatArray (3, 0); | |
| }); | |
| Clazz.makeConstructor (c$, | |
| function () { | |
| this.pdf = new javajs["export"].PDFCreator (); | |
| }); | |
| Clazz.overrideMethod (c$, "createPdfDocument", | |
| function (panel, pl, os) { | |
| var isLandscape = pl.layout.equals ("landscape"); | |
| this.date = pl.date; | |
| this.pdf.setOutputStream (os); | |
| this.g2d = panel.getPanelData ().g2d; | |
| try { | |
| this.pdf.newDocument (pl.paperWidth, pl.paperHeight, isLandscape); | |
| var ht = new java.util.Hashtable (); | |
| ht.put ("Producer", JSV.common.JSVersion.VERSION); | |
| ht.put ("Creator", "JSpecView " + JSV.common.JSVersion.VERSION); | |
| ht.put ("Author", "JSpecView"); | |
| if (this.date != null) ht.put ("CreationDate", this.date); | |
| this.pdf.addInfo (ht); | |
| panel.getPanelData ().printPdf (this, pl); | |
| this.pdf.closeDocument (); | |
| } catch (e) { | |
| if (Clazz.exceptionOf (e, Exception)) { | |
| panel.showMessage (e.toString (), "PDF Creation Error"); | |
| } else { | |
| throw e; | |
| } | |
| } | |
| }, "JSV.api.JSVPanel,JSV.common.PrintLayout,java.io.OutputStream"); | |
| Clazz.overrideMethod (c$, "canDoLineTo", | |
| function () { | |
| return true; | |
| }); | |
| Clazz.overrideMethod (c$, "doStroke", | |
| function (g, isBegin) { | |
| this.inPath = isBegin; | |
| if (!this.inPath) this.pdf.stroke (); | |
| }, "~O,~B"); | |
| Clazz.overrideMethod (c$, "drawCircle", | |
| function (g, x, y, diameter) { | |
| this.pdf.doCircle (x, y, Clazz.doubleToInt (diameter / 2.0), false); | |
| }, "~O,~N,~N,~N"); | |
| Clazz.overrideMethod (c$, "drawLine", | |
| function (g, x0, y0, x1, y1) { | |
| this.pdf.moveto (x0, y0); | |
| this.pdf.lineto (x1, y1); | |
| if (!this.inPath) this.pdf.stroke (); | |
| }, "~O,~N,~N,~N,~N"); | |
| Clazz.overrideMethod (c$, "drawPolygon", | |
| function (g, axPoints, ayPoints, nPoints) { | |
| this.pdf.doPolygon (axPoints, ayPoints, nPoints, false); | |
| }, "~O,~A,~A,~N"); | |
| Clazz.overrideMethod (c$, "drawRect", | |
| function (g, x, y, width, height) { | |
| this.pdf.doRect (x, y, width, height, false); | |
| }, "~O,~N,~N,~N,~N"); | |
| Clazz.overrideMethod (c$, "drawString", | |
| function (g, s, x, y) { | |
| this.pdf.drawStringRotated (s, x, y, 0); | |
| }, "~O,~S,~N,~N"); | |
| Clazz.overrideMethod (c$, "drawStringRotated", | |
| function (g, s, x, y, angle) { | |
| this.pdf.drawStringRotated (s, x, y, Clazz.doubleToInt (angle)); | |
| }, "~O,~S,~N,~N,~N"); | |
| Clazz.overrideMethod (c$, "fillBackground", | |
| function (g, bgcolor) { | |
| }, "~O,javajs.api.GenericColor"); | |
| Clazz.overrideMethod (c$, "fillCircle", | |
| function (g, x, y, diameter) { | |
| this.pdf.doCircle (x, y, Clazz.doubleToInt (diameter / 2.0), true); | |
| }, "~O,~N,~N,~N"); | |
| Clazz.overrideMethod (c$, "fillPolygon", | |
| function (g, ayPoints, axPoints, nPoints) { | |
| this.pdf.doPolygon (axPoints, ayPoints, nPoints, true); | |
| }, "~O,~A,~A,~N"); | |
| Clazz.overrideMethod (c$, "fillRect", | |
| function (g, x, y, width, height) { | |
| this.pdf.doRect (x, y, width, height, true); | |
| }, "~O,~N,~N,~N,~N"); | |
| Clazz.overrideMethod (c$, "lineTo", | |
| function (g, x, y) { | |
| this.pdf.lineto (x, y); | |
| }, "~O,~N,~N"); | |
| Clazz.overrideMethod (c$, "setGraphicsColor", | |
| function (g, c) { | |
| JU.CU.toRGB3f (c.getRGB (), this.rgb); | |
| this.pdf.setColor (this.rgb, true); | |
| this.pdf.setColor (this.rgb, false); | |
| }, "~O,javajs.api.GenericColor"); | |
| Clazz.overrideMethod (c$, "setFont", | |
| function (g, font) { | |
| var fname = "/Helvetica"; | |
| switch (font.idFontStyle) { | |
| case 1: | |
| fname += "-Bold"; | |
| break; | |
| case 3: | |
| fname += "-BoldOblique"; | |
| break; | |
| case 2: | |
| fname += "-Oblique"; | |
| break; | |
| } | |
| this.pdf.setFont (fname, font.fontSizeNominal); | |
| return font; | |
| }, "~O,javajs.awt.Font"); | |
| Clazz.overrideMethod (c$, "setStrokeBold", | |
| function (g, tf) { | |
| this.pdf.setLineWidth (tf ? 2 : 1); | |
| }, "~O,~B"); | |
| Clazz.overrideMethod (c$, "translateScale", | |
| function (g, x, y, scale) { | |
| this.pdf.translateScale (x, y, scale); | |
| }, "~O,~N,~N,~N"); | |
| Clazz.overrideMethod (c$, "newGrayScaleImage", | |
| function (g, image, width, height, buffer) { | |
| this.pdf.addImageResource (image, width, height, buffer, false); | |
| return image; | |
| }, "~O,~O,~N,~N,~A"); | |
| Clazz.overrideMethod (c$, "drawGrayScaleImage", | |
| function (g, image, destX0, destY0, destX1, destY1, srcX0, srcY0, srcX1, srcY1) { | |
| this.pdf.drawImage (image, destX0, destY0, destX1, destY1, srcX0, srcY0, srcX1, srcY1); | |
| }, "~O,~O,~N,~N,~N,~N,~N,~N,~N,~N"); | |
| Clazz.overrideMethod (c$, "setWindowParameters", | |
| function (width, height) { | |
| }, "~N,~N"); | |
| Clazz.defineMethod (c$, "getColor1", | |
| function (argb) { | |
| return this.g2d.getColor1 (argb); | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "getColor3", | |
| function (red, green, blue) { | |
| return this.g2d.getColor3 (red, green, blue); | |
| }, "~N,~N,~N"); | |
| Clazz.defineMethod (c$, "getColor4", | |
| function (r, g, b, a) { | |
| return this.g2d.getColor4 (r, g, b, a); | |
| }, "~N,~N,~N,~N"); | |
| }); | |