https://github.com/typpo/quickchart-java
Java client for quickchart.io chart API
https://github.com/typpo/quickchart-java
Last synced: about 1 year ago
JSON representation
Java client for quickchart.io chart API
- Host: GitHub
- URL: https://github.com/typpo/quickchart-java
- Owner: typpo
- Created: 2020-11-27T20:03:35.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-11-07T14:08:25.000Z (over 2 years ago)
- Last Synced: 2025-04-15T03:07:28.196Z (about 1 year ago)
- Language: Java
- Size: 34.2 KB
- Stars: 11
- Watchers: 2
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
quickchart-java
---
[](https://mvnrepository.com/artifact/io.quickchart/QuickChart)
A Java client for the QuickChart.io chart API.
## Installation
Add QuickChart to your project (Java 6+). The `io.quickchart` package is available on [Maven Central](https://search.maven.org/artifact/io.quickchart/QuickChart)
Maven:
```xml
io.quickchart
QuickChart
```
Gradle:
```gradle
dependencies {
implementation 'io.quickchart:Quickchart:VERSION'
}
```
## Usage
This library provides a `QuickChart` namespace containing a `Chart` class. Import and instantiate it. Then set properties on it and specify a [Chart.js](https://chartjs.org) config:
```java
import io.quickchart.QuickChart;
// ...
QuickChart chart = new QuickChart();
chart.setWidth(500);
chart.setHeight(300);
chart.setConfig("{"
+ " type: 'bar',"
+ " data: {"
+ " labels: ['Q1', 'Q2', 'Q3', 'Q4'],"
+ " datasets: [{"
+ " label: 'Users',"
+ " data: [50, 60, 70, 180]"
+ " }]"
+ " }"
+ "}"
);
```
For more details on configuring your chart, reference the [QuickChart documentation](https://quickchart.io/documentation/).
Use `getUrl()` on your QuickChart object to get the encoded URL that renders your chart:
```java
System.out.println(qc.getUrl());
// https://quickchart.io/chart?c=%7B%22chart%22%3A+%7B%22type%22%3A+%22bar%22%2C+%22data%22%3A+%7B%22labels%22%3A+%5B%22Hello+world%22%2C+%22Test%22%5D%2C+%22datasets%22%3A+%5B%7B%22label%22%3A+%22Foo%22%2C+%22data%22%3A+%5B1%2C+2%5D%7D%5D%7D%7D%7D&w=600&h=300&bkg=%23ffffff&devicePixelRatio=2.0&f=png
```
If you have a long or complicated chart, use `getShortUrl()` to get a fixed-length URL using the quickchart.io web service (note that these URLs only persist for a short time unless you have a subscription):
```java
System.out.println(qc.getShortUrl());
// https://quickchart.io/chart/render/f-a1d3e804-dfea-442c-88b0-9801b9808401
```
The URLs will render an image of a chart:

See [io.quickchart.examples](https://github.com/typpo/quickchart-java/tree/main/src/main/java/io/quickchart/examples) to see other example usage.
---
## Customizing your chart
You can set the following properties:
### setConfig(String)
The Chart.js chart configuration.
### setWidth(Integer)
Width of the chart image in pixels. Defaults to 500
### setHeight(Integer)
Height of the chart image in pixels. Defaults to 300
### setBackgroundColor(String)
The background color of the chart. Any valid HTML color works. Defaults to #ffffff (white). Also takes rgb, rgba, and hsl values.
### setDevicePixelRatio(Double)
The device pixel ratio of the chart. This will multiply the number of pixels by the value. This is usually used for retina displays. Defaults to 1.0.
### setVersion(String)
The Chart.js version of the chart. See [QuickChart documentation](https://quickchart.io/documentation/#parameters) for default.
### setKey(String)
API key (not required)
---
## Creating chart URLs
There are a few ways to get a URL for your chart object.
### getUrl(): String
Returns a URL that will display the chart image when loaded.
### getShortUrl(): String
Uses the quickchart.io web service to create a fixed-length chart URL that displays the chart image. Returns a URL such as `https://quickchart.io/chart/render/f-a1d3e804-dfea-442c-88b0-9801b9808401`.
Note that short URLs expire after a few days for users of the free service. You can [subscribe](https://quickchart.io/pricing/) to keep them around longer.
---
## Other methods
### toFile(String path)
Write your chart to file.
### toByteArray(): byte[]
Returns an array of bytes representing your image.
### toBase64Url(): String
Returns a string suitable for display as a base 64 url beginning with `data:image/png;base64,`
## More examples
Check out the [io.quickchart.examples](https://github.com/typpo/quickchart-java/tree/main/src/main/java/io/quickchart/examples) to see other usage.