{ "info": { "author": "Uli Fouquet", "author_email": "uli at gnufix.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Framework :: Paste", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 2 :: Only", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware", "Topic :: Office/Business :: Office Suites", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "ulif.openoffice\n***************\n\nConvert office docs with LibreOffice/OpenOffice via Python,\nCommandline, or HTTP (including XMLRPC).\n\n|build-status|_\n\n.. |build-status| image:: https://travis-ci.org/ulif/ulif.openoffice.png?branch=master\n.. _build-status: https://travis-ci.org/ulif/ulif.openoffice\n\n\nThis package provides tools like WSGI apps, cache managers, and\ncommandline converters to ease access to LibreOffice/OpenOffice\ninstallations for Python programmers. Beside basic converting it\nprovides 'document processors' for further finetuning of generated\ndocs (mainly HTML).\n\nOut of the box these processors allow extracting CSS from HTML\nconversions, removal of LibreOffice-specific tags, zipping, unzipping,\netc.\n\nIf the given processors are not enough for you, or you want some\nspecial handling of results (say, sign generated docs\ncryptographically, add watermarks, or whatever), you can define own\nadditional document processors in your own packages by using the\nPython entry-point API. `ulif.openoffice` will integrate them\nautomatically during document processing and provide them in\nwebservices, commandline clients and Python API.\n\n.. note:: `ulif.openoffice` trusts `unoconv` to do the actual\n conversions. So you must have the `unoconv` script installed\n on your system.\n\nResources\n=========\n\n`ulif.openoffice` sources are hosted on\n\n https://github.com/ulif/ulif.openoffice\n\nThe complete documentation can be found at\n\n https://ulif-openoffice.readthedocs.org/en/latest/\n\n\n.. contents::\n\n..\n >>> from ulif.openoffice.testing import (\n ... doctest_setup, doctest_teardown, doctest_rm_resultdir)\n >>> doctest_setup()\n >>> from pprint import pprint\n\nExamples\n========\n\nConversion via Python\n---------------------\n\nA .doc to .html conversion via the Python API can be done like this::\n\n >>> from ulif.openoffice.client import Client\n >>> client = Client()\n >>> result = client.convert('document.doc')\n >>> pprint(result)\n ('.../document.html.zip', None, {'error': False, 'oocp_status': 0})\n\n..\n >>> doctest_rm_resultdir(result[0]) # clean up\n\nThe generated document is by default brushed up HTML with separate\nstylesheets and images all put into a single .zip document.\n\nYou can configure the document conversion via various options. This\nway you can set the output type (at least PDF, HTML, XHTML and TXT are\nsupported), tell whether separate CSS stylesheets should be extracted,\nwhich PDF format should be generated (1.3 aka PDF/A or 1.4), and many,\nmany things more.\n\nConversion via Commandline\n--------------------------\n\nWe also provide a handy commandline tool to perform conversions::\n\n $ oooclient document.doc\n RESULT in /tmp/.../document.html.zip\n\nAs you can see, the result is put in a freshly created directory.\n\nThe commandline client also provides help to display all supported\noptions, document processors, etc.::\n\n $ oooclient --help\n\nwill give you the comprehensive list.\n\n\nConversion via Web (XMLRPC or RESTful)\n--------------------------------------\n\n`ulif.openoffice` comes with two WSGI applications that provide\ndocument conversion services to web clients. One is a RESTful document\nconversion service, the other is a WSGI based XMLRPC server. With one\nof these applications running you can send office documents to a\nserver and will receive the converted document.\n\nAll WSGI document converters supports (optional) local caching which\nwill store conversion results and deliver it (bypassing new\nconversion) if a document was requested to be converted already.\n\nThe package comes with prepared configuration files to setup and start\nsuch a web-based document converter in minutes.\n\nSee the extended docs under\n\n https://ulif-openoffice.readthedocs.org/en/latest/\n\nfor details.\n\n\nInstall\n=======\n\nUser Install\n------------\n\n`ulif.openoffice` can be installed via `pip`::\n\n $ pip install ulif.openoffice\n\nAfterwards all commandline tools should be available.\n\n\nDeveloper Install\n-----------------\n\nIt is recommended to setup sources in a virtual environment::\n\n $ virtualenv py27 # Python 2.6, 2.7 are supported\n $ source py27/bin/activate\n (py27) $\n\nGet the sources::\n\n (py27) $ git clone https://github.com/ulif/ulif.openoffice.git\n (py27) $ cd ulif.openoffice\n\nInstall packages for testing::\n\n (py27) $ python setup.py dev\n\nIt is recommended to start the ``oooctl`` daemon before running\ntests::\n\n (py27) $ oooctl start\n\nThis will make LibreOffice listen in background and reduce\nruntime of tests significantly.\n\nRunning tests::\n\n (py27) $ py.test\n\nWe also support `tox` to run tests for all supported Python versions::\n\n (py27) $ pip install tox\n (py27) $ tox\n\nOf course you must have the respective Python versions installed\n(currently: Python 2.6, 2.7).\n\nRunning coverage detector::\n\n (py27) $ py.test --cov=ulif.openoffice # for cmdline results\n (py27) $ py.test --cov=ulif.openoffice --cov-report=html\n\nThe latter will generate HTML coverage reports in a subdirectory.\n\nInstall packages for Sphinx-base documentation::\n\n (py27) $ python setup.py docs\n (py27) $ cd doc\n (py27) $ make html\n\nWill generate the documentation in a subdirectory.\n\n\nLicense\n=======\n\n`ulif.openoffice` is covered by the GPL version 2.\n\n\nAuthor\n======\n\nBy Uli Fouquet (uli at gnufix dot de). Please do not hesitate to\ncontact me for wishes, requests, suggestions, or other questions.\n\n..\n >>> doctest_teardown()\n\n\nCHANGES\n*******\n\n1.1.1 (2015-07-23)\n==================\n\n* Close file handles properly.\n\n* The commandline client now only handles one input file and does not\n copy whole directory contents any more.\n\n\n1.1 (2015-07-12)\n================\n\n* Added a WSGI-based XMLRPC application to trigger conversion via\n XMLRPC.\n\n* Added `get_cached` method for client and XMLRPC client to retrieve\n docs stored in cache.\n\n* Added `get_cached_file_by_source` method for cachemanager. This method\n is expensive but allows finding cached files without a cache key.\n\n* Fixed bug: OOCP processor returned wrong result file path for XHTML\n output.\n\n* Fixed bug: Remove temporary dir if converting fails in client.\n\n* Modified tests to accept also docs generated on Ubuntu 14.04.\n\n* Fixed bug: Catch shutil.Error in copytree() [thanks to: sbywater]\n\n* Added new option: `--css-cleaner-prettify-html` prettifies generated\n HTML code. This was done automatically in previous releases and can\n lead to gaps in rendered output. This option, when set (disabled by\n default) enables the old behaviour. Fixes #3.\n\n\n1.0 (2013-09-02)\n================\n\nMajor rewrite of the whole package.\n\n* `convert` now uses the commandline tool `unoconv`. You need this\n tool to use the package.\n\n* As `unoconv` has all you want from the package script `convert` (and\n much more!), the `convert` script is not provided as a script any\n more. Simply use `unoconv` instead.\n\n* `oooctl` is now a daemonizer for ``unoconv -l``.\n\n* Apply PEP 8 rules to cachemanager.py.\n\n* Moved unittests to dedicated ``tests/`` dir in package root.\n\n* Switched from Zope testing to `py.test`.\n\n* Removed `pyuno` server, clients and related components.\n\n* Removed `find` functionality as it is based on direct `pyuno` access.\n\n* Removed `zc.buildout` support.\n\n* Removed cherrypy-based restserver. The new WSGI app is the replacement.\n\n* Added WSGI based document converter.\n\n* Added simple htaccess WSGI filter for web authentication.\n\n* Replaced cachemanager with a more robust and lightweight\n version. Old caches do not work any more with this new\n implementation.\n\n* Introduced a new central `Options` component to manage supported\n options for all other components.\n\n0.4 (2011-02-11)\n================\n\n* Added functionality to find text in documents. Many thanks to sig at\n akasig.org for the patch!\n\n0.3 (2010-11-17)\n================\n\n* Added option to disable caching completely: set ``--cache-dir`` to\n empty string to disable caching [Thanks to Adama Groszer for\n patches!]\n\n* Removed unwanted output when running in foreground mode.\n\n* Cachemanager now supports listing all sources contained in cache\n dir.\n\n* Fixed bug in cachemanager: under rare circumstances (two different\n input files with same MD5 hash digest *and* identical file stats\n were considered to be identical by the cachemanager and thus led to\n inconsistencies in cache). We now check thoroughly whether two such\n files differ.\n\n* Lots of test fixes [Thanks to Adam Groszer for patches!]\n\n0.2.1 (2010-06-13)\n==================\n\n* Fixed fix to cope with pyuno monkey-patching standard __import__\n function. More recent pyuno versions do not do that kind of stuff\n any more (which is an improvement).\n\n* Fixed foreground start of ```oooctl``` server. It didn't work\n correctly with more recent OpenOffice.org/pyuno installs. You now\n don't have to press CTRL-C two times anymore when trying to stop a\n oooctl server running in foreground.\n\n\n0.2 (2010-05-20)\n================\n\n* Added license and copyright file to comply with policy of major\n Linux distributors.\n\n* Added sphinx docs.\n\n* Fixed wrong result path when returning cached HTML results.\n\n* Added mode ``fg`` for ``oooctl``. Using ``oooctl fg`` one can start\n ``oooctl`` in foreground now.\n\n* Added mode ``fg`` for ``pyunoctl``. Using ``pyunoctl fg`` one can start\n ``pyunoctl`` in foreground now.\n\n* Added state check for ``oooctl``: when OpenOffice.org server is down\n during runtime it is restarted automatically. The check happens\n every second.\n\n* Use standard lib `doctest` instead of `zope.testing.doctest`.\n\n* Changed PDF creation: by default now normal PDF (and not PDF/A) is\n created when converting to PDF. This is due to an endianess bug in\n many recent OpenOffice.org binaries running on 64-bit platforms.\n\n0.1 (2010-03-02)\n================\n\n* Initial implementation.", "description_content_type": null, "docs_url": "https://pythonhosted.org/ulif.openoffice/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/ulif.openoffice", "keywords": "openoffice pyuno uno openoffice.org libreoffice", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "ulif.openoffice", "package_url": "https://pypi.org/project/ulif.openoffice/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ulif.openoffice/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pypi.python.org/pypi/ulif.openoffice" }, "release_url": "https://pypi.org/project/ulif.openoffice/1.1.1/", "requires_dist": null, "requires_python": null, "summary": "Run OpenOffice as web service.", "version": "1.1.1" }, "last_serial": 1646883, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "b0e92e88c1c80610e1f6bf198161fde2", "sha256": "edb486c0bb38197e32d3522ffb7c61eea7dbe28acc828cff7a5170e1f43877d8" }, "downloads": -1, "filename": "ulif.openoffice-0.2.tar.gz", "has_sig": false, "md5_digest": "b0e92e88c1c80610e1f6bf198161fde2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1459820, "upload_time": "2010-05-20T16:10:18", "url": "https://files.pythonhosted.org/packages/88/63/c40c6e4df65c274114331316d806df457cecdcdabab531cda5a7cef91e66/ulif.openoffice-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "c950f3eb28ef265e1708e455ca40bdf8", "sha256": "141ea5feb8a3f6834d1d89df445f7f67df412350383fae6ac2adcdcce350be0e" }, "downloads": -1, "filename": "ulif.openoffice-0.2.1.tar.gz", "has_sig": false, "md5_digest": "c950f3eb28ef265e1708e455ca40bdf8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1460569, "upload_time": "2010-06-13T19:23:25", "url": "https://files.pythonhosted.org/packages/04/d4/21d950001720c1af83da9ee3d207a85045beb47b3b01985e51b1f3495012/ulif.openoffice-0.2.1.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "e75b7a2980630a2a4b5509600e6fff4a", "sha256": "80edae36aec44302bd4389c8016a9c10b72782bdb95ddf56e0ed16331fbb795a" }, "downloads": -1, "filename": "ulif.openoffice-0.3.tar.gz", "has_sig": false, "md5_digest": "e75b7a2980630a2a4b5509600e6fff4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1467742, "upload_time": "2010-11-17T19:11:46", "url": "https://files.pythonhosted.org/packages/79/68/348110331097f5264e58807b647e2b742a0f6e8347a7c6b2c0045b1e6590/ulif.openoffice-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "719068a17bcbc742d2c92742df18a8d5", "sha256": "4e049d226db389bb0f62201f1c5adf2762b298bf28363853b92f7f10dd31ff3f" }, "downloads": -1, "filename": "ulif.openoffice-0.4.tar.gz", "has_sig": false, "md5_digest": "719068a17bcbc742d2c92742df18a8d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1469817, "upload_time": "2011-02-11T17:29:34", "url": "https://files.pythonhosted.org/packages/b9/8a/29086585efc1a0409ffeec582eabdddaa9abf200628a2ad4f3bed2998bbc/ulif.openoffice-0.4.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "39634545501cb1d378597d25f96f02ec", "sha256": "ab50492998089b4ea1ef94ea19b40913aec27653a5f4340a3f53bceb3e38c476" }, "downloads": -1, "filename": "ulif.openoffice-1.0.tar.gz", "has_sig": false, "md5_digest": "39634545501cb1d378597d25f96f02ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1527345, "upload_time": "2013-09-02T15:38:30", "url": "https://files.pythonhosted.org/packages/c4/37/0c2feabe7617153d314ac24c08634007a8661907e08cbeb1422a57336a16/ulif.openoffice-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "a99ad7a0b45df86d310316f1f9aa2aa5", "sha256": "d276a2da17a89e905d1d314d848f822a8ded3825fa87350e59061e5e7c04968b" }, "downloads": -1, "filename": "ulif.openoffice-1.1.tar.gz", "has_sig": false, "md5_digest": "a99ad7a0b45df86d310316f1f9aa2aa5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1969737, "upload_time": "2015-07-12T12:47:31", "url": "https://files.pythonhosted.org/packages/47/1f/1d6d3518fa063b4643834be1bd03fb31b01ee3325bdaf26dd317d5bcde39/ulif.openoffice-1.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "133998d527414831c01dc3bc1f1a97c7", "sha256": "a5a08e4282b4d53b8e713b186b63ce755995a861ce20a5175a185485e1ddc2ea" }, "downloads": -1, "filename": "ulif.openoffice-1.1.1.tar.gz", "has_sig": false, "md5_digest": "133998d527414831c01dc3bc1f1a97c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1579179, "upload_time": "2015-07-23T16:04:19", "url": "https://files.pythonhosted.org/packages/c5/6d/39f865ce74409e770dde895444053db54afa5b93733ba4abe8c49687e316/ulif.openoffice-1.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "133998d527414831c01dc3bc1f1a97c7", "sha256": "a5a08e4282b4d53b8e713b186b63ce755995a861ce20a5175a185485e1ddc2ea" }, "downloads": -1, "filename": "ulif.openoffice-1.1.1.tar.gz", "has_sig": false, "md5_digest": "133998d527414831c01dc3bc1f1a97c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1579179, "upload_time": "2015-07-23T16:04:19", "url": "https://files.pythonhosted.org/packages/c5/6d/39f865ce74409e770dde895444053db54afa5b93733ba4abe8c49687e316/ulif.openoffice-1.1.1.tar.gz" } ] }