This package provides a PHP SDK for the Carbone.io Cloud API.
Carbone is a powerful and easy to use API to generate documents from a template to a PDF. It is based on LibreOffice and can convert any document supported by LibreOffice. It is also possible to convert HTML to PDF. Learn more about supported files and features.
You can install the bindings via Composer. Run the following command:
composer require carboneio/carbone-sdk-php
Using the SDK is very easy. You just need to create a new instance of the Carbone class and provide your API key. Get your API key on your Carbone account: https://account.carbone.io/.
use Carboneio\SDK\Carbone;
$carbone = new Carbone('YOUR_API_KEY', 'https://api.carbone.io/');
You can upload a template to Carbone using the upload
method. This method takes the content of the template as base64. The method returns a template ID
used to generate documents.
$response = $carbone->templates()->upload($contentBase64);
$templateId = $response->getTemplateId();
Example to upload a template
You can generate a document using the render
method. This method takes the template Id
and the data as parameters. A render ID
is returned and must be used to download the generated document.
$response = $carbone->renders()->render($templateId, $data);
$renderId = $response->getRenderId();
Example to render a template
You can download a rendered template using the download
method. This method takes the render ID
as a parameter.
$response = $carbone->renders()->download($renderId);
// Save the contents of the file yourself on your filesystem
$content = $response->getContent();
Example to download a rendered document
You can delete a template using the delete
method. This method takes the template Id
as a parameter.
$response = $carbone->templates()->delete($templateId);
Example to delete a template
You can download a template using the download
method. This method takes the template Id
as a parameter.
$response = $carbone->templates()->download($templateId);
Example to download a template
Set custom headers, such as "carbone-version" to select a specific Carbone version. By default, the SDK request the version 4 of Carbone.
$carbone->setHeaders([
"carbone-version" => 4,
/** Uncomment to delete automatically templates after a specific time */
// "carbone-template-delete-after" => 86400, // 86400s = 1 day | https://carbone.io/api-reference.html#template-storage
// "carbone-webhook-url" => "https://my-server", // https://carbone.io/api-reference.html#api-webhook
]);
$response = $carbone->getStatus();
$json = $response->json();
echo "Status : " . $response->status() . "\n";
echo "Success: " . $json['success'] . "\n";
echo "Version: " . $json['version'] . "\n";
echo "Message: " . $json['message'] . "\n";
First install required composer packages:
composer install
Then execute tests:
composer test
The package was originaly made by MadeByBob and open-sourced the code. The Carbone.io team is now maintaining the SDK and will bring all futur evolutions.
Original repository:https://github.com/madebybob/carbone-sdk
MadeByBob website: https://madebybob.nl/
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
Give a ⭐️ if this project helped you!