thinreports-php/thinreports-php

An implementation of Thinreports Generator in PHP. It provides easy and simple way for generating a PDF on pure PHP

0.8.1 2016-11-23 15:14 UTC

README

Latest Stable Version Latest Unstable Version Build Status Code Climate

Currently, New layout format generated by Thinreports Editor 0.9+ is not supported. You can use Thinreports Editor 0.8 to refer to How to install old version. The support project is in progress.

About

Thinreports Generator for PHP is an implementation of the Thinreports Generator in PHP. It provides easy and simple way for generating a PDF on pure PHP.

What is Thinreports

Thinreports is an open source report generation tools. It provides the Thinreports Editor which is a tool for designing a report format, and the Thinreports Generator for Ruby which is a library for generating a PDF.

Please see the following pages for further details.

Getting Started

Supported PHP versions

Compatibility with Thinreports

  • Thinreports Editor >= 0.8 and < 0.9

Quick Start

Step1 Install Thinreports Editor

See the Official Installation Guide.

Step2 Install Thinreports Generator for PHP

$ composer require thinreports-php/thinreports-php

Step3 Create a report format file using the Editor

Follow "Step1 Creating the layout for the report" section in the official doucmentation.

Step4 Write code for generating a PDF

<?php
// date_default_timezone_set('Asia/Tokyo');

$report = new Thinreports\Report('hello_world.tlf');

// 1st page
$page = $report->addPage();
$page->item('world')->setValue('World');
$page->item('thinreports')->setValue('Thinreports');

// 2nd page
$page = $report->addPage();
$page('world')->setValue('PHP');
$page('thinreports')->setValue('Thinreports PHP');

// 3rd page
$page = $report->addPage();
$page('world')->setValue('World')
              ->setStyle('color', '#ff0000');
$page('hello')->hide();

// 4th page
$page = $report->addPage();
$page->setItemValue('thinreports', 'PDF');
$page->setItemValues(array(
  'world' => 'PHP'
));

// 5th page
$page = $report->addPage();
$page->item('world_image')->setSource('/path/to/world.png');

// 6th page: Using other .tlf file
$page = $report->addPage('hello_php.tlf')
$page->item('world')->setValue('php');

// 7th page: Insert a blank page
$report->addBlankPage();

$report->generate('hello_world.pdf');

// You can get content of the PDF in the following code:
$pdf_data = $report->generate();

NOTE: If you want to render multi-byte characters such as "日本語", you need to configure the IPAFont to font-family property of the Text-block in the Editor.

Development Community

Gitter

Features

Implemented

See Quick Start and Quick Reference for currently available features.

Not Implemented

  • List
  • Disabling Hyphenation
  • Font Fallback
  • Permission and Security settings of PDF

Other Tasks

  • Memory Usage Optimization - Disposing raw base64-data after generating a image file

License

Thinreports PHP is licensed under the MIT-License. See LICENSE for further details.

Dependency Library & Resource

TCPDF

LGPLv3 / Copyright (c) Nicola Asuni Tecnick.com LTD

IPA Font

IPA Font License Agreement v1.0

Copyright

Copyright (c) 2015 Matsukei Co.,Ltd.