Showing
18 changed files
with
66 additions
and
27 deletions
CHANGELOG.md
0 → 100644
| 1 | +* Add example |
| @@ -59,7 +59,18 @@ class PDFAnnot extends PDFObject { | @@ -59,7 +59,18 @@ class PDFAnnot extends PDFObject { | ||
| 59 | PDFBorder border; | 59 | PDFBorder border; |
| 60 | 60 | ||
| 61 | PDFAnnot(PDFPage pdfPage, | 61 | PDFAnnot(PDFPage pdfPage, |
| 62 | - {String type, this.s, this.l, this.b, this.r, this.t, this.subtype, this.dest, this.fl, this.fb, this.fr, this.ft}) | 62 | + {String type, |
| 63 | + this.s, | ||
| 64 | + this.l, | ||
| 65 | + this.b, | ||
| 66 | + this.r, | ||
| 67 | + this.t, | ||
| 68 | + this.subtype, | ||
| 69 | + this.dest, | ||
| 70 | + this.fl, | ||
| 71 | + this.fb, | ||
| 72 | + this.fr, | ||
| 73 | + this.ft}) | ||
| 63 | : super(pdfPage.pdfDocument, type) { | 74 | : super(pdfPage.pdfDocument, type) { |
| 64 | pdfPage.annotations.add(this); | 75 | pdfPage.annotations.add(this); |
| 65 | } | 76 | } |
| @@ -70,7 +81,8 @@ class PDFAnnot extends PDFObject { | @@ -70,7 +81,8 @@ class PDFAnnot extends PDFObject { | ||
| 70 | /// @param b Bottom coordinate | 81 | /// @param b Bottom coordinate |
| 71 | /// @param r Right coordinate | 82 | /// @param r Right coordinate |
| 72 | /// @param t Top coordinate | 83 | /// @param t Top coordinate |
| 73 | - factory PDFAnnot.annotation(PDFPage pdfPage, String s, double l, double b, double r, double t) => | 84 | + factory PDFAnnot.annotation( |
| 85 | + PDFPage pdfPage, String s, double l, double b, double r, double t) => | ||
| 74 | new PDFAnnot(pdfPage, type: "/Annot", s: s, l: l, b: b, r: r, t: t); | 86 | new PDFAnnot(pdfPage, type: "/Annot", s: s, l: l, b: b, r: r, t: t); |
| 75 | 87 | ||
| 76 | /// Creates a text annotation | 88 | /// Creates a text annotation |
| @@ -94,9 +106,14 @@ class PDFAnnot extends PDFObject { | @@ -94,9 +106,14 @@ class PDFAnnot extends PDFObject { | ||
| 94 | /// @param ft Top coordinate | 106 | /// @param ft Top coordinate |
| 95 | /// <br><br>Rectangle describing what part of the page to be displayed | 107 | /// <br><br>Rectangle describing what part of the page to be displayed |
| 96 | /// (must be in User Coordinates) | 108 | /// (must be in User Coordinates) |
| 97 | - factory PDFAnnot.link(PDFPage pdfPage, double l, double b, double r, double t, PDFObject dest, | ||
| 98 | - [double fl = FULL_PAGE, double fb = FULL_PAGE, double fr = FULL_PAGE, double ft = FULL_PAGE]) => | ||
| 99 | - new PDFAnnot(pdfPage, type: "/Link", l: l, b: b, r: r, t: t, dest: dest, fl: fl, fb: fb, fr: fr, ft: ft); | 109 | + factory PDFAnnot.link( |
| 110 | + PDFPage pdfPage, double l, double b, double r, double t, PDFObject dest, | ||
| 111 | + [double fl = FULL_PAGE, | ||
| 112 | + double fb = FULL_PAGE, | ||
| 113 | + double fr = FULL_PAGE, | ||
| 114 | + double ft = FULL_PAGE]) => | ||
| 115 | + new PDFAnnot(pdfPage, | ||
| 116 | + type: "/Link", l: l, b: b, r: r, t: t, dest: dest, fl: fl, fb: fb, fr: fr, ft: ft); | ||
| 100 | 117 | ||
| 101 | /// Sets the border for the annotation. By default, no border is defined. | 118 | /// Sets the border for the annotation. By default, no border is defined. |
| 102 | /// | 119 | /// |
| @@ -36,7 +36,8 @@ class PDFBorder extends PDFObject { | @@ -36,7 +36,8 @@ class PDFBorder extends PDFObject { | ||
| 36 | /// @param style The style of the border | 36 | /// @param style The style of the border |
| 37 | /// @param dash The line pattern definition | 37 | /// @param dash The line pattern definition |
| 38 | /// @see PDFAnnot | 38 | /// @see PDFAnnot |
| 39 | - PDFBorder(PDFDocument pdfDocument, this.width, {this.style = 0, this.dash}) : super(pdfDocument); | 39 | + PDFBorder(PDFDocument pdfDocument, this.width, {this.style = 0, this.dash}) |
| 40 | + : super(pdfDocument); | ||
| 40 | 41 | ||
| 41 | /// @param os OutputStream to send the object to | 42 | /// @param os OutputStream to send the object to |
| 42 | @override | 43 | @override |
| @@ -34,7 +34,8 @@ class PDFCatalog extends PDFObject { | @@ -34,7 +34,8 @@ class PDFCatalog extends PDFObject { | ||
| 34 | /// of the documents page tree | 34 | /// of the documents page tree |
| 35 | /// @param pagemode How the document should appear when opened. | 35 | /// @param pagemode How the document should appear when opened. |
| 36 | /// Allowed values are USENONE, USEOUTLINES, USETHUMBS or FULLSCREEN. | 36 | /// Allowed values are USENONE, USEOUTLINES, USETHUMBS or FULLSCREEN. |
| 37 | - PDFCatalog(PDFDocument pdfDocument, this.pdfPageList, this.pageMode) : super(pdfDocument, "/Catalog"); | 37 | + PDFCatalog(PDFDocument pdfDocument, this.pdfPageList, this.pageMode) |
| 38 | + : super(pdfDocument, "/Catalog"); | ||
| 38 | 39 | ||
| 39 | /// @param os OutputStream to send the object to | 40 | /// @param os OutputStream to send the object to |
| 40 | @override | 41 | @override |
| @@ -29,8 +29,8 @@ class PDFColor { | @@ -29,8 +29,8 @@ class PDFColor { | ||
| 29 | PDFColor(this.r, this.g, this.b, [this.a = 1.0]); | 29 | PDFColor(this.r, this.g, this.b, [this.a = 1.0]); |
| 30 | 30 | ||
| 31 | factory PDFColor.fromInt(int color) { | 31 | factory PDFColor.fromInt(int color) { |
| 32 | - return new PDFColor( | ||
| 33 | - (color >> 16 & 0xff) / 255.0, (color >> 8 & 0xff) / 255.0, (color & 0xff) / 255.0, (color >> 24 & 0xff) / 255.0); | 32 | + return new PDFColor((color >> 16 & 0xff) / 255.0, (color >> 8 & 0xff) / 255.0, |
| 33 | + (color & 0xff) / 255.0, (color >> 24 & 0xff) / 255.0); | ||
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | factory PDFColor.fromHex(String color) { | 36 | factory PDFColor.fromHex(String color) { |
| @@ -72,7 +72,12 @@ class PDFDocument { | @@ -72,7 +72,12 @@ class PDFDocument { | ||
| 72 | /// <p> | 72 | /// <p> |
| 73 | /// These map the page modes just defined to the pagemodes setting of PDF. | 73 | /// These map the page modes just defined to the pagemodes setting of PDF. |
| 74 | /// </p> | 74 | /// </p> |
| 75 | - static const _PDF_PAGE_MODES = const ["/UseNone", "/UseOutlines", "/UseThumbs", "/FullScreen"]; | 75 | + static const _PDF_PAGE_MODES = const [ |
| 76 | + "/UseNone", | ||
| 77 | + "/UseOutlines", | ||
| 78 | + "/UseThumbs", | ||
| 79 | + "/FullScreen" | ||
| 80 | + ]; | ||
| 76 | 81 | ||
| 77 | /// This holds the current fonts | 82 | /// This holds the current fonts |
| 78 | final Set<PDFFont> fonts = new Set<PDFFont>(); | 83 | final Set<PDFFont> fonts = new Set<PDFFont>(); |
| @@ -32,7 +32,8 @@ class PDFFont extends PDFObject { | @@ -32,7 +32,8 @@ class PDFFont extends PDFObject { | ||
| 32 | /// @param type The pdf type, ie /Type1 | 32 | /// @param type The pdf type, ie /Type1 |
| 33 | /// @param font The font name, ie Helvetica | 33 | /// @param font The font name, ie Helvetica |
| 34 | /// @param style The java.awt.Font style, ie: Font.PLAIN | 34 | /// @param style The java.awt.Font style, ie: Font.PLAIN |
| 35 | - PDFFont(PDFDocument pdfDocument, {this.subtype = "/Type1", this.baseFont = "/Helvetica"}) : super(pdfDocument, "/Font") { | 35 | + PDFFont(PDFDocument pdfDocument, {this.subtype = "/Type1", this.baseFont = "/Helvetica"}) |
| 36 | + : super(pdfDocument, "/Font") { | ||
| 36 | pdfDocument.fonts.add(this); | 37 | pdfDocument.fonts.add(this); |
| 37 | } | 38 | } |
| 38 | 39 |
| @@ -23,7 +23,8 @@ class PDFFontDescriptor extends PDFObject { | @@ -23,7 +23,8 @@ class PDFFontDescriptor extends PDFObject { | ||
| 23 | final TtfFont font; | 23 | final TtfFont font; |
| 24 | final PDFTTFFont ttfFont; | 24 | final PDFTTFFont ttfFont; |
| 25 | 25 | ||
| 26 | - PDFFontDescriptor(this.ttfFont, this.file, this.font) : super(ttfFont.pdfDocument, "/FontDescriptor"); | 26 | + PDFFontDescriptor(this.ttfFont, this.file, this.font) |
| 27 | + : super(ttfFont.pdfDocument, "/FontDescriptor"); | ||
| 27 | 28 | ||
| 28 | @override | 29 | @override |
| 29 | void prepare() { | 30 | void prepare() { |
| @@ -32,7 +33,8 @@ class PDFFontDescriptor extends PDFObject { | @@ -32,7 +33,8 @@ class PDFFontDescriptor extends PDFObject { | ||
| 32 | params["/FontName"] = PDFStream.string(ttfFont.baseFont); | 33 | params["/FontName"] = PDFStream.string(ttfFont.baseFont); |
| 33 | params["/FontFile2"] = file.ref(); | 34 | params["/FontFile2"] = file.ref(); |
| 34 | params["/Flags"] = PDFStream.intNum(32); | 35 | params["/Flags"] = PDFStream.intNum(32); |
| 35 | - params["/FontBBox"] = new PDFStream()..putStringArray([font.head.xMin, font.head.yMin, font.head.xMax, font.head.yMax]); | 36 | + params["/FontBBox"] = new PDFStream() |
| 37 | + ..putStringArray([font.head.xMin, font.head.yMin, font.head.xMax, font.head.yMax]); | ||
| 36 | params["/Ascent"] = PDFStream.intNum(font.hhea.ascent); | 38 | params["/Ascent"] = PDFStream.intNum(font.hhea.ascent); |
| 37 | params["/Descent"] = PDFStream.intNum(font.hhea.descent); | 39 | params["/Descent"] = PDFStream.intNum(font.hhea.descent); |
| 38 | params["/ItalicAngle"] = PDFStream.intNum(0); | 40 | params["/ItalicAngle"] = PDFStream.intNum(0); |
| @@ -33,7 +33,8 @@ class PDFFormXObject extends PDFXObject { | @@ -33,7 +33,8 @@ class PDFFormXObject extends PDFXObject { | ||
| 33 | /// set matrix | 33 | /// set matrix |
| 34 | void setMatrix(Matrix4 t) { | 34 | void setMatrix(Matrix4 t) { |
| 35 | var s = t.storage; | 35 | var s = t.storage; |
| 36 | - params["/Matrix"] = PDFStream.string("[${s[0]} ${s[1]} ${s[4]} ${s[5]} ${s[12]} ${s[13]}]"); | 36 | + params["/Matrix"] = |
| 37 | + PDFStream.string("[${s[0]} ${s[1]} ${s[4]} ${s[5]} ${s[12]} ${s[13]}]"); | ||
| 37 | } | 38 | } |
| 38 | 39 | ||
| 39 | @override | 40 | @override |
| @@ -174,8 +174,7 @@ class PDFGraphics { | @@ -174,8 +174,7 @@ class PDFGraphics { | ||
| 174 | /// | 174 | /// |
| 175 | /// @param c Color to use | 175 | /// @param c Color to use |
| 176 | void setColor(PDFColor color) { | 176 | void setColor(PDFColor color) { |
| 177 | - buf.putString("${color.r} ${color.g} ${color.b} rg ${color.r} ${color.g} ${color | ||
| 178 | - .b} RG\n"); | 177 | + buf.putString("${color.r} ${color.g} ${color.b} rg ${color.r} ${color.g} ${color.b} RG\n"); |
| 179 | } | 178 | } |
| 180 | 179 | ||
| 181 | /// Set the transformation Matrix | 180 | /// Set the transformation Matrix |
| @@ -26,7 +26,8 @@ class PDFInfo extends PDFObject { | @@ -26,7 +26,8 @@ class PDFInfo extends PDFObject { | ||
| 26 | String keywords; | 26 | String keywords; |
| 27 | 27 | ||
| 28 | /// @param title Title of this document | 28 | /// @param title Title of this document |
| 29 | - PDFInfo(PDFDocument pdfDocument, {this.title, this.author, this.creator, this.subject, this.keywords}) | 29 | + PDFInfo(PDFDocument pdfDocument, |
| 30 | + {this.title, this.author, this.creator, this.subject, this.keywords}) | ||
| 30 | : super(pdfDocument, null) { | 31 | : super(pdfDocument, null) { |
| 31 | params["/Producer"] = PDFStream.text("dpdf - David PHAM-VAN"); | 32 | params["/Producer"] = PDFStream.text("dpdf - David PHAM-VAN"); |
| 32 | } | 33 | } |
| @@ -76,7 +76,8 @@ class PDFOutline extends PDFObject { | @@ -76,7 +76,8 @@ class PDFOutline extends PDFObject { | ||
| 76 | PDFOutline add({String title, PDFPage dest, double x, y, w, h}) { | 76 | PDFOutline add({String title, PDFPage dest, double x, y, w, h}) { |
| 77 | var xy1 = dest.cxy(x, y + h); | 77 | var xy1 = dest.cxy(x, y + h); |
| 78 | var xy2 = dest.cxy(x + w, y); | 78 | var xy2 = dest.cxy(x + w, y); |
| 79 | - PDFOutline outline = new PDFOutline(pdfDocument, title: title, dest: dest, l: xy1.w, b: xy1.h, r: xy2.w, t: xy2.h); | 79 | + PDFOutline outline = new PDFOutline(pdfDocument, |
| 80 | + title: title, dest: dest, l: xy1.w, b: xy1.h, r: xy2.w, t: xy2.h); | ||
| 80 | // Tell the outline of ourselves | 81 | // Tell the outline of ourselves |
| 81 | outline.parent = this; | 82 | outline.parent = this; |
| 82 | return outline; | 83 | return outline; |
| @@ -48,7 +48,8 @@ class PDFPage extends PDFObject { | @@ -48,7 +48,8 @@ class PDFPage extends PDFObject { | ||
| 48 | /// @see PageFormat#LANDSCAPE | 48 | /// @see PageFormat#LANDSCAPE |
| 49 | /// @see PageFormat#REVERSE_LANDSCAPE | 49 | /// @see PageFormat#REVERSE_LANDSCAPE |
| 50 | /// @param pageFormat PageFormat describing the page size | 50 | /// @param pageFormat PageFormat describing the page size |
| 51 | - PDFPage(PDFDocument pdfDocument, {int orientation, this.pageFormat}) : super(pdfDocument, "/Page") { | 51 | + PDFPage(PDFDocument pdfDocument, {int orientation, this.pageFormat}) |
| 52 | + : super(pdfDocument, "/Page") { | ||
| 52 | pdfDocument.pdfPageList.pages.add(this); | 53 | pdfDocument.pdfPageList.pages.add(this); |
| 53 | if (pageFormat == null) pageFormat = new PDFPageFormat(); | 54 | if (pageFormat == null) pageFormat = new PDFPageFormat(); |
| 54 | setOrientation(orientation); | 55 | setOrientation(orientation); |
| @@ -132,12 +133,16 @@ class PDFPage extends PDFObject { | @@ -132,12 +133,16 @@ class PDFPage extends PDFObject { | ||
| 132 | /// @param vh Height of the view area | 133 | /// @param vh Height of the view area |
| 133 | /// @return Returns the annotation, so other settings can be changed. | 134 | /// @return Returns the annotation, so other settings can be changed. |
| 134 | PDFAnnot addLink(double x, y, w, h, PDFObject dest, | 135 | PDFAnnot addLink(double x, y, w, h, PDFObject dest, |
| 135 | - [double vx = PDFAnnot.FULL_PAGE, vy = PDFAnnot.FULL_PAGE, vw = PDFAnnot.FULL_PAGE, vh = PDFAnnot.FULL_PAGE]) { | 136 | + [double vx = PDFAnnot.FULL_PAGE, |
| 137 | + vy = PDFAnnot.FULL_PAGE, | ||
| 138 | + vw = PDFAnnot.FULL_PAGE, | ||
| 139 | + vh = PDFAnnot.FULL_PAGE]) { | ||
| 136 | var xy1 = cxy(x, y + h); | 140 | var xy1 = cxy(x, y + h); |
| 137 | var xy2 = cxy(x + w, y); | 141 | var xy2 = cxy(x + w, y); |
| 138 | var xy3 = cxy(vx, vy + vh); | 142 | var xy3 = cxy(vx, vy + vh); |
| 139 | var xy4 = cxy(vx + vw, vy); | 143 | var xy4 = cxy(vx + vw, vy); |
| 140 | - PDFAnnot ob = new PDFAnnot.link(this, xy1.w, xy1.h, xy2.w, xy2.h, dest, xy3.w, xy3.h, xy4.w, xy4.h); | 144 | + PDFAnnot ob = |
| 145 | + new PDFAnnot.link(this, xy1.w, xy1.h, xy2.w, xy2.h, dest, xy3.w, xy3.h, xy4.w, xy4.h); | ||
| 141 | return ob; | 146 | return ob; |
| 142 | } | 147 | } |
| 143 | 148 | ||
| @@ -152,7 +157,8 @@ class PDFPage extends PDFObject { | @@ -152,7 +157,8 @@ class PDFPage extends PDFObject { | ||
| 152 | PDFOutline addOutline(String title, {double x, double y, double w, double h}) { | 157 | PDFOutline addOutline(String title, {double x, double y, double w, double h}) { |
| 153 | PDFPoint xy1 = cxy(x, y + h); | 158 | PDFPoint xy1 = cxy(x, y + h); |
| 154 | PDFPoint xy2 = cxy(x + w, y); | 159 | PDFPoint xy2 = cxy(x + w, y); |
| 155 | - PDFOutline outline = new PDFOutline(pdfDocument, title: title, dest: this, l: xy1.w, b: xy1.h, r: xy2.w, t: xy2.h); | 160 | + PDFOutline outline = new PDFOutline(pdfDocument, |
| 161 | + title: title, dest: this, l: xy1.w, b: xy1.h, r: xy2.w, t: xy2.h); | ||
| 156 | pdfDocument.outline.outlines.add(outline); | 162 | pdfDocument.outline.outlines.add(outline); |
| 157 | return outline; | 163 | return outline; |
| 158 | } | 164 | } |
| @@ -166,7 +172,8 @@ class PDFPage extends PDFObject { | @@ -166,7 +172,8 @@ class PDFPage extends PDFObject { | ||
| 166 | params["/Parent"] = pdfDocument.pdfPageList.ref(); | 172 | params["/Parent"] = pdfDocument.pdfPageList.ref(); |
| 167 | 173 | ||
| 168 | // the /MediaBox for the page size | 174 | // the /MediaBox for the page size |
| 169 | - params["/MediaBox"] = new PDFStream()..putStringArray([0, 0, pageFormat.getWidth(), pageFormat.getHeight()]); | 175 | + params["/MediaBox"] = new PDFStream() |
| 176 | + ..putStringArray([0, 0, pageFormat.getWidth(), pageFormat.getHeight()]); | ||
| 170 | 177 | ||
| 171 | // Rotation (if not zero) | 178 | // Rotation (if not zero) |
| 172 | // if(rotate!=0) { | 179 | // if(rotate!=0) { |
| @@ -119,7 +119,8 @@ class PDFStream { | @@ -119,7 +119,8 @@ class PDFStream { | ||
| 119 | putString(">>"); | 119 | putString(">>"); |
| 120 | } | 120 | } |
| 121 | 121 | ||
| 122 | - static PDFStream dictionary(Map<String, PDFStream> values) => new PDFStream()..putDictionary(values); | 122 | + static PDFStream dictionary(Map<String, PDFStream> values) => |
| 123 | + new PDFStream()..putDictionary(values); | ||
| 123 | 124 | ||
| 124 | void putObjectDictionary(Map<String, PDFObject> values) { | 125 | void putObjectDictionary(Map<String, PDFObject> values) { |
| 125 | putString("<< "); | 126 | putString("<< "); |
| @@ -28,7 +28,8 @@ class PDFTTFFont extends PDFFont { | @@ -28,7 +28,8 @@ class PDFTTFFont extends PDFFont { | ||
| 28 | int _charMax; | 28 | int _charMax; |
| 29 | 29 | ||
| 30 | /// Constructs a PDFTTFFont | 30 | /// Constructs a PDFTTFFont |
| 31 | - PDFTTFFont(PDFDocument pdfDocument, Uint8List bytes) : super(pdfDocument, subtype: "/TrueType") { | 31 | + PDFTTFFont(PDFDocument pdfDocument, Uint8List bytes) |
| 32 | + : super(pdfDocument, subtype: "/TrueType") { | ||
| 32 | _font = new TtfParser().parse(bytes); | 33 | _font = new TtfParser().parse(bytes); |
| 33 | baseFont = "/" + _font.name.fontName.replaceAll(" ", ""); | 34 | baseFont = "/" + _font.name.fontName.replaceAll(" ", ""); |
| 34 | 35 |
| @@ -36,7 +36,8 @@ class PDFXref { | @@ -36,7 +36,8 @@ class PDFXref { | ||
| 36 | 36 | ||
| 37 | /// @return The xref in the format of the xref section in the PDF file | 37 | /// @return The xref in the format of the xref section in the PDF file |
| 38 | String ref() { | 38 | String ref() { |
| 39 | - String rs = offset.toString().padLeft(10, '0') + " " + generation.toString().padLeft(5, '0'); | 39 | + String rs = |
| 40 | + offset.toString().padLeft(10, '0') + " " + generation.toString().padLeft(5, '0'); | ||
| 40 | 41 | ||
| 41 | if (generation == 65535) return rs + " f "; | 42 | if (generation == 65535) return rs + " f "; |
| 42 | return rs + " n "; | 43 | return rs + " n "; |
-
Please register or login to post a comment