DonnC / docxtpl

a word document .docx template plugin to easily populate and generate word documents from templates
https://pub.dev/packages/docxtpl
BSD 3-Clause "New" or "Revised" License
26 stars 16 forks source link
dart docx docx-template flutter flutter-plugin word word-document

docxtpl

A word document template plugin to easily populate and generate word documents from templates

screenshots

Generate From Asset template .docx Generate From Remote Template .docx Generate From Local Template .docx

Installation

Motive

Template file before and after using docxtpl plugin

Before: word document template .docx After(with docxtpl plugin): template .docx

Usage

First import the docxtpl plugin in your dart file

import 'package:docxtpl/docxtpl.dart';

Make sure you have created your .docx template file and saved it either in your asset folder or remote or in your device local storage.

Example: Generate from .docx tpl in asset folder

Make sure you have added your .docx word tpl asset file in pubspec.yaml file

   final DocxTpl docxTpl = DocxTpl(
      docxTemplate: 'assets/invite.docx',  // path where tpl file is
      isAssetFile: true,      // flag to true for tpl file from asset
    );

   // fields corresponding to merge fields found to fill the template with
   var templateData = {
    'name': 'Dart | Flutter Developer',
    'event': 'DocxTpl Plugin Contribution',
    'venue': 'Github',
    'time': 'Anytime',
    'row': '1',
    'guest': 'Flutter',
    'sender': '@DonnC',
  };

   var response = await docxTpl.parseDocxTpl();

   print(response.mergeStatus);
   print(response.message);

    if(response.mergeStatus == MergeResponseStatus.Success) {
      // success, proceed
      // get merge fields extracted by the plugin to know which fields to fill
      var fields = docxTpl.getMergeFields();

      print('Template file fields found: ');
      print(fields);

      await docxTpl.writeMergeFields(data: templateData);

      var savedFile = await docxTpl.save('invitation.docx');
    }

Features & TODO

Api Changes

Api changes are available on CHANGELOG

Support

references