YAPAY ZEKA İLE HIZLI TABLO YAPMAK İÇİN PROGRAM YAPIYODUM . AMA TABLONUN BELLİ KISMINDAKİ ALT ÇİZGİYİ KALDIRAMADIM .


             // 1. TABLO: ANA BAŞLIKLAR
              pw.Table(
                border: pw.TableBorder.all(width: 0.8),
                columnWidths: {
                  0: const pw.FixedColumnWidth(siraW),
                  1: const pw.FixedColumnWidth(noktaW),
                  2: const pw.FixedColumnWidth(sabitW),
                  3: const pw.FixedColumnWidth(gunduzW),
                  4: const pw.FixedColumnWidth(notlarW),
                },
                children: [
                  pw.TableRow(
                    children: [
                      _cell("SIRA", fontBold, 7, color: PdfColors.red),
                      _cell(
                        "GÖREV\nNOKTASI",
                        fontBold,
                        8,
                        color: PdfColors.red,
                      ),
                      _cell(
                        "SABİT\nÇALIŞAN",
                        fontBold,
                        8,
                        color: PdfColors.red,
                      ),
                      _cell(
                        "GÜNDÜZ GRUBU\n(${_grupBaslikController.text})",
                        fontBold,
                        9,
                        color: PdfColors.red,
                      ),
                      _cell("NOTLAR", fontBold, 8, color: PdfColors.red),
                    ],
                  ),
                ],
              ),
              // 2. TABLO: GENEL VARDİYA SORUMLUSU (BAŞLIKTAN SONRA, VERİDEN ÖNCE)
              pw.Table(
                border: pw.TableBorder.all(width: 0.8),
                columnWidths: {
                  0: const pw.FixedColumnWidth(siraW + noktaW),
                  1: const pw.FixedColumnWidth(sabitW),
                  2: const pw.FixedColumnWidth(gunduzW),
                  3: const pw.FixedColumnWidth(notlarW),
                },
                children: [
                  pw.TableRow(
                    children: [
                      _cell(
                        "GENEL VARDİYA SORUMLUSU",
                        fontBold,
                        8,
                        color: PdfColors.blue900,
                      ),
                      _cell("Kudret", fontBold, 9, color: PdfColors.black),
                      _cell("", font, 7),
                      _cell("", font, 7),
                    ],
                  ),
                ],
              ),
              // 3. TABLO: ASIL VERİ LİSTESİ
              pw.Table(
                border: pw.TableBorder.all(width: 0.8),
                columnWidths: {
                  0: const pw.FixedColumnWidth(siraW),
                  1: const pw.FixedColumnWidth(noktaW),
                  2: const pw.FixedColumnWidth(sabitW),
                  3: const pw.FixedColumnWidth(gunduzW / 2),
                  4: const pw.FixedColumnWidth(gunduzW / 2),
                  5: const pw.FixedColumnWidth(notlarW / 2),
                  6: const pw.FixedColumnWidth(notlarW / 2),
                },
                children: List.generate(_veriler.length, (i) {
                  String yerHam = _veriler[i]['yer'];
                  bool isSosyalYasam = yerHam == "SOSYAL YAŞAM MERKEZİ";
                  return pw.TableRow(
                    children: [
                      _cell(_veriler[i]['no'], font, 7),
                      _cell(
                        yerHam.replaceAll(" (", "\n("),
                        fontBold,
                        7,
                        color: PdfColors.blue800,
                      ),
                      _cell(_ctrls[i]['sabit']!.text, font, 7),
                      _cell(_ctrls[i]['gunduz']!.text, font, 7),
                      _cell(
                        _ctrls[i]['bosluk']!.text,
                        fontBold,
                        7,
                        color: isSosyalYasam
                            ? PdfColors.blue
                            : PdfColors.blue800,
                      ),
                      _cell(
                        _ctrls[i]['izin']!.text,
                        fontBold,
                        7,
                        color: isSosyalYasam ? PdfColors.blue : PdfColors.black,
                      ),
                      _cell(
                        _ctrls[i]['gorev']!.text,
                        fontBold,
                        7,
                        color: isSosyalYasam ? PdfColors.blue : PdfColors.black,
                      ),
                    ],
                  );
                }),
              ),
            ];
          },
        ),
      );
      await Printing.layoutPdf(onLayout: (f) async => pdf.save());
    } catch (e) {
      ScaffoldMessenger.of(
        context,
      ).showSnackBar(SnackBar(content: Text("Hata: $e")));
    }
  }
  pw.Widget _cell(
    String t,
    pw.Font f,
    double s, {
    PdfColor color = PdfColors.black,
  }) => pw.Container(
    alignment: pw.Alignment.center,
    padding: const pw.EdgeInsets.symmetric(vertical: 2, horizontal: 1),
    child: pw.Text(
      t,
      style: pw.TextStyle(font: f, fontSize: s, color: color),
      textAlign: pw.TextAlign.center,
    ),
  );