awakenweb/livedocx

Livedocx webservice PHP API for PDF generation without using Zend Framework

Installs: 93

Dependents: 1

Stars: 5

Watchers: 2

Open Issues: 7

Language: PHP

1.0.2 2014-10-17 21:50 UTC

README

Build Status Packagist

SensioLabsInsight

Generate PDF and other document types using the Livedocx webservice in PHP.

You can now check the complete documentation

Why this package?

You may know a Livedocx package already exists, so why did I bother reinvent the wheel?

The existing Livedocx package is tightly bound to Zend Framework components and requires a lot of dependencies. Requiring nearly half a framework to only use a single library felt like pure overkill to me.

I developped this Livedocx client with two point in mind:

  • just the strict necessary dependencies
  • an object oriented API

Hope you will find it useful.

This package is unit tested with Atoum

Prerequisites

This package requires:

  • PHP 5.4+
  • ext-soap
  • ext-openssl *

*(Livedocx is unaffected by Heartbleed security leak)

Installation

To install this package using Composer, simply add this to you composer.json file

 "require" : {
    "awakenweb/livedocx" : "dev-master"
 }

Available framework integration packages:

What parts of the Livedocx API are covered by this package?

This package provides support for the following API:

  • Document merging
  • Repeated blocks merging
  • Images merging
  • Bitmap exports
  • Metafiles
  • Subtemplates

As there is really few documentation about the shared documents feature, I did not add support for now. I may add it when I find some doc about how to use it properly.

Use

First, a Livedocx account is required. It may be any account type: free, premium, or fully licenced.

The full documentation is in progress and should arrive shortly. For now, here is a simple example of usage. For more informations, take a look at the code.

<?php

use Awakenweb\Livedocx\Soap\Client;
use Awakenweb\Livedocx\Livedocx;
use Awakenweb\Livedocx\Container;

// for free accounts:
$wsdl = 'https://api.livedocx.com/2.1/mailmerge.asmx?wsdl';
// for premium:
$wsdl = "https://premium01.livedocx.com/REPLACE_THIS_BY_YOUR_USERNAME/mailmerge.asmx?WSDL"
// for fully licensed: only you may know

$soap = new Client(new \SoapClient($wsdl));
$soap->connect(USERNAME, PASSWORD);
$Livedocx = new Livedocx($soap, new Container();

$livedocx->assign(array(
    'somefieldname'  => 'some value',
    'someOtherField' => 'another value'
    )
);

$remoteTemplate = $livedocx->createRemoteTemplate();
$remoteTemplate->setName('myTemplate.docx')
               ->setAsActive();

$document = $livedocx->prepare();
$document->setPassword('$3CR3T');
$document->create();

file_put_contents('myPdfFile.pdf', $document->retrieve('pdf'));

F.A.Q

  • I correctly set the fields but nothing appears in my final document: Be warry that the Livedocx webservice is case sensitive for the field names. Double check your field names in your template and your code to see if their case match.

Misc

Disclaimer: This package is only a client for the Livedocx API. I do not provide support for the Livedocx API directly as I am not affiliated, associated, authorized, endorsed by, or in any way officially connected with Text Control GmbH.