build method

  1. @override
void build(
  1. PdfPage page,
  2. PdfObject<PdfDataType> object,
  3. PdfDict<PdfDataType> params
)
override

Writes widget annotation fields.

Implementation

@override
/// Writes widget annotation fields.
void build(PdfPage page, PdfObject object, PdfDict params) {
  super.build(page, object, params);

  params[PdfNameTokens.ft] = PdfName(fieldType);

  if (fieldName != null) {
    params[PdfNameTokens.t] = PdfString.fromString(fieldName!);
  }

  final mk = PdfDict();
  if (color != null) {
    mk.values[PdfNameTokens.bc] = PdfArray.fromColor(color!);
  }

  if (backgroundColor != null) {
    mk.values[PdfNameTokens.bg] = PdfArray.fromColor(backgroundColor!);
  }

  if (mk.values.isNotEmpty) {
    params[PdfNameTokens.mk] = mk;
  }

  if (highlighting != null) {
    switch (highlighting!) {
      case PdfAnnotHighlighting.none:
        params[PdfNameTokens.h] = const PdfName(PdfNameTokens.n);
        break;
      case PdfAnnotHighlighting.invert:
        params[PdfNameTokens.h] = const PdfName(PdfNameTokens.i);
        break;
      case PdfAnnotHighlighting.outline:
        params[PdfNameTokens.h] = const PdfName(PdfNameTokens.o);
        break;
      case PdfAnnotHighlighting.push:
        params[PdfNameTokens.h] = const PdfName(PdfNameTokens.p);
        break;
      case PdfAnnotHighlighting.toggle:
        params[PdfNameTokens.h] = const PdfName(PdfNameTokens.t);
        break;
    }
  }
}