Unoconv web service client
This PHP 7 library is a (very) simple client for zrrrzzt/tfk-api-unoconv and in particular its Docker implementation. The library is fully PSR-7 compatible and uses Guzzle as its HTTP client.
Usage
<?php
use CodeInc\UnoconvClient\UnoconvClient;
$client = new UnoconvClient('http://localhost:3000');
// lists supported formats (calls /unoconv/formats)
$client->getFormats();
// list supported format for the graphics type (calls /unoconv/formats/graphics)
$client->getFormats('graphics');
// returns the API server's uptime (calls /healthz)
$client->getHealth();
// returns all versions of installed dependencies lookup (calls /unoconv/versions)
$client->getVersions();
// converts a document
$responseStream = $client->convert($sourceStream, 'pdf');
To convert a local file and display the result
<?php
use CodeInc\UnoconvClient\UnoconvClient;
use GuzzleHttp\Psr7\LazyOpenStream;
$client = new UnoconvClient('http://localhost:3000');
$localFilePath = '/path/to/my/document.docx';
$localFileStream = new LazyOpenStream($localFilePath, 'r');
$responseStream = $client->convert($localFileStream, 'pdf');
header('Content-Type: application/pdf');
echo $responseStream;
To convert a local file to another local file
<?php
use CodeInc\UnoconvClient\UnoconvClient;
use GuzzleHttp\Psr7\LazyOpenStream;
use function GuzzleHttp\Psr7\copy_to_stream;
$client = new UnoconvClient('http://localhost:3000');
$localFilePath = '/path/to/my/document.docx';
$localFileStream = new LazyOpenStream($localFilePath, 'r');
$responseStream = $client->convert($localFileStream, 'pdf');
$pdfFilePath = '/path/to/my/document.pdf';
$pdfFileStream = new LazyOpenStream($pdfFilePath, 'w');
copy_to_stream($responseStream, $pdfFileStream);
Installation
This library is available through Packagist and can be installed using Composer:
composer require codeinc/unoconv-webservice-client
License
The library is published under the MIT license (see LICENSE
file).