Metadata-Version: 2.1
Name: shoobx.rml2odt
Version: 0.9.0
Summary: A converter from RML to ODT.
Home-page: http://pypi.python.org/pypi/shoobx.rml2odt
Author: Shoobx, Inc.
Author-email: dev@shoobx.com
License: ZPL 2.1
Keywords: rml odf odt libreoffice pagetemplate
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
License-File: LICENSE.txt
License-File: AUTHORS.txt
Requires-Dist: lazy
Requires-Dist: odfpy
Requires-Dist: importlib-metadata
Requires-Dist: pypng
Requires-Dist: PyQRCode
Requires-Dist: setuptools
Requires-Dist: z3c.rml
Requires-Dist: zope.interface
Provides-Extra: test
Requires-Dist: coverage ; extra == 'test'
Requires-Dist: unoconv ; extra == 'test'
Requires-Dist: zope.testrunner ; extra == 'test'

================================================
``shoobx.rml2odt`` -- Conversion of RML to ODT
================================================

.. image:: https://github.com/Shoobx/shoobx.rml2odt/actions/workflows/test.yml/badge.svg
   :target: https://github.com/Shoobx/shoobx.rml2odt/actions

.. image:: https://coveralls.io/repos/github/Shoobx/shoobx.rml2odt/badge.svg?branch=master
   :target: https://coveralls.io/github/Shoobx/shoobx.rml2odt?branch=master

.. image:: https://img.shields.io/pypi/v/shoobx.rml2odt.svg
    :target: https://pypi.python.org/pypi/shoobx.rml2odt

.. image:: https://img.shields.io/pypi/pyversions/shoobx.rml2odt.svg
    :target: https://pypi.python.org/pypi/shoobx.rml2odt/

.. image:: https://api.codeclimate.com/v1/badges/9c462255ca85b7f77de8/maintainability
   :target: https://codeclimate.com/github/Shoobx/shoobx.rml2odt/maintainability
   :alt: Maintainability

This library implements a converter from Reportlabs RML format to
Libreoffices/Open Document Formats ODT format utilizing the ``z3c.rml``
parser and ``odfpy`` library.

It's developed by Shoobx (https://shoobx.com) but is open source, and
we are happy to accept outside contributions. See DEVELOPMENT.rst for more
information.


Installing
==========

Install with::

    $ pip install shoobx.rml2odt


Usage
=====

There is three ways of using shoobx.rml2odt.


From the command line
---------------------

Installing shoobx.rml2odt will install a script that can be used from the
command line::

   rml2odt <infile> <outfile>


Converting files from Python
----------------------------

You can import shoobx.rml2odt as a library and convert files from Python::

    >>> from shoobx.rml2odt import rml2odt
    >>> rml2odt.convertFile(infilepath, outfilepath)

which will convert the file at infilepath and create the ODT file at
outfilepath.


Converting an RML string in Python
----------------------------------

If your RML data isn't in a file, but is held in a string, you can import
shoobx.rml2odt as a library and convert text data from Python::

    >>> from shoobx.rml2odt import rml2odt
    >>> odt_data = rml2odt.convertString(inputstring).read()
    >>> with open(outputfile, 'wb') as output:
    ...     output.write(odt_data)



CHANGES
=======

0.9.0 (2025-02-27)
------------------

- Moving CI to github actions

- Python 3.9, 3.10, 3.11 compatibility


0.8.0 (2020-12-08)
------------------

- Upgrade to py3.7+

- Changes for z3c.rml 4+ dependency


0.7.1 (2020-02-26)
------------------

- Add support for nested lists with different styling than parent


0.7.0 (2019-08-19)
------------------

- Add minor support for `keepTogether` tags, always displaying contents and
  keeping direct child `blockTable` elements on the same page


0.6.1 (2019-08-16)
------------------

- Add support for `spanStyle` tags.

- Add support for `underline` attribute is `paraStyle` and `spanStyle` tags.


0.6.0 (2019-04-12)
------------------

- Complete overhaul of blockTable styling.
  This enables the use blockTableStyle and `td` styling tags.
  Most text, background and border styling is supported.


0.5.0 (2019-04-05)
------------------

- Fix: `img` must be in a Paragraph otherwise LibreOffice will not show the
  Image

- Code cleanup and refactor

- Lots of fixes, cleanup, tests added

- Fix: blockSpan handling was completely broken

- Fix: Removed whitespace from `para` left text,
  removed tail text of `para` tag

- Fix: `NextPage` did not work, it added no page break

- Fix: Do not add tabs to the ODT output, reportlab does not either.
  There's a special `tab` tag that is used by our custom numbering.

- Fix: Do not fail on missing `value` of the `color` tag

- Fix: Support `pre` and `xpre` tags, make sure whitespace is not squashed

- Fix: Copy the `main` or `Main` pageTemplate to `Standard` to make ODT
  at least somehow happy. Reportlab uses `main` as conventional default.
  This is still just a workaround. Supporting custom templates set in a story
  will take more efforts.

- Copied all z3c.rml RML test inputs, blacklisted a lot, listed shortcomings.

0.4.4 (2019-03-26)
------------------

- Fix: Next paragraph text strip for custom bullets broken by 0.4.3.


0.4.3 (2019-03-26)
------------------

- Fix: bullet numbering ignored `value` as start

- Fix: support all custom `li` bullets (l, L, o, O, r, R)


0.4.2 (2019-03-20)
------------------

- Fix: the `br` tag used a class variable to remember whether it added the
  style `BreakJustify`.
- Fix `span` tag handling. It literally discarded most text.


0.4.1 (2019-03-19)
------------------

- Fix: Text following a comment tag was discarded.

- Fix: 3+ whitespace was replaced with nothing. Caused text to miss spaces.


0.4.0 (2018-01-23)
------------------

- More indentation fixes.

- Added support for O format lists (First, Second, Third)

- Add support to have bullet lists in number lists and vice versa

- Convert tables in lists to lists in lists

- Support for blockSpan in table styles.

- Handle tail text of comments

- Supporting RML blockSpan styles for tables

- Take the maximum, not the first when calculating the number of columns


0.3.0 (2018-01-12)
------------------

- Many many formatting fixes including an almost complete rewrite of
  list handling and list styles.


0.2.0 (2017-12-08)
------------------

- Cleaned up the public API.

- Added basic docs.


0.1.0 (2017-11-21)
------------------

- Basic Support for:

  * Flowables: para, blockTable, hr, ul, ol

  * Stylesheets: paraStyle

  * Page Layout

- Initial Release
