@@ -660,7 +660,8 @@ const _orderHeaders = [
' 商品编号 ' , ' 商品名称 ' , ' 系列 ' , ' 规格 ' , ' 批次号 ' ,
' 生产日期 ' , ' 数量 ' , ' 单价 ' , ' 金额 ' , ' 备注 ' ,
] ;
const _orderColFlex = < double > [ 1.5 , 2.0 , 1.1 , 1.3 , 1.6 , 1.3 , 0.7 , 1.1 , 1.2 , 0.9 ] ;
// 针打版式列宽:日期 / 单价 / 金额 加宽,避免大字号下数字、日期断行。
const _orderColFlex = < double > [ 1.4 , 1.8 , 1.0 , 1.2 , 1.6 , 1.45 , 0.7 , 1.45 , 1.45 , 0.7 ] ;
/// 温馨提示文案(入库/出库统一)。
const _kTipsText =
@@ -709,17 +710,21 @@ List<pw.Widget> _buildOrderDoc({
required double totalQty ,
required double totalAmt ,
} ) {
// 样式三「紧凑报表」:左侧竖线点缀 + 抬头左对齐内联 + 灰底信息条 + 密集明细表
// + 数字等宽(内置 Courier,ASCII 数字适用)+ 灰底总计条。
final mono = pw . Font . courier ( ) ;
// 针打友好版式:全纯黑、无灰底纹、纯黑实线边框、字号加大。
// 针式打印机打不出灰色(只能抖成稀疏散点→淡而糊),且小号汉字笔画易糊;
// 故正文加粗(重击更黑)、字号上调、所有灰色一律改纯黑。
// 数字等宽(内置 Courier, ASCII 数字适用)。
final mono = pw . Font . courierBold ( ) ;
final monoBold = pw . Font . courierBold ( ) ;
final cellStyle = pw . TextStyle ( font: font , fontSize: 8.5 ) ;
final numStyle = pw . TextStyle ( font: mono , fontSize: 8.5 ) ;
final cellStyle = pw . TextStyle (
font: bold , fontSize: 9 , fontWeight: pw . FontWeight . bold ) ;
final numStyle = pw . TextStyle ( font: mono , fontSize: 9 ) ;
final headStyle =
pw . TextStyle ( font: bold , fontSize: 8.5 , fontWeight: pw . FontWeight . bold ) ;
final metaStyle = pw . TextStyle ( font: font , fontSize: 9 ) ;
pw . TextStyle ( font: bold , fontSize: 9.5 , fontWeight: pw . FontWeight . bold ) ;
final metaStyle = pw . TextStyle (
font: bold , fontSize: 10 , fontWeight: pw . FontWeight . bold ) ;
final metaBold =
pw . TextStyle ( font: bold , fontSize: 9 , fontWeight: pw . FontWeight . bold ) ;
pw . TextStyle ( font: bold , fontSize: 10.5 , fontWeight: pw . FontWeight . bold ) ;
pw . Widget metaText ( String label , String value , pw . TextAlign align ) = >
pw . Text ( ' $ label : $ value ' , style: metaStyle , textAlign: align ) ;
@@ -742,10 +747,11 @@ List<pw.Widget> _buildOrderDoc({
padding: const pw . EdgeInsets . only ( bottom: 1.5 ) ,
child: pw . Text ( title ,
style: pw . TextStyle (
font: font ,
fontSize: 11 ,
font: bold ,
fontSize: 12 ,
fontWeight: pw . FontWeight . bold ,
letterSpacing: 3 ,
color: PdfColors . grey700 ) ) ,
color: PdfColors . black ) ) ,
) ,
] ,
) ,
@@ -753,8 +759,7 @@ List<pw.Widget> _buildOrderDoc({
// ── 抬头信息:灰底信息条(两行三列)────────────────────────────
pw . Container (
decoration: pw . BoxDecoration (
color: PdfColors . grey100 ,
border: pw . Border . all ( color: PdfColors . grey400 , width: 0.5 ) ,
border: pw . Border . all ( color: PdfColors . black , width: 0.8 ) ,
) ,
padding: const pw . EdgeInsets . symmetric ( horizontal: 8 , vertical: 6 ) ,
child: pw . Column (
@@ -796,14 +801,13 @@ List<pw.Widget> _buildOrderDoc({
pw . SizedBox ( height: 8 ) ,
// ── 明细表(密集、灰底表头、数字等宽)──────────────────────────
pw . Table (
border: pw . TableBorder . all ( color: PdfColors . grey500 , width: 0.5 ) ,
border: pw . TableBorder . all ( color: PdfColors . black , width: 0.8 ) ,
columnWidths: {
for ( var i = 0 ; i < _orderColFlex . length ; i + + )
i: pw . FlexColumnWidth ( _orderColFlex [ i ] )
} ,
children: [
pw . TableRow (
decoration: const pw . BoxDecoration ( color: PdfColors . grey300 ) ,
children: [
for ( final h in _orderHeaders )
pw . Padding (
@@ -834,8 +838,7 @@ List<pw.Widget> _buildOrderDoc({
pw . Container (
width: double . infinity ,
decoration: pw . BoxDecoration (
color: PdfColors . grey100 ,
border: pw . Border . all ( color: PdfColors . grey400 , width: 0.5 ) ,
border: pw . Border . all ( color: PdfColors . black , width: 0.8 ) ,
) ,
padding: const pw . EdgeInsets . symmetric ( horizontal: 10 , vertical: 5 ) ,
child: pw . Row (
@@ -860,13 +863,15 @@ List<pw.Widget> _buildOrderDoc({
pw . Container (
width: double . infinity ,
decoration: pw . BoxDecoration (
border: pw . Border . all ( color: PdfColors . grey400 , width: 0.5 ) ,
color: PdfColors . grey50 ,
border: pw . Border . all ( color: PdfColors . black , width: 0.8 ) ,
) ,
padding: const pw . EdgeInsets . all ( 5 ) ,
child: pw . Text ( _kTipsText ,
style: pw . TextStyle (
font: font , fontSize: 8.5 , color: PdfColors . grey800 ) ) ,
font: bold ,
fontSize: 9 ,
fontWeight: pw . FontWeight . bold ,
color: PdfColors . black ) ) ,
) ,
] ,
pw . SizedBox ( height: 24 ) ,