163

Product support

Get help in the plugin support forum.

  • Added on Nov 27, 2019
  • Current version: 1.0.4
  • Platform Compatibility
    v3.x not tested
    v2.x not tested
    v1.x use latest
  • License: Regular / Extended
  • Created by

Categories

UniDoc

Plugin for generates and working on fly with a large number of document formats (uses PhpOffice) and working with Pdf format with uses any of the main existing libraries (Snappy,mPDF,TCPD,Dompdf).

A huge request not to load the server with excessive file generation, because 15 more test October-environments for others plugins are spinning on it (the VPS-server is very weak)!

Features

  • Very easy settings in visual mode and starting work in Linux (tested) or Windows (tested)
  • Generates documents from your presetting API-link (e.g.: https://domain.tld/docs/spreadsheet/{id}) using parameters passed to the handler from the link or through a Post-request (e.g.: ID). See Live Demo
  • Save generated files to storage and bind to file-database for manipulations (download, email send...). Available in the file repository.
  • Generates Word (WORD2007 ODTEXT HTML RTF PDF) and Excel (XLSX XLS ODS CSV XML HTML PDF) documents from Twig template
  • Generates Word and Excel documents from native layouts (template.xlsx, template.docx)
  • Choose a PDF library to generate from several available (SNAPPY-WKHTMLTOPDF MPDF TCPDF DOMPDF). Generated from Twig-template or from PHP code (native Lib-classes)
  • Create your own templates and rules for generating documents using APi to access a document
  • Save the settings of your data and exchange between used projects with one click, it is much more convenient than writing code every time. Saved Plugin settings from Demo-site available in folder "impexp".
  • Plugin include Events for extended documents post-processing (see documentation)
  • Rules for output file. Choose from several options:
    • Save and bind in base (no download or open in browser)
    • Only Download
    • Only Open in Browser
    • Only String output
    • File Save to storage + bind in base and Download
    • File Save to storage + bind in base and Open in Browser

TODO:

  • Sending document to e-mail from repositary (email select from Rainlab.User model, for group or individual users) and/or on generate document stage
  • File name template for generates unical names
  • Add .pptx, .mpx, .vsdx files generates (this needs?)
  • Add new presettings (css for html and others new options)
  • Add new events (on html template generate stage) for extending functional in others plugins
  • Plus there are very interesting ideas, it’s too early about this, it all depends on the interest of users in the plugin, otherwise it makes no sense to do anything...

My others quality plugins:

  • Expander (Custom fields in CMS Pages, RainLab.Blog, Rainlab.User AND IN ALL OTHERS PLUGINS in CMS. Easy Extend all available models: adding all types custom fields +attributes for model with in database save, and controllers: extends lists and adding custom Behaviors with built-in CMS tools in easy visual mode)
  • Multi Domains (Create multiple domains or url and bind this to arbitry theme or page/staticpage with extending routing rules use single CMS installation)
  • Back To Front (Components for creates All Backend Widgets in Frontend pages: Lists, Search, Filter, Forms, FormWidgets, MediaManager, Reports and manage this items)
  • Backend Menu (Complete change and reconfiguration of all menus in backend: adding, rename, move, hide, icons adding and change)
  • Backend Popup (Quick modify records in backend controllers lists in modal popup mode)
  • Datatables (View big data table on page in Ajax-mode)
  • Auto SEO (Full SEO automate. Generate SEO tags based on rules and page content data)
  • Desktop application builder (Free experimental plugin. Easy make Desktop Application on OctoberCMS base)
  • Shortcodes Engine (Free plugin. Core plugin for includes shortcodes in page content, support Static pages)
  • Include Content (Free plugin. Include content on page from other site or file)
  • AdSense (Free plugin. Enables to use AdSense on page)

Why is this plugin paid?

  • This is not a trivial plugin and it took a lot of time to develop it. The real development cost is much higher
  • You are guaranteed to receive support. Unfortunately, time a developer costs money
  • Need to pay demo servers
  • You help the OctoberCMS project to develop, as 30% of the payment goes to its development
  • I would love to make this plugin public, but even the minimum fee gives an incentive to its further development and support
Xlsx file format generate from Twig-template

The plugin does not require any specific settings for its work, except as specified below:

  • Attention! Unfortunately, I was not able to upload the full distribution package including the prebuild Vendor folder (145 MB in Zip & 268 Mb in UnZip) to the this server. Do the composer “update” command (composer.json present in UniDoc base catalog) or download vendor archive file from my server and just expand archive into main this plugin folder.

  • for correct support of Snappy, installation is required Wkhtmltopdf (for Windows it is in the "vendor\bin\wkhtml\wkhtmltopdf.exe"), for Linux it needs to be installed and configured (there are enough manuals on the network, all manipulations - a couple of command-lines)

Demo for uses generated files from Frontend side (code from main demo site):

GET ID set (simple link):

    <ul>
        <li>
            <a href="/docs/spreadsheet/{id}">Test Excel generate, save in Database and Download (with include ID:5 in GET request, Twig table template)</a>
        </li>
        <li>
            <a href="/docs/doc/{id}">Test Word generate, save in Database and Download (with include ID:5 in GET request, PHP + template.docx)</a>
        </li>
        <li>
            <a href="/docs/pdf/snappy/{id}">Test PDF generate, save in Database and Download (with include ID:5 in GET request, uses Snappy LIB, Twig template)</a>
        </li>        
        <li>
            <a href="/docs/pdf/mpdf/{id}">Test PDF generate, save in Database and Download (with include ID:5 in GET request, uses mPDF LIB, Twig template)</a>
        </li>                
        <li>
            <a href="/docs/pdf/tcpdf/{id}">Test PDF generate, save in Database and Open in Browser (with include ID:5 in GET request, uses TCPDF LIB, Twig template)</a>
        </li>        
         <li>
            <a href="/docs/pdf/dompdf/{id}">Test PDF generate, save in Database and Open in Browser (with include ID:5 in GET request, uses Dompdf LIB, Twig template)</a>
        </li>               
    </ul>      

POST ID set (post form submit, Snappy example): in Layout presets add this code for replace router {id} to id from POST-request

$id = post('id'); //Replace router {id} from POST-request

and html form

<form action="/docs/pdf/snappy-post/0">
    <input name="id" value="7">
    <input type="submit" value="Download file">
</form>

List Events:

  • 'linkonoid.unidoc.afterFileMake', parameters in: [&$record, $this] ($record - object with file generated info)
  • 'linkonoid.unidoc.beforeResponseMake', parameters in: [&$output, $this] ($output - object with output file body)
  • 'linkonoid.unidoc.afterResponseMake', parameters in: [&$response , $this] ($response - object with full response, includes sends headers)

In the future, new events will be added.

1.0.4

Added support installation for v2 (used Git-repository).

Jul 16, 2021

1.0.3

Changed getting $id for document generate from GET-request on to native Laravel - "/docs/{id}"

Dec 25, 2019

1.0.2

Added presettings example in /impexp folder for quick start

Nov 28, 2019

1.0.1

Initialize plugin.

Nov 27, 2019