我已经使用了这个解决方案How Can I generate QR code and Show it on a PDF page in Flutter,但二维码仍然没有打印出来。
我的代码:
pdf.BarcodeWidget(
color: PdfColor.fromHex("#000000"),
barcode:pdf.Barcode.qrCode(), data: "My name is Bilal"
),这是我的函数:
Future<Uint8List> func_generate_sale_pdf(PdfPageFormat format) {
final doc = pdf.Document();
doc.addPage(pdf.Page(build: (pdf.Context context) {
return pdf.Center(
child: pdf.Column(children: <pdf.Widget>[
pdf.Text(config.app_name.toUpperCase(),
style:
pdf.TextStyle(fontSize: 32, fontWeight: pdf.FontWeight.bold)),
pdf.SizedBox(height: 25),
pdf.Text(
" ${languages.skeleton_language_objects[config.app_language]['for_enquiries_call']} : ${config.app_contacts}",
style: pdf.TextStyle(fontSize: 22)),
pdf.SizedBox(height: 5),
pdf.Text("${config.app_po_box}", style: pdf.TextStyle(fontSize: 22)),
pdf.SizedBox(height: 5),
pdf.Text(
"${languages.skeleton_language_objects[config.app_language]['receipt']} # ${receipt_data['receipt_no']}",
style: pdf.TextStyle(fontSize: 20)),
pdf.SizedBox(height: 5),
pdf.Text("${receipt_data['date_time']}",
style: pdf.TextStyle(fontSize: 20)),
pdf.SizedBox(height: 30),
pdf.Container(
alignment: pdf.Alignment.topLeft,
child: pdf.Text("${receipt_data['items_list'].toString()}",
style: pdf.TextStyle(
fontSize: 22, fontWeight: pdf.FontWeight.normal),
textAlign: pdf.TextAlign.left),
),
pdf.SizedBox(height: 30),
pdf.Container(
child: pdf.Row(children: <pdf.Widget>[
pdf.Expanded(
flex: 1,
child: pdf.Text(
languages.skeleton_language_objects[config.app_language]
['total_amount'],
style: pdf.TextStyle(
fontSize: 20, fontWeight: pdf.FontWeight.bold),
textAlign: pdf.TextAlign.left),
),
pdf.Expanded(
flex: 1,
child: pdf.Text("${receipt_data['total_amount']}",
style: pdf.TextStyle(fontSize: 20),
textAlign: pdf.TextAlign.right),
),
])),
pdf.SizedBox(height: 10),
pdf.Container(
child: pdf.Row(children: <pdf.Widget>[
pdf.Expanded(
flex: 1,
child: pdf.Text(
languages.skeleton_language_objects[config.app_language]
['total_items'],
style: pdf.TextStyle(
fontSize: 20, fontWeight: pdf.FontWeight.bold),
textAlign: pdf.TextAlign.left),
),
pdf.Expanded(
flex: 1,
child: pdf.Text("${receipt_data['total_items']}",
style: pdf.TextStyle(fontSize: 20),
textAlign: pdf.TextAlign.right),
),
])),
pdf.SizedBox(height: 10),
pdf.Container(
height: 35,
child: pdf.Row(children: <pdf.Widget>[
pdf.Expanded(
flex: 1,
child: pdf.Text(
languages.skeleton_language_objects[config.app_language]
['total_tax'],
style: pdf.TextStyle(
fontSize: 20, fontWeight: pdf.FontWeight.bold),
textAlign: pdf.TextAlign.left),
),
pdf.Expanded(
flex: 1,
child: pdf.Text("${receipt_data['total_tax_amount']}",
style: pdf.TextStyle(fontSize: 20),
textAlign: pdf.TextAlign.right),
),
])),
pdf.SizedBox(height: 35),
pdf.Text(
languages.skeleton_language_objects[config.app_language]
['thant_you_and_come_again'],
style: pdf.TextStyle(fontSize: 24)),
//From here on, the compiler doesn't print anything.
pdf.BarcodeWidget(
color: PdfColor.fromHex("#000000"),
barcode:pdf.Barcode.qrCode(), data: "My name is Bilal"
),
pdf.Text("SkillzUPP Technologies: +923058431046",
style: pdf.TextStyle(fontSize: 24),
textAlign: pdf.TextAlign.center),
pdf.SizedBox(height: 10),
]),
); // Center
}));
return doc.save();
}除了QR Code之外,所有内容都可以正常打印,并且在该特定行的终端上显示此错误:
Helvetica-Bold has no Unicode support see https://github.com/DavBfr/dart_pdf/wiki/Fonts-Management发布于 2021-05-11 19:07:41
我有一个问题显示行"has no Unicode support..."来解决我在我的项目上创建了一个文件夹字体并添加了一些真正的字体,然后我为文档创建了一个pdf主题,如下所示:
var myTheme = ThemeData.withFont(
base: Font.ttf(await rootBundle.load("fonts/OpenSans-Regular.ttf")),
bold: Font.ttf(await rootBundle.load("fonts/OpenSans-Bold.ttf")),
italic: Font.ttf(await rootBundle.load("fonts/OpenSans-Italic.ttf")),
boldItalic:
Font.ttf(await rootBundle.load("fonts/OpenSans-BoldItalic.ttf")),
);然后我在文档的页面中使用了主题,错误就消失了,如下所示:
Page(theme: myTheme,...)我不确定是否是同样的情况,但我认为你应该试试。
https://stackoverflow.com/questions/67483441
复制相似问题