API > Converteren
De Document API maakt het mogelijk documenten te converteren naar een ander formaat. Bestanden kunnen worden ingeladen, ongeacht de extensie. Daarna kunnen de gegevens van de bestanden ook weer omgezet worden in ieder gewenst - en ondersteund - bestandstype.
Methods
api.Document_toHtml ( blob file, [bool withOutput = false, ] [bool noStyles = false, ] [bool separateImages = false, ] [string imagePrefixPath] )
api.Document_toDoc ( blob file, [bool withOutput = false, ] )
api.Document_toDocx ( blob file, [bool withOutput = false, ] )
api.Document_toText ( blob file, [bool withOutput = false, ] )
api.Document_toPdf ( blob file, [bool withOutput = false, ] )
Converteert een van de volgende documenten naar het gekozen outputformat:
- doc
- docx
- rtf
- txt
- html
De input is de ruwe blob (bin) van een bestand. Dat kan zijn uit een andere API, of vanuit een andere API het .data-element van een file-object. De API detecteert zelf het documenttype.
Standaard wordt er geen output gegeven maar de string-length van de inhoud, zodat eenvoudig een 'pre' gedaan kan worden. Als je de echte output wilt hebben voor verdere verwerking dient dus altijd het 2e argument als 'true' opgegeven te worden.
Standaard wordt basis-stijling (lettertype, enz.) meegegeven in de output. Met noStyles (true) kan dit worden onderdrukt om eigen styles toe te passen.
Waneer separateImages (true) wordt meegegeven, worden alle afbeeldingen -in tegenstelling tot standaard: embedded Base64- in een apart images-object teruggegeven. Iedere image krijgt een eigen filename, waar naar wordt verwezen in de HTML output. Als deze images ergens worden opgeslagen, kan het imagePrefixPath worden gebruikt om een pad voor de gegenereerde filename te plaatsen zodat de images laden.
De output ziet er als volgt uit:
(
[error] =>
[message] => OK
[documentatie] => Array
(
[name] => document.html
[data] => 5556
)
[images] => Array
(
[0] => iPublications\Api\Document\convertImage Object
(
[name] => 62f59178947n478b7879r789579h9788.jpg
[data] => 700270
)
)
)
Dit wil zeggen dat het output-object document 1:1 compatible is met bijv. een andere file-api, en het output-object images (indien separateImages = true) ook 1:1 compatible is met een andere file-api.
Voorbeelden
Brondocument inladen
Vanaf een externe URL
{% set url = 'http://bla.nl/content/uploads/AlgemeneVoorwaarden-2014-2015.docx' %}
{% set file = api.HttpReader_Get(url) %}
Vanaf een opgeslagen document
{% set file = api.IO_staticFile('test/Projectplan_iPublications_Cron.pdf').get() %}
Output debuggen
{% set debugdata = api.Document_toHtml(file, false, true, true, baselocation~'static') %}
{{ debugdata|pre }}
Toelichting argumenten
arg. 2: false = Niet de echte output van de files geven, maar de stringlength
arg. 3: true = Styles niet teruggeven
arg. 4: true = Afbeeldingen loshalen, niet als embedded Base64
arg. 5: = De standaard framework static basislocatie
Output opslaan
{% set output = api.Document_toHtml(file, true, false, true, baselocation~'static') %}
{% do api.IO_staticFile(output.document.name).set(output.document.data) %}
Images opslaan
{% for img in output.images %}
{% do api.IO_staticFile(img.name).set(img.data) %}
{% endfor %}
Images in een ZIP stoppen
{% set zip = api.IO_createZip(output.images) %}
{% do api.IO_staticFile('test.zip').set(zip) %}