pdfAsciiText function

String pdfAsciiText(
  1. String text
)

Maps typographic Unicode to ASCII for PDF built-in fonts (Helvetica).

Implementation

String pdfAsciiText(String text) {
  const replacements = <String, String>{
    '\u2013': '-', // en dash
    '\u2014': '-', // em dash
    '\u2212': '-', // minus sign
    '\u2022': '*', // bullet
    '\u2018': "'",
    '\u2019': "'",
    '\u201C': '"',
    '\u201D': '"',
    '\u2026': '...',
  };
  var result = text;
  replacements.forEach((from, to) {
    result = result.replaceAll(from, to);
  });
  final buffer = StringBuffer();
  for (final codeUnit in result.codeUnits) {
    if (codeUnit <= 0xFF) {
      buffer.writeCharCode(codeUnit);
    } else {
      buffer.write('?');
    }
  }
  return buffer.toString();
}