[flutter] 플러터 Table 위젯에서 테이블 데이터 인쇄하기

플러터의 Table 위젯은 간단하고 효과적인 방법으로 테이블 데이터를 표시할 수 있습니다. 그러나 때로는 사용자가 현재 표시된 데이터를 프린트해야 할 수도 있습니다. 이 기사에서는 플러터 Table 위젯에서 테이블 데이터를 인쇄하는 방법에 대해 알아보겠습니다.

데이터를 인쇄할 준비하기

테이블 데이터를 인쇄하려면 먼저 해당 데이터에 접근할 수 있어야 합니다. 데이터를 가져오는 방법은 다양할 수 있지만, 예를 들어 ListMap과 같은 데이터 구조를 사용하여 데이터를 관리할 수 있습니다. 이 예제에서는 간단한 List를 사용하여 테이블 데이터를 나타내겠습니다.

List<List<dynamic>> tableData = [
  ['이름', '나이', '성별'],
  ['철수', 25, '남성'],
  ['영희', 22, '여성'],
  ['민수', 28, '남성'],
  // 나머지 데이터
];

데이터 인쇄 기능 추가

이제 데이터를 출력하는 기능을 추가해 보겠습니다. 여기서는 플러터의 printing 패키지를 사용하여 데이터를 프린트할 예정입니다. 먼저 pubspec.yaml 파일에 printing 패키지를 추가해 주세요.

dependencies:
  flutter:
    sdk: flutter
  printing: ^4.0.0

이제 아래와 같이 데이터를 인쇄할 수 있는 기능을 작성할 수 있습니다.

import 'package:flutter/material.dart';
import 'package:printing/printing.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Table 데이터 인쇄'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              Printing.layoutPdf(
                onLayout: (_) => _generatePdf(tableData),
              );
            },
            child: Text('테이블 데이터 인쇄'),
          ),
        ),
      ),
    );
  }

  Future<List<int>> _generatePdf(List<List<dynamic>> tableData) async {
    final pdf = Printing.convertHtml(
      format: PdfPageFormat.a4,
      html: '<table>${_generateHtml(tableData)}</table>',
    );
    return pdf.save();
  }

  String _generateHtml(List<List<dynamic>> tableData) {
    String html = '';
    for (var row in tableData) {
      html += '<tr>';
      for (var cell in row) {
        html += '<td>${cell.toString()}</td>';
      }
      html += '</tr>';
    }
    return html;
  }
}

결론

이제 위와 같이 printing 패키지를 사용하여 Table 위젯의 데이터를 인쇄하는 방법을 알아보았습니다. 플러터는 강력한 프린팅 기능을 제공하므로, 데이터를 표시하고 인쇄하는 것은 매우 간단합니다. 위 예제를 참고하여 자신만의 데이터를 인쇄해 보세요!

더 많은 정보는 플러터 공식 홈페이지를 방문하시기 바랍니다.