pdfAsciiText function
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();
}