build method

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

Writes the annotation dictionary entries.

Implementation

@protected
@mustCallSuper
/// Writes the annotation dictionary entries.
void build(PdfPage page, PdfObject object, PdfDict params) {
  params[PdfNameTokens.subtype] = PdfName(subtype);
  params[PdfNameTokens.rect] =
      PdfArray.fromNum([rect.left, rect.bottom, rect.right, rect.top]);

  params[PdfNameTokens.p] = page.ref();

  // handle the border
  if (border == null) {
    params[PdfNameTokens.border] = PdfArray.fromNum(const [0, 0, 0]);
  } else {
    params[PdfNameTokens.bs] = border!.ref();
  }

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

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

  if (flags.isNotEmpty) {
    params[PdfNameTokens.f] = PdfNum(flagValue);
  }

  if (date != null) {
    params[PdfNameTokens.m] = PdfString.fromDate(date!);
  }

  if (color != null) {
    params[PdfNameTokens.c] = PdfArray.fromColor(color!);
  }

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

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

  if (_appearances.isNotEmpty) {
    params[PdfNameTokens.ap] = PdfDict.values(_appearances);
    if (_as != null) {
      params[PdfNameTokens.as] = _as!;
    }
  }
}