1. Output generates invalid Office documents

    In case Office documents are not opening as expected, probably there was an issue with the JSON that was sent to the Cloud Office Print server. If you run in the Cloud, you can enable Remote Debugging, which you can access when you login in your Cloud Office Print dashboard at

    If you're running the on-premise version of Cloud Office Print, on the server there is a server_error.log file that contains the errors it found during rendering. First step is to check that file for more information.

    Next make sure that your JSON is valid by validating the JSON in for example or by doing debugging.

  2. Invalid PDF file

    If you're running the on-premise version of Cloud Office Print, check a file on the server called server_error.log or server_uncaugt_exceptions.log and see which error you get.

    Try to run your example in the same format as your template. If this also fails, there's an issue with the JSON or the template. Check your template and data again. If you receive your document fine, but PDF is not working, there's an issue finding LibreOffice or MS Office.

    Make sure those programs are installed correctly. Try to do a manual conversion on the command line in those tools and see if that works. If not, check the error and try to reinstall.

    You can also do debugging, which will help identifying the real issue. If everything fails, please contact

  3. How to read and convert documents (docx, xlsx, pptx, pdf) on Linux

    You need to install LibreOffice:

  4. Error occurred while acquiring license

    You received: "Error occurred while acquiring license. Please make sure that your API key is correct and that you have enough printing credits. Contact Cloud Office Print if the problem persists."

    This means you ran out of credits. Go to and upgrade your package or send an email to to see what we can do for your case.

  5. Chinese and other language and font support

    If you need special characters or language support, make sure the necessary fonts and languages are on your system. For example to add Chinese support on RHEL Linux do:

    $ yum install "@Chinese Support"

    Further more if you want to install additional fonts here's a good link. The Cloud Office Print Cloud API has Google Noto fonts installed.

    Installing a font is nothing more than installing the font on your system. For example on (RedHat) Linux, we copy the *.ttf files (or directory) to /usr/share/fonts/ and run fc-cache -f -v.

    Depending if you have a GUI (Linux/Windows) you can just double click on the font and it will install it in your system. If your system recognises it, MS Office or LibreOffice should be able to use it for the PDF conversion.

    For barcodes, you could also choose to install a barcode font, for example Free 3of9 or Barcode fonts are more performant than images.

    If you are using the font awesome and using html tag or interactive reports/grid in Word, you will have to install the font-awesome desktop fonts in order to render the PDFs properly. (The Cloud Office Print cloud server has free versions installed.)

  6. The requested URL has been prohibited

    Make sure you're calling Cloud Office Print with HTTPS. If you're calling the Cloud Office Print cloud API ( make sure to load the certificate in your application or setup a proxy on your end.

  7. PDF output suddenly stopped working

    Probably a LibreOffice or MS Office process is stuck. A way to solve this is running a script that checks for long running processes and that kills those. If you're using the Cloud Office Print cloud API, please contact

  8. HTTP request failed TNS:operation timed out

    Please check if your firewall allows outgoing connection from the application to the Cloud Office Print server.

    If you added the Cloud Office Print port to the firewall rules, make sure to restart the daemon.

    See also further in this doc at Debugging connections to Cloud Office Print Server.

  9. The font in my PDF is different from the font in my Word template

    This is most likely due to the fact that the font you chose in Word, is available on your local computer, but not in the server.

    If you install that font also on the server where Cloud Office Print is running, it should do the conversion well. See also Chinese and other language and font support.

  10. The generation of my document is slow

    You would need to figure out where you lose time:

    • creation of the JSON: your data is taking time to be transformed into JSON.

    • time needed on the server by Cloud Office Print: you can trace that by enabling logging (only on-premise). Start the Cloud Office Print server with --enable_printlog or --verbose, which will show the incoming requests.

    • network time: measure the time to travel from your application to our cloud server or to your own on-premise install. If you would use the on-premise version and put Cloud Office Print on the same machine as the application, it would be the fastest. Or if you could add it on another server where the network is fast, that should get rid of the transfer time.

    If the conclusion is that everything is as fast as possible, we advise to run the reports that take a long time, in the background. You could also schedule the reports to run overnight and store the results in a table.

  11. Issue returned by Cloud Office Print Service (REST call: 504): Unknown error. Check Cloud Office Print server logs.

    This means that your request was too big and the processing took longer that the gateway timeout. Cloud Office Print API will end the connection after 5 mins. Workaround would be to split the request into multiple files and merge them back later. You could also go with the on-premise version where you do not have this limitation.

  12. Excel: Conflicting loops

    When using a loop tag in Excel, the starting and closing tags create a block (rectangle). If the loop tag is vertical, you can expect the block to grow as follows:

    As can be seen the content below the loop has been pushed down. The grown block pushes everything from the starting tag's column till the ending tag's column.

    Introducing another loop below the existing loop might produce a conflict when only a part of the new loop block is pushed down.

    This situation can be resolved fairly easily. Just make sure that the first loop pushes the second block entirely. This can be done by moving the end loop tag to the column equal to or greater than last column of second block as shown below: