Bli*_*Man 4 pdf android dart flutter
这是用于生成其他语言字体的 pdf 的代码:
\n\nfinal Uint8List fontData = File('fonts/shivaji05.ttf').readAsBytesSync();\nfinal ttf = Font.ttf(fontData.buffer.asByteData());\nRun Code Online (Sandbox Code Playgroud)\n\n这就是我在文本中使用定义字体的方式:
\n\nText('\xe0\xa4\xb8\xe0\xa4\xbe\xe0\xa4\x88 \xe0\xa4\xac\xe0\xa4\xbe\xe0\xa4\xac\xe0\xa4\xbe', textScaleFactor: 2, style: new TextStyle(font: ttf)),\nRun Code Online (Sandbox Code Playgroud)\n\n错误日志
\n\nE/flutter (26251): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: 'package:pdf/src/font.dart': Failed assertion: line 145 pos 14: 'false': \nE/flutter (26251): ---------------------------------------------\nE/flutter (26251): Can not decode the string to Latin1.\nE/flutter (26251): This font does not support Unicode characters.\nE/flutter (26251): If you want to use strings other than Latin strings, use a TrueType (TTF) font instead.</i>\nRun Code Online (Sandbox Code Playgroud)\n
小智 5
当我尝试使用 \xe2\x80\x9c Pdf 创建库\xe2\x80\x9d 在 flutter 应用程序中生成 pdf 时,我遇到了类似的错误。生成 pdf 时,在我的源文本中具有正确的单引号“ \xe2\x80\x99 ”“’”。
\n\n有错误的代码
\n\nfinal String soutceString = \'My source text with " \xe2\x80\x99 "\';\n\nfinal Document pdf = Document(deflate: zlib.encode);\n\npdf.addPage(\n MultiPage(\n build: (Context context) => <Widget>[\n Paragraph(text: soutceString),\n ]\n )\n);\nRun Code Online (Sandbox Code Playgroud)\n\n错误日志
\n\nflutter: \'package:pdf/src/font.dart\': Failed assertion: line 145 pos 14: \'false\':\n---------------------------------------------\nCan not decode the string to Latin1.\nThis font does not support Unicode characters.\nIf you want to use strings other than Latin strings, use a TrueType (TTF) font instead. \nRun Code Online (Sandbox Code Playgroud)\n\n当我发现错误的符号时,我只是替换它。
\n\n具有快速修复功能的代码
\n\n\nfinal String sourceString = \'My source text with " \xe2\x80\x99 "\';\n\nfinal Document pdf = Document(deflate: zlib.encode);\n\nsourceString.replaceAll(\'\xe2\x80\x99\', \'`\'),\n\npdf.addPage(MultiPage(\n build: (Context context) => <Widget>[\n Paragraph(text: sourceString)\n ]\n )\n);\nRun Code Online (Sandbox Code Playgroud)\n\n但我担心将来会出现新的错误符号。我将 arial.ttf 字体添加到资产中(arial.ttf 包含我的符号)并使用它。添加资产
\n\n最适合我的情况
\n\nimport \'package:flutter/services.dart\' show rootBundle;\n\n\n\nfinal String sourceString = \'My source text with " \xe2\x80\x99 "\';\n\nfinal Document pdf = Document(deflate: zlib.encode);\n\npdf.addPage(MultiPage(\n theme: Theme.withFont(\n base: Font.ttf(await rootBundle.load("assets/arial.ttf")),\n bold: Font.ttf(await rootBundle.load("assets/arial.ttf")),\n italic: Font.ttf(await rootBundle.load("assets/arial.ttf")),\n boldItalic: Font.ttf(await rootBundle.load("assets/arial.ttf")),\n ),\n build: (Context context) => <Widget>[\n Paragraph(text: sourceString)\n ]\n )\n);\n\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
5947 次 |
| 最近记录: |