Showing
5 changed files
with
105 additions
and
11 deletions
| @@ -104,8 +104,10 @@ class PdfChoiceField extends PdfAnnotWidget { | @@ -104,8 +104,10 @@ class PdfChoiceField extends PdfAnnotWidget { | ||
| 104 | } | 104 | } |
| 105 | 105 | ||
| 106 | class PdfAnnot extends PdfObject<PdfDict> { | 106 | class PdfAnnot extends PdfObject<PdfDict> { |
| 107 | - PdfAnnot(this.pdfPage, this.annot) | 107 | + PdfAnnot(this.pdfPage, this.annot, {int? objser, int objgen = 0}) |
| 108 | : super(pdfPage.pdfDocument, | 108 | : super(pdfPage.pdfDocument, |
| 109 | + objser: objser, | ||
| 110 | + objgen: objgen, | ||
| 109 | params: PdfDict.values({ | 111 | params: PdfDict.values({ |
| 110 | '/Type': const PdfName('/Annot'), | 112 | '/Type': const PdfName('/Annot'), |
| 111 | })) { | 113 | })) { |
| @@ -142,7 +142,10 @@ class PdfCatalog extends PdfObject<PdfDict> { | @@ -142,7 +142,10 @@ class PdfCatalog extends PdfObject<PdfDict> { | ||
| 142 | (acroForm['/SigFlags'] as PdfNum? ?? const PdfNum(0)); | 142 | (acroForm['/SigFlags'] as PdfNum? ?? const PdfNum(0)); |
| 143 | final fields = (acroForm['/Fields'] ??= PdfArray()) as PdfArray; | 143 | final fields = (acroForm['/Fields'] ??= PdfArray()) as PdfArray; |
| 144 | for (final w in widgets) { | 144 | for (final w in widgets) { |
| 145 | - fields.add(w.ref()); | 145 | + final ref = w.ref(); |
| 146 | + if (!fields.values.contains(ref)) { | ||
| 147 | + fields.add(ref); | ||
| 148 | + } | ||
| 146 | } | 149 | } |
| 147 | } | 150 | } |
| 148 | } | 151 | } |
| @@ -19,6 +19,7 @@ import 'dart:math'; | @@ -19,6 +19,7 @@ import 'dart:math'; | ||
| 19 | import 'package:vector_math/vector_math_64.dart'; | 19 | import 'package:vector_math/vector_math_64.dart'; |
| 20 | 20 | ||
| 21 | import '../../pdf.dart'; | 21 | import '../../pdf.dart'; |
| 22 | +import '../pdf/format/indirect.dart'; | ||
| 22 | import 'geometry.dart'; | 23 | import 'geometry.dart'; |
| 23 | import 'shape.dart'; | 24 | import 'shape.dart'; |
| 24 | import 'text_style.dart'; | 25 | import 'text_style.dart'; |
| @@ -32,6 +33,7 @@ class Anchor extends SingleChildWidget { | @@ -32,6 +33,7 @@ class Anchor extends SingleChildWidget { | ||
| 32 | this.description, | 33 | this.description, |
| 33 | this.zoom, | 34 | this.zoom, |
| 34 | this.setX = false, | 35 | this.setX = false, |
| 36 | + this.replaces, | ||
| 35 | }) : super(child: child); | 37 | }) : super(child: child); |
| 36 | 38 | ||
| 37 | final String name; | 39 | final String name; |
| @@ -42,6 +44,8 @@ class Anchor extends SingleChildWidget { | @@ -42,6 +44,8 @@ class Anchor extends SingleChildWidget { | ||
| 42 | 44 | ||
| 43 | final bool setX; | 45 | final bool setX; |
| 44 | 46 | ||
| 47 | + final PdfIndirect? replaces; | ||
| 48 | + | ||
| 45 | @override | 49 | @override |
| 46 | void paint(Context context) { | 50 | void paint(Context context) { |
| 47 | super.paint(context); | 51 | super.paint(context); |
| @@ -60,7 +64,12 @@ class Anchor extends SingleChildWidget { | @@ -60,7 +64,12 @@ class Anchor extends SingleChildWidget { | ||
| 60 | if (description != null) { | 64 | if (description != null) { |
| 61 | final rb = mat.transform3(Vector3(box!.right, box!.top, 0)); | 65 | final rb = mat.transform3(Vector3(box!.right, box!.top, 0)); |
| 62 | final iBox = PdfRect.fromLTRB(lt.x, lt.y, rb.x, rb.y); | 66 | final iBox = PdfRect.fromLTRB(lt.x, lt.y, rb.x, rb.y); |
| 63 | - PdfAnnot(context.page, PdfAnnotText(rect: iBox, content: description!)); | 67 | + PdfAnnot( |
| 68 | + context.page, | ||
| 69 | + PdfAnnotText(rect: iBox, content: description!), | ||
| 70 | + objser: replaces?.ser, | ||
| 71 | + objgen: replaces?.gen ?? 0, | ||
| 72 | + ); | ||
| 64 | } | 73 | } |
| 65 | } | 74 | } |
| 66 | } | 75 | } |
| @@ -70,10 +79,12 @@ abstract class AnnotationBuilder { | @@ -70,10 +79,12 @@ abstract class AnnotationBuilder { | ||
| 70 | } | 79 | } |
| 71 | 80 | ||
| 72 | class AnnotationLink extends AnnotationBuilder { | 81 | class AnnotationLink extends AnnotationBuilder { |
| 73 | - AnnotationLink(this.destination); | 82 | + AnnotationLink(this.destination, {this.replaces}); |
| 74 | 83 | ||
| 75 | final String destination; | 84 | final String destination; |
| 76 | 85 | ||
| 86 | + final PdfIndirect? replaces; | ||
| 87 | + | ||
| 77 | @override | 88 | @override |
| 78 | PdfAnnot build(Context context, PdfRect? box) { | 89 | PdfAnnot build(Context context, PdfRect? box) { |
| 79 | return PdfAnnot( | 90 | return PdfAnnot( |
| @@ -82,6 +93,8 @@ class AnnotationLink extends AnnotationBuilder { | @@ -82,6 +93,8 @@ class AnnotationLink extends AnnotationBuilder { | ||
| 82 | rect: context.localToGlobal(box!), | 93 | rect: context.localToGlobal(box!), |
| 83 | dest: destination, | 94 | dest: destination, |
| 84 | ), | 95 | ), |
| 96 | + objser: replaces?.ser, | ||
| 97 | + objgen: replaces?.gen ?? 0, | ||
| 85 | ); | 98 | ); |
| 86 | } | 99 | } |
| 87 | } | 100 | } |
| @@ -92,6 +105,7 @@ class AnnotationUrl extends AnnotationBuilder { | @@ -92,6 +105,7 @@ class AnnotationUrl extends AnnotationBuilder { | ||
| 92 | this.date, | 105 | this.date, |
| 93 | this.subject, | 106 | this.subject, |
| 94 | this.author, | 107 | this.author, |
| 108 | + this.replaces, | ||
| 95 | }); | 109 | }); |
| 96 | 110 | ||
| 97 | final String destination; | 111 | final String destination; |
| @@ -102,6 +116,8 @@ class AnnotationUrl extends AnnotationBuilder { | @@ -102,6 +116,8 @@ class AnnotationUrl extends AnnotationBuilder { | ||
| 102 | 116 | ||
| 103 | final String? subject; | 117 | final String? subject; |
| 104 | 118 | ||
| 119 | + final PdfIndirect? replaces; | ||
| 120 | + | ||
| 105 | @override | 121 | @override |
| 106 | PdfAnnot build(Context context, PdfRect? box) { | 122 | PdfAnnot build(Context context, PdfRect? box) { |
| 107 | return PdfAnnot( | 123 | return PdfAnnot( |
| @@ -113,6 +129,8 @@ class AnnotationUrl extends AnnotationBuilder { | @@ -113,6 +129,8 @@ class AnnotationUrl extends AnnotationBuilder { | ||
| 113 | author: author, | 129 | author: author, |
| 114 | subject: subject, | 130 | subject: subject, |
| 115 | ), | 131 | ), |
| 132 | + objser: replaces?.ser, | ||
| 133 | + objgen: replaces?.gen ?? 0, | ||
| 116 | ); | 134 | ); |
| 117 | } | 135 | } |
| 118 | } | 136 | } |
| @@ -126,6 +144,7 @@ class AnnotationSquare extends AnnotationBuilder { | @@ -126,6 +144,7 @@ class AnnotationSquare extends AnnotationBuilder { | ||
| 126 | this.date, | 144 | this.date, |
| 127 | this.subject, | 145 | this.subject, |
| 128 | this.content, | 146 | this.content, |
| 147 | + this.replaces, | ||
| 129 | }); | 148 | }); |
| 130 | 149 | ||
| 131 | final PdfColor? color; | 150 | final PdfColor? color; |
| @@ -142,6 +161,8 @@ class AnnotationSquare extends AnnotationBuilder { | @@ -142,6 +161,8 @@ class AnnotationSquare extends AnnotationBuilder { | ||
| 142 | 161 | ||
| 143 | final String? content; | 162 | final String? content; |
| 144 | 163 | ||
| 164 | + final PdfIndirect? replaces; | ||
| 165 | + | ||
| 145 | @override | 166 | @override |
| 146 | PdfAnnot build(Context context, PdfRect? box) { | 167 | PdfAnnot build(Context context, PdfRect? box) { |
| 147 | return PdfAnnot( | 168 | return PdfAnnot( |
| @@ -155,6 +176,8 @@ class AnnotationSquare extends AnnotationBuilder { | @@ -155,6 +176,8 @@ class AnnotationSquare extends AnnotationBuilder { | ||
| 155 | author: author, | 176 | author: author, |
| 156 | subject: subject, | 177 | subject: subject, |
| 157 | ), | 178 | ), |
| 179 | + objser: replaces?.ser, | ||
| 180 | + objgen: replaces?.gen ?? 0, | ||
| 158 | ); | 181 | ); |
| 159 | } | 182 | } |
| 160 | } | 183 | } |
| @@ -168,6 +191,7 @@ class AnnotationCircle extends AnnotationBuilder { | @@ -168,6 +191,7 @@ class AnnotationCircle extends AnnotationBuilder { | ||
| 168 | this.date, | 191 | this.date, |
| 169 | this.subject, | 192 | this.subject, |
| 170 | this.content, | 193 | this.content, |
| 194 | + this.replaces, | ||
| 171 | }); | 195 | }); |
| 172 | 196 | ||
| 173 | final PdfColor? color; | 197 | final PdfColor? color; |
| @@ -184,6 +208,8 @@ class AnnotationCircle extends AnnotationBuilder { | @@ -184,6 +208,8 @@ class AnnotationCircle extends AnnotationBuilder { | ||
| 184 | 208 | ||
| 185 | final String? content; | 209 | final String? content; |
| 186 | 210 | ||
| 211 | + final PdfIndirect? replaces; | ||
| 212 | + | ||
| 187 | @override | 213 | @override |
| 188 | PdfAnnot build(Context context, PdfRect? box) { | 214 | PdfAnnot build(Context context, PdfRect? box) { |
| 189 | return PdfAnnot( | 215 | return PdfAnnot( |
| @@ -197,6 +223,8 @@ class AnnotationCircle extends AnnotationBuilder { | @@ -197,6 +223,8 @@ class AnnotationCircle extends AnnotationBuilder { | ||
| 197 | author: author, | 223 | author: author, |
| 198 | subject: subject, | 224 | subject: subject, |
| 199 | ), | 225 | ), |
| 226 | + objser: replaces?.ser, | ||
| 227 | + objgen: replaces?.gen ?? 0, | ||
| 200 | ); | 228 | ); |
| 201 | } | 229 | } |
| 202 | } | 230 | } |
| @@ -211,6 +239,7 @@ class AnnotationPolygon extends AnnotationBuilder { | @@ -211,6 +239,7 @@ class AnnotationPolygon extends AnnotationBuilder { | ||
| 211 | this.date, | 239 | this.date, |
| 212 | this.subject, | 240 | this.subject, |
| 213 | this.content, | 241 | this.content, |
| 242 | + this.replaces, | ||
| 214 | }); | 243 | }); |
| 215 | 244 | ||
| 216 | final List<PdfPoint> points; | 245 | final List<PdfPoint> points; |
| @@ -229,6 +258,8 @@ class AnnotationPolygon extends AnnotationBuilder { | @@ -229,6 +258,8 @@ class AnnotationPolygon extends AnnotationBuilder { | ||
| 229 | 258 | ||
| 230 | final String? content; | 259 | final String? content; |
| 231 | 260 | ||
| 261 | + final PdfIndirect? replaces; | ||
| 262 | + | ||
| 232 | @override | 263 | @override |
| 233 | PdfAnnot build(Context context, PdfRect? box) { | 264 | PdfAnnot build(Context context, PdfRect? box) { |
| 234 | final globalPoints = | 265 | final globalPoints = |
| @@ -254,7 +285,12 @@ class AnnotationPolygon extends AnnotationBuilder { | @@ -254,7 +285,12 @@ class AnnotationPolygon extends AnnotationBuilder { | ||
| 254 | subject: subject, | 285 | subject: subject, |
| 255 | ); | 286 | ); |
| 256 | 287 | ||
| 257 | - return PdfAnnot(context.page, pdfAnnotPolygon); | 288 | + return PdfAnnot( |
| 289 | + context.page, | ||
| 290 | + pdfAnnotPolygon, | ||
| 291 | + objser: replaces?.ser, | ||
| 292 | + objgen: replaces?.gen ?? 0, | ||
| 293 | + ); | ||
| 258 | } | 294 | } |
| 259 | } | 295 | } |
| 260 | 296 | ||
| @@ -267,6 +303,7 @@ class AnnotationInk extends AnnotationBuilder { | @@ -267,6 +303,7 @@ class AnnotationInk extends AnnotationBuilder { | ||
| 267 | this.date, | 303 | this.date, |
| 268 | this.subject, | 304 | this.subject, |
| 269 | this.content, | 305 | this.content, |
| 306 | + this.replaces, | ||
| 270 | }); | 307 | }); |
| 271 | 308 | ||
| 272 | final List<List<PdfPoint>> points; | 309 | final List<List<PdfPoint>> points; |
| @@ -283,6 +320,8 @@ class AnnotationInk extends AnnotationBuilder { | @@ -283,6 +320,8 @@ class AnnotationInk extends AnnotationBuilder { | ||
| 283 | 320 | ||
| 284 | final String? content; | 321 | final String? content; |
| 285 | 322 | ||
| 323 | + final PdfIndirect? replaces; | ||
| 324 | + | ||
| 286 | @override | 325 | @override |
| 287 | PdfAnnot build(Context context, PdfRect? box) { | 326 | PdfAnnot build(Context context, PdfRect? box) { |
| 288 | final globalPoints = points | 327 | final globalPoints = points |
| @@ -313,7 +352,12 @@ class AnnotationInk extends AnnotationBuilder { | @@ -313,7 +352,12 @@ class AnnotationInk extends AnnotationBuilder { | ||
| 313 | content: content, | 352 | content: content, |
| 314 | ); | 353 | ); |
| 315 | 354 | ||
| 316 | - return PdfAnnot(context.page, pdfAnnotInk); | 355 | + return PdfAnnot( |
| 356 | + context.page, | ||
| 357 | + pdfAnnotInk, | ||
| 358 | + objser: replaces?.ser, | ||
| 359 | + objgen: replaces?.gen ?? 0, | ||
| 360 | + ); | ||
| 317 | } | 361 | } |
| 318 | } | 362 | } |
| 319 | 363 | ||
| @@ -335,6 +379,7 @@ class AnnotationTextField extends AnnotationBuilder { | @@ -335,6 +379,7 @@ class AnnotationTextField extends AnnotationBuilder { | ||
| 335 | this.value, | 379 | this.value, |
| 336 | this.defaultValue, | 380 | this.defaultValue, |
| 337 | this.textStyle, | 381 | this.textStyle, |
| 382 | + this.replaces, | ||
| 338 | }); | 383 | }); |
| 339 | 384 | ||
| 340 | final String? name; | 385 | final String? name; |
| @@ -369,6 +414,8 @@ class AnnotationTextField extends AnnotationBuilder { | @@ -369,6 +414,8 @@ class AnnotationTextField extends AnnotationBuilder { | ||
| 369 | 414 | ||
| 370 | final String? subject; | 415 | final String? subject; |
| 371 | 416 | ||
| 417 | + final PdfIndirect? replaces; | ||
| 418 | + | ||
| 372 | @override | 419 | @override |
| 373 | PdfAnnot build(Context context, PdfRect? box) { | 420 | PdfAnnot build(Context context, PdfRect? box) { |
| 374 | final _textStyle = Theme.of(context).defaultTextStyle.merge(textStyle); | 421 | final _textStyle = Theme.of(context).defaultTextStyle.merge(textStyle); |
| @@ -396,6 +443,8 @@ class AnnotationTextField extends AnnotationBuilder { | @@ -396,6 +443,8 @@ class AnnotationTextField extends AnnotationBuilder { | ||
| 396 | fontSize: _textStyle.fontSize!, | 443 | fontSize: _textStyle.fontSize!, |
| 397 | textColor: _textStyle.color!, | 444 | textColor: _textStyle.color!, |
| 398 | ), | 445 | ), |
| 446 | + objser: replaces?.ser, | ||
| 447 | + objgen: replaces?.gen ?? 0, | ||
| 399 | ); | 448 | ); |
| 400 | } | 449 | } |
| 401 | } | 450 | } |
| @@ -20,6 +20,7 @@ import 'dart:typed_data'; | @@ -20,6 +20,7 @@ import 'dart:typed_data'; | ||
| 20 | import 'package:vector_math/vector_math_64.dart'; | 20 | import 'package:vector_math/vector_math_64.dart'; |
| 21 | 21 | ||
| 22 | import '../../pdf.dart'; | 22 | import '../../pdf.dart'; |
| 23 | +import '../pdf/format/indirect.dart'; | ||
| 23 | import 'basic.dart'; | 24 | import 'basic.dart'; |
| 24 | import 'border_radius.dart'; | 25 | import 'border_radius.dart'; |
| 25 | import 'box_border.dart'; | 26 | import 'box_border.dart'; |
| @@ -89,6 +90,7 @@ class ChoiceField extends StatelessWidget with AnnotationAppearance { | @@ -89,6 +90,7 @@ class ChoiceField extends StatelessWidget with AnnotationAppearance { | ||
| 89 | required this.name, | 90 | required this.name, |
| 90 | required this.items, | 91 | required this.items, |
| 91 | this.value, | 92 | this.value, |
| 93 | + this.replaces, | ||
| 92 | }); | 94 | }); |
| 93 | final String name; | 95 | final String name; |
| 94 | final TextStyle? textStyle; | 96 | final TextStyle? textStyle; |
| @@ -96,6 +98,7 @@ class ChoiceField extends StatelessWidget with AnnotationAppearance { | @@ -96,6 +98,7 @@ class ChoiceField extends StatelessWidget with AnnotationAppearance { | ||
| 96 | final double height; | 98 | final double height; |
| 97 | final List<String> items; | 99 | final List<String> items; |
| 98 | final String? value; | 100 | final String? value; |
| 101 | + final PdfIndirect? replaces; | ||
| 99 | 102 | ||
| 100 | @override | 103 | @override |
| 101 | void paint(Context context) { | 104 | void paint(Context context) { |
| @@ -125,7 +128,12 @@ class ChoiceField extends StatelessWidget with AnnotationAppearance { | @@ -125,7 +128,12 @@ class ChoiceField extends StatelessWidget with AnnotationAppearance { | ||
| 125 | ); | 128 | ); |
| 126 | } | 129 | } |
| 127 | 130 | ||
| 128 | - PdfAnnot(context.page, bf); | 131 | + PdfAnnot( |
| 132 | + context.page, | ||
| 133 | + bf, | ||
| 134 | + objser: replaces?.ser, | ||
| 135 | + objgen: replaces?.gen ?? 0, | ||
| 136 | + ); | ||
| 129 | } | 137 | } |
| 130 | 138 | ||
| 131 | @override | 139 | @override |
| @@ -144,6 +152,7 @@ class Checkbox extends SingleChildWidget with AnnotationAppearance { | @@ -144,6 +152,7 @@ class Checkbox extends SingleChildWidget with AnnotationAppearance { | ||
| 144 | double width = 13, | 152 | double width = 13, |
| 145 | double height = 13, | 153 | double height = 13, |
| 146 | BoxDecoration? decoration, | 154 | BoxDecoration? decoration, |
| 155 | + this.replaces, | ||
| 147 | }) : radius = decoration?.shape == BoxShape.circle | 156 | }) : radius = decoration?.shape == BoxShape.circle |
| 148 | ? Radius.circular(math.max(height, width) / 2) | 157 | ? Radius.circular(math.max(height, width) / 2) |
| 149 | : decoration?.borderRadius?.uniform ?? Radius.zero, | 158 | : decoration?.borderRadius?.uniform ?? Radius.zero, |
| @@ -171,6 +180,8 @@ class Checkbox extends SingleChildWidget with AnnotationAppearance { | @@ -171,6 +180,8 @@ class Checkbox extends SingleChildWidget with AnnotationAppearance { | ||
| 171 | 180 | ||
| 172 | final Radius radius; | 181 | final Radius radius; |
| 173 | 182 | ||
| 183 | + final PdfIndirect? replaces; | ||
| 184 | + | ||
| 174 | @override | 185 | @override |
| 175 | void paint(Context context) { | 186 | void paint(Context context) { |
| 176 | super.paint(context); | 187 | super.paint(context); |
| @@ -217,7 +228,12 @@ class Checkbox extends SingleChildWidget with AnnotationAppearance { | @@ -217,7 +228,12 @@ class Checkbox extends SingleChildWidget with AnnotationAppearance { | ||
| 217 | child!, | 228 | child!, |
| 218 | ); | 229 | ); |
| 219 | 230 | ||
| 220 | - PdfAnnot(context.page, bf); | 231 | + PdfAnnot( |
| 232 | + context.page, | ||
| 233 | + bf, | ||
| 234 | + objser: replaces?.ser, | ||
| 235 | + objgen: replaces?.gen ?? 0, | ||
| 236 | + ); | ||
| 221 | } | 237 | } |
| 222 | } | 238 | } |
| 223 | 239 | ||
| @@ -232,6 +248,7 @@ class FlatButton extends SingleChildWidget with AnnotationAppearance { | @@ -232,6 +248,7 @@ class FlatButton extends SingleChildWidget with AnnotationAppearance { | ||
| 232 | this.flags, | 248 | this.flags, |
| 233 | required Widget child, | 249 | required Widget child, |
| 234 | required this.name, | 250 | required this.name, |
| 251 | + this.replaces, | ||
| 235 | }) : _childDown = Container( | 252 | }) : _childDown = Container( |
| 236 | child: DefaultTextStyle( | 253 | child: DefaultTextStyle( |
| 237 | style: TextStyle(color: textColor), | 254 | style: TextStyle(color: textColor), |
| @@ -282,6 +299,8 @@ class FlatButton extends SingleChildWidget with AnnotationAppearance { | @@ -282,6 +299,8 @@ class FlatButton extends SingleChildWidget with AnnotationAppearance { | ||
| 282 | 299 | ||
| 283 | final Set<PdfAnnotFlags>? flags; | 300 | final Set<PdfAnnotFlags>? flags; |
| 284 | 301 | ||
| 302 | + final PdfIndirect? replaces; | ||
| 303 | + | ||
| 285 | @override | 304 | @override |
| 286 | void paint(Context context) { | 305 | void paint(Context context) { |
| 287 | super.paint(context); | 306 | super.paint(context); |
| @@ -300,7 +319,12 @@ class FlatButton extends SingleChildWidget with AnnotationAppearance { | @@ -300,7 +319,12 @@ class FlatButton extends SingleChildWidget with AnnotationAppearance { | ||
| 300 | drawAppearance(context, bf, mat, _childRollover, | 319 | drawAppearance(context, bf, mat, _childRollover, |
| 301 | type: PdfAnnotAppearance.rollover); | 320 | type: PdfAnnotAppearance.rollover); |
| 302 | 321 | ||
| 303 | - PdfAnnot(context.page, bf); | 322 | + PdfAnnot( |
| 323 | + context.page, | ||
| 324 | + bf, | ||
| 325 | + objser: replaces?.ser, | ||
| 326 | + objgen: replaces?.gen ?? 0, | ||
| 327 | + ); | ||
| 304 | } | 328 | } |
| 305 | } | 329 | } |
| 306 | 330 | ||
| @@ -323,6 +347,7 @@ class TextField extends StatelessWidget with AnnotationAppearance { | @@ -323,6 +347,7 @@ class TextField extends StatelessWidget with AnnotationAppearance { | ||
| 323 | this.value, | 347 | this.value, |
| 324 | this.defaultValue, | 348 | this.defaultValue, |
| 325 | this.textStyle, | 349 | this.textStyle, |
| 350 | + this.replaces, | ||
| 326 | }); | 351 | }); |
| 327 | 352 | ||
| 328 | final Widget? child; | 353 | final Widget? child; |
| @@ -342,6 +367,7 @@ class TextField extends StatelessWidget with AnnotationAppearance { | @@ -342,6 +367,7 @@ class TextField extends StatelessWidget with AnnotationAppearance { | ||
| 342 | final String? value; | 367 | final String? value; |
| 343 | final String? defaultValue; | 368 | final String? defaultValue; |
| 344 | final TextStyle? textStyle; | 369 | final TextStyle? textStyle; |
| 370 | + final PdfIndirect? replaces; | ||
| 345 | 371 | ||
| 346 | @override | 372 | @override |
| 347 | Widget build(Context context) { | 373 | Widget build(Context context) { |
| @@ -386,7 +412,12 @@ class TextField extends StatelessWidget with AnnotationAppearance { | @@ -386,7 +412,12 @@ class TextField extends StatelessWidget with AnnotationAppearance { | ||
| 386 | ); | 412 | ); |
| 387 | } | 413 | } |
| 388 | 414 | ||
| 389 | - PdfAnnot(context.page, tf); | 415 | + PdfAnnot( |
| 416 | + context.page, | ||
| 417 | + tf, | ||
| 418 | + objser: replaces?.ser, | ||
| 419 | + objgen: replaces?.gen ?? 0, | ||
| 420 | + ); | ||
| 390 | } | 421 | } |
| 391 | } | 422 | } |
| 392 | 423 | ||
| @@ -405,6 +436,7 @@ class Signature extends SingleChildWidget with AnnotationAppearance { | @@ -405,6 +436,7 @@ class Signature extends SingleChildWidget with AnnotationAppearance { | ||
| 405 | this.crl, | 436 | this.crl, |
| 406 | this.cert, | 437 | this.cert, |
| 407 | this.ocsp, | 438 | this.ocsp, |
| 439 | + this.replaces, | ||
| 408 | }) : value = value ?? crypto, | 440 | }) : value = value ?? crypto, |
| 409 | super(child: child); | 441 | super(child: child); |
| 410 | 442 | ||
| @@ -440,6 +472,8 @@ class Signature extends SingleChildWidget with AnnotationAppearance { | @@ -440,6 +472,8 @@ class Signature extends SingleChildWidget with AnnotationAppearance { | ||
| 440 | /// Online Certificate Status Protocol | 472 | /// Online Certificate Status Protocol |
| 441 | final List<Uint8List>? ocsp; | 473 | final List<Uint8List>? ocsp; |
| 442 | 474 | ||
| 475 | + final PdfIndirect? replaces; | ||
| 476 | + | ||
| 443 | @override | 477 | @override |
| 444 | void paint(Context context) { | 478 | void paint(Context context) { |
| 445 | super.paint(context); | 479 | super.paint(context); |
| @@ -475,6 +509,11 @@ class Signature extends SingleChildWidget with AnnotationAppearance { | @@ -475,6 +509,11 @@ class Signature extends SingleChildWidget with AnnotationAppearance { | ||
| 475 | drawAppearance(context, bf, mat, child!); | 509 | drawAppearance(context, bf, mat, child!); |
| 476 | } | 510 | } |
| 477 | 511 | ||
| 478 | - PdfAnnot(context.page, bf); | 512 | + PdfAnnot( |
| 513 | + context.page, | ||
| 514 | + bf, | ||
| 515 | + objser: replaces?.ser, | ||
| 516 | + objgen: replaces?.gen ?? 0, | ||
| 517 | + ); | ||
| 479 | } | 518 | } |
| 480 | } | 519 | } |
-
Please register or login to post a comment