- Saved searches
- Use saved searches to filter your results more quickly
- License
- PHPJasper/phpjasper
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- Please consider make a donation, support our activities
- Конструктор отчетов на php
- Why KoolReport?
- Various datasources
- Powerful data processing
- Stunning data visualization
- Designed to be simple, fast and extensible.
- Simple & Easy
- Light & Fast
- Extensible
- Building your excellent data reports
- Sales By Country
- Sales by Quarters
- Boat tickets
- Pivot Tables
- Unlock your full potentials
- KoolReport Pro
- Dashboard Framework
- Blogs
- KoolReport Releases Q1-2023
- Dashboard vs Admin Panel
- 5 Reasons You Should Use KoolReport
- Why's so hassle to create KPI dashboard?
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
License
PHPJasper/phpjasper
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
…/guzzle-7.4.5 Bump guzzlehttp/guzzle from 7.4.4 to 7.4.5
Git stats
Files
Failed to load latest commit information.
README.md
Please consider make a donation, support our activities
PHPJasper is the best solution to compile and process JasperReports (.jrxml & .jasper files) just using PHP, in short: to generate reports using PHP.
- PHPJasper Can be used regardless of your PHP Framework
- For PHP versions less than 7.0 see: v1.16
- Here are several examples of how to use PHPJasper
Did you ever had to create a good looking Invoice with a lot of fields for your great web app?
I had to, and the solutions out there were not perfect. Generating HTML + CSS to make a PDF? That doesn’t make any sense! 🙂
Then I found JasperReports the best open source solution for reporting.
Well, everything. JasperReports is a powerful tool for reporting and BI.
From their website:
The JasperReports Library is the world’s most popular open source reporting engine. It is entirely written in Java and it is able to use data coming from any kind of data source and produce pixel-perfect documents that can be viewed, printed or exported in a variety of document formats including HTML, PDF, Excel, OpenOffice and Word.
It is recommended using Jaspersoft Studio to build your reports, connect it to your datasource (ex: MySQL, POSTGRES), loop thru the results and output it to PDF, XLS, DOC, RTF, ODF, etc.
Some examples of what you can do:
- Any jdbc drivers to generate reports from a database (MySQL, PostgreSQL, MSSQL. ), must be copied to a folder bin/jasperstarter/jdbc
- We ship the PostgreSQL (42.2.9) in the bin/jasperstarter/jdbc directory.
- We ship the MySQL connector (v5.1.48) in the bin/jasperstarter/jdbc directory.
- Microsoft JDBC Drivers SQL Server .
- Jaspersoft Studio (to draw your reports).
Install Composer if you don’t have it.
composer require geekcom/phpjasper
Or in your file’composer.json’ add:
< "require": < "geekcom/phpjasper": "^3.2.0" > >
With Docker CE and docker-compose installed just run:
- docker exec -it phpjasper sudo composer test or
- docker exec -it phpjasper sudo composer testdox
To see coverage manually of tests, execute the file: tests/log/report/index.html
Help us writing new tests, make a fork 🙂
Go to the examples directory in the root of the repository ( vendor/geekcom/phpjasper/examples ). Open the hello_world.jrxml file with Jaspersoft Studio or with your favorite text editor and take a look at the source code.
First we need to compile our JRXML file into a JASPER binary file. We just have to do this one time.
Note 1: You don’t need to do this step if you are using Jaspersoft Studio. You can compile directly within the program.
require __DIR__ . '/vendor/autoload.php'; use PHPJasper\PHPJasper; $input = __DIR__ . '/vendor/geekcom/phpjasper/examples/hello_world.jrxml'; $jasper = new PHPJasper; $jasper->compile($input)->execute();
This commando will compile the hello_world.jrxml source file to a hello_world.jasper file.
Now lets process the report that we compile before:
require __DIR__ . '/vendor/autoload.php'; use PHPJasper\PHPJasper; $input = __DIR__ . '/vendor/geekcom/phpjasper/examples/hello_world.jasper'; $output = __DIR__ . '/vendor/geekcom/phpjasper/examples'; $options = [ 'format' => ['pdf', 'rtf'] ]; $jasper = new PHPJasper; $jasper->process( $input, $output, $options )->execute();
Now check the examples folder! 🙂 Great right? You now have 2 files, hello_world.pdf and hello_world.rtf .
Check the methods compile and process in src/JasperPHP.php for more details
Querying the jasper file to examine parameters available in the given jasper report file:
require __DIR__ . '/vendor/autoload.php'; use PHPJasper\PHPJasper; $input = __DIR__ . '/vendor/geekcom/phpjasper/examples/hello_world_params.jrxml'; $jasper = new PHPJasper; $output = $jasper->listParameters($input)->execute(); foreach($output as $parameter_description) print $parameter_description . '';
Using database to generate reports
We can also specify parameters for connecting to database:
require __DIR__ . '/vendor/autoload.php'; use PHPJasper\PHPJasper; $input = '/your_input_path/your_report.jasper'; $output = '/your_output_path'; $options = [ 'format' => ['pdf'], 'locale' => 'en', 'params' => [], 'db_connection' => [ 'driver' => 'postgres', //mysql, . 'username' => 'DB_USERNAME', 'password' => 'DB_PASSWORD', 'host' => 'DB_HOST', 'database' => 'DB_DATABASE', 'port' => '5432' ] ]; $jasper = new PHPJasper; $jasper->process( $input, $output, $options )->execute();
For a complete list of locales see Supported Locales
require __DIR__ . '/vendor/autoload.php'; use PHPJasper\PHPJasper; $input = '/your_input_path/your_report.jasper or .jrxml'; $output = '/your_output_path'; $jdbc_dir = __DIR__ . '/vendor/geekcom/phpjasper/bin/jaspertarter/jdbc'; $options = [ 'format' => ['pdf'], 'locale' => 'en', 'params' => [], 'db_connection' => [ 'driver' => 'generic', 'host' => '127.0.0.1', 'port' => '1433', 'database' => 'DataBaseName', 'username' => 'UserName', 'password' => 'password', 'jdbc_driver' => 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc_url' => 'jdbc:sqlserver://127.0.0.1:1433;databaseName=Teste', 'jdbc_dir' => $jdbc_dir ] ]; $jasper = new PHPJasper; $jasper->process( $input, $output, $options )->execute();
require __DIR__ . '/vendor/autoload.php'; use PHPJasper\PHPJasper; $input = '/your_input_path/your_report.jasper'; $output = '/your_output_path'; $data_file = __DIR__ . '/your_data_files_path/your_xml_file.xml'; $options = [ 'format' => ['pdf'], 'params' => [], 'locale' => 'en', 'db_connection' => [ 'driver' => 'xml', 'data_file' => $data_file, 'xml_xpath' => '/your_xml_xpath' ] ]; $jasper = new PHPJasper; $jasper->process( $input, $output, $options )->execute();
require __DIR__ . '/vendor/autoload.php'; use PHPJasper\PHPJasper; $input = '/your_input_path/your_report.jasper'; $output = '/your_output_path'; $data_file = __DIR__ . '/your_data_files_path/your_json_file.json'; $options = [ 'format' => ['pdf'], 'params' => [], 'locale' => 'en', 'db_connection' => [ 'driver' => 'json', 'data_file' => $data_file, 'json_query' => 'your_json_query' ] ]; $jasper = new PHPJasper; $jasper->process( $input, $output, $options )->execute();
Depends on the complexity, amount of data and the resources of your machine (let me know your use case).
I have a report that generates a Invoice with a DB connection, images and multiple pages and it takes about 3/4 seconds to process. I suggest that you use a worker to generate the reports in the background.
JetBrains for the PhpStorm and all great tools.
Open a new Issue or look for a closed issue
Конструктор отчетов на php
KoolReport is an intuitive and flexible Open Source PHP Reporting Framework for faster and easier data report delivery. Download KoolReport Upgrade to Pro Version
Why KoolReport?
Containing highly data-focused functionalities, KoolReport save your time & effort in all data related tasks ranging from data retrieval to processing and visualization.
Various datasources
Powerful data processing
Stunning data visualization
Learn more about KoolReport and how to build your business intelligence center by examples View Examples
Designed to be simple, fast and extensible.
Simple & Easy
Light & Fast
Extensible
Building your excellent data reports
Thousands of corporate reports are being built with KoolReport. Get started on your own with our growing collections of examples or by exploring some of our favorites.
Sales By Country
Sales by Quarters
Boat tickets
Pivot Tables
Myriad of examples, detail documentation and the enthusiasm of our supporting team will guarantee the highest quality of your data report delivery. Get Started Now
Unlock your full potentials
Elevate your data reporting and dashboard skills with our professional-grade products.
Focus on what matters, let us handle the rest.
KoolReport Pro
With KoolReport Pro, you will take your reporting game to the next level. Equipped with over 20 commercial packages, KoolReport Pro extends your capability to the max: making advanced data analysis, pivot table, drilldown report, PDF export. That's endless! Say goodbye to the struggles of creating reports and hello to impressing your clients with beautiful, insightful reports that they'll love. Learn more View demo
Dashboard Framework
Built on top of KoolReport Pro, the Dashboard Framework is a set of ready-made features designed to make it easy for developers to create online dashboard applications or admin panels for websites. With just a few lines of code, developers can create a modern, single-page dashboard that includes full set of data visualization, built-in authentication, support of multi themes and languages and so much more. Learn more View demo
"KoolReport helps me very much in creating data report for my corporate! Keep up your good work!" Alain Melsens
"The first use of your product. I was impressed by its easiness and powerfulness. This product is a great product and amazing." Dr. Lew Choy Onn
Blogs
KoolReport Releases Q1-2023
Dashboard vs Admin Panel
5 Reasons You Should Use KoolReport
Why's so hassle to create KPI dashboard?
Designed and built with by KoolPHP Inc.