Unoconv PHP, an Object Oriented library for easy file conversion with LibreOffice's unoconv

0.3.0 2013-06-25 10:09 UTC


Build Status

An Object Oriented library which allow easy to use file conversion with Unoconv.


The recommended way to install PHP-Unoconv is through composer.

    "require": {
        "php-unoconv/php-unoconv": "~0.2"


Documentation available at

API Usage

To instantiate Unoconv driver, the easiest way is :

$unoconv = Unoconv\Unoconv::create();

You can customize your driver by passing a Psr\Log\LoggerInterface or configuration options.

Available options are :

  • timeout : the timeout for the underlying process.
  • unoconv.binaries : the path (or an array of paths) for a custom binary.
$unoconv = Unoconv\Unoconv::create(array(
    'timeout'          => 42,
    'unoconv.binaries' => '/opt/local/unoconv/bin/unoconv',
), $logger);

To transcode a file, use the transcode method. For the complete format list supported by unoconv, refer to the unoconv CLI.

$unoconv->transcode('document.docx', 'pdf', 'document.pdf');

You can optionaly transcode a given page range using the fourth argument :

// pages 1 to 14
$unoconv->transcode('document.docx', 'pdf', 'document.pdf', '1-14');

Silex Service Provider

A Silex Service Provider is available, all parameters are optionals :

$app = new Silex\Application();
$app->register(new Unoconv\UnoconvServiceProvider(), array(
    'unoconv.configuration' => array(
        'unoconv.binaries' => '/opt/local/unoconv/bin/unoconv',
        'timeout'          => 42,
    'unoconv.logger'  => $app->share(function () {
        return $app['monolog']; // use Monolog service provider


Released under the MIT license

Bitdeli Badge