odfdo


Nameodfdo JSON
Version 3.7.10 PyPI version JSON
download
home_pagehttps://github.com/jdum/odfdo
SummaryPython library for OpenDocument Format
upload_time2024-05-04 13:47:54
maintainerNone
docs_urlNone
authorJérôme Dumonteil
requires_python<4,>=3.9
licenseApache-2.0
keywords python library odf opendocument
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # odfdo

Python library for OpenDocument format (ODF)

![logo](https://raw.githubusercontent.com/jdum/odfdo/master/odfdo.png)

`odfdo` is a Python3 library implementing the ISO/IEC 26300 OpenDocument Format
standard.

Project:
https://github.com/jdum/odfdo

Author:
jerome.dumonteil@gmail.com

License:
Apache License, Version 2.0

`odfdo` is a derivative work of the former `lpod-python` project.

# Installation

Installation from Pypi (recommended):

```python
pip install odfdo
```

Installation from sources (requiring setuptools):

```python
pip install .
```

After installation from sources, you can check everything is working (some requirements: `pytest`, Pillow, ...):

```python
pytest
```

The tests should run for a few seconds or minutes and issue no error.

# Usage

    from odfdo import Document, Paragraph

    doc = Document('text')
    doc.body.append(Paragraph("Hello world!"))
    doc.save("hello.odt")

# tl;dr

'Intended Audience :: Developers'

# Documentation

There is no detailed documentation or tutorial, but:

-   the `recipes` folder contains more than 50 working sample scripts,
-   the `doc` folder contains an auto generated documentation.

When installing odfdo, a few scripts are installed:

-   `odfdo-diff`: show a _diff_ between two .odt document.
-   `odfdo-folder`: convert standard ODF file to folder and files, and reverse.
-   `odfdo-show`: dump text from an ODF file to the standard output, and optionally styles and meta informations.
-   `odfdo-styles`: command line interface tool to manipulate styles of ODF files.
-   `odfdo-replace`: find a pattern (regex) in an ODF file and replace by some string.
-   `odfdo-highlight`: highlight the text matching a pattern (regex) in an ODF file.
-   `odfdo-headers`: print the headers of an ODF file.
-   `odfdo-table-shrink`: shrink tables to optimize width and height.

About styles: the best way to apply style is by merging styles from a template
document into your generated document (See `odfdo-styles` script).
Styles are a complex matter in ODF, so trying to generate styles programmatically
is not recommended.

# Limitations

`odfdo` is intended to facilitate the generation of ODF documents,
nevertheless a basic knowledge of the ODF format is necessary.

ODF document rendering can vary greatly from software to software. Especially the
"styles" of the document allow an adaptation of the rendering for a particular
software.

The best (only ?) way to apply style is by merging styles from a template
document into your generated document. However a few recipes show how to make
programmatically some basic styles: `create_basic_text_styles`, `add_text_span_styles`).

# Related project

I you work on `.ods` files (spreadsheet), you may be interested by these scripts using
this library to parse/generate `.ods` files:
`https://github.com/jdum/odsgenerator` and `https://github.com/jdum/odsparsator`

# Changes from former lpod library

`lpod-python` was written in 2009-2010 as a Python 2.x library,
see: `https://github.com/lpod/lpod-python`

`odfdo` is an adaptation of this former project. `odfdo` main changes from `lpod`:

-   `odfdo` requires Python version 3.9 to 3.12. For Python 3.6 to 3.8 see previous releases.
-   API change: more pythonic.
-   include recipes.
-   use Apache 2.0 license.


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/jdum/odfdo",
    "name": "odfdo",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.9",
    "maintainer_email": null,
    "keywords": "python, library, ODF, OpenDocument",
    "author": "J\u00e9r\u00f4me Dumonteil",
    "author_email": "jerome.dumonteil@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/37/2f/f55024d728266aa8091be66346b79facbb21be5b87dc41a16e2dcc1cf71c/odfdo-3.7.10.tar.gz",
    "platform": null,
    "description": "# odfdo\n\nPython library for OpenDocument format (ODF)\n\n![logo](https://raw.githubusercontent.com/jdum/odfdo/master/odfdo.png)\n\n`odfdo` is a Python3 library implementing the ISO/IEC 26300 OpenDocument Format\nstandard.\n\nProject:\nhttps://github.com/jdum/odfdo\n\nAuthor:\njerome.dumonteil@gmail.com\n\nLicense:\nApache License, Version 2.0\n\n`odfdo` is a derivative work of the former `lpod-python` project.\n\n# Installation\n\nInstallation from Pypi (recommended):\n\n```python\npip install odfdo\n```\n\nInstallation from sources (requiring setuptools):\n\n```python\npip install .\n```\n\nAfter installation from sources, you can check everything is working (some requirements: `pytest`, Pillow, ...):\n\n```python\npytest\n```\n\nThe tests should run for a few seconds or minutes and issue no error.\n\n# Usage\n\n    from odfdo import Document, Paragraph\n\n    doc = Document('text')\n    doc.body.append(Paragraph(\"Hello world!\"))\n    doc.save(\"hello.odt\")\n\n# tl;dr\n\n'Intended Audience :: Developers'\n\n# Documentation\n\nThere is no detailed documentation or tutorial, but:\n\n-   the `recipes` folder contains more than 50 working sample scripts,\n-   the `doc` folder contains an auto generated documentation.\n\nWhen installing odfdo, a few scripts are installed:\n\n-   `odfdo-diff`: show a _diff_ between two .odt document.\n-   `odfdo-folder`: convert standard ODF file to folder and files, and reverse.\n-   `odfdo-show`: dump text from an ODF file to the standard output, and optionally styles and meta informations.\n-   `odfdo-styles`: command line interface tool to manipulate styles of ODF files.\n-   `odfdo-replace`: find a pattern (regex) in an ODF file and replace by some string.\n-   `odfdo-highlight`: highlight the text matching a pattern (regex) in an ODF file.\n-   `odfdo-headers`: print the headers of an ODF file.\n-   `odfdo-table-shrink`: shrink tables to optimize width and height.\n\nAbout styles: the best way to apply style is by merging styles from a template\ndocument into your generated document (See `odfdo-styles` script).\nStyles are a complex matter in ODF, so trying to generate styles programmatically\nis not recommended.\n\n# Limitations\n\n`odfdo` is intended to facilitate the generation of ODF documents,\nnevertheless a basic knowledge of the ODF format is necessary.\n\nODF document rendering can vary greatly from software to software. Especially the\n\"styles\" of the document allow an adaptation of the rendering for a particular\nsoftware.\n\nThe best (only ?) way to apply style is by merging styles from a template\ndocument into your generated document. However a few recipes show how to make\nprogrammatically some basic styles: `create_basic_text_styles`, `add_text_span_styles`).\n\n# Related project\n\nI you work on `.ods` files (spreadsheet), you may be interested by these scripts using\nthis library to parse/generate `.ods` files:\n`https://github.com/jdum/odsgenerator` and `https://github.com/jdum/odsparsator`\n\n# Changes from former lpod library\n\n`lpod-python` was written in 2009-2010 as a Python 2.x library,\nsee: `https://github.com/lpod/lpod-python`\n\n`odfdo` is an adaptation of this former project. `odfdo` main changes from `lpod`:\n\n-   `odfdo` requires Python version 3.9 to 3.12. For Python 3.6 to 3.8 see previous releases.\n-   API change: more pythonic.\n-   include recipes.\n-   use Apache 2.0 license.\n\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Python library for OpenDocument Format",
    "version": "3.7.10",
    "project_urls": {
        "Homepage": "https://github.com/jdum/odfdo",
        "Repository": "https://github.com/jdum/odfdo"
    },
    "split_keywords": [
        "python",
        " library",
        " odf",
        " opendocument"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "461f74d17e553787edd1ac2c3df813119cd82fd41d1f5048b53998cfd06a87c0",
                "md5": "47a8af1ccedee85b5881d5160feb9462",
                "sha256": "c6cee85a3960259ccd19e358694e9f265767d089eaa319c467a88ee4c2c77436"
            },
            "downloads": -1,
            "filename": "odfdo-3.7.10-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "47a8af1ccedee85b5881d5160feb9462",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.9",
            "size": 235398,
            "upload_time": "2024-05-04T13:47:52",
            "upload_time_iso_8601": "2024-05-04T13:47:52.136713Z",
            "url": "https://files.pythonhosted.org/packages/46/1f/74d17e553787edd1ac2c3df813119cd82fd41d1f5048b53998cfd06a87c0/odfdo-3.7.10-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "372ff55024d728266aa8091be66346b79facbb21be5b87dc41a16e2dcc1cf71c",
                "md5": "696b0510574f3d34be6d5dc66c351aec",
                "sha256": "a5fb264230ac06c9a5f2a3c3df557be6da9c99cb697e38215ced57f663e0771e"
            },
            "downloads": -1,
            "filename": "odfdo-3.7.10.tar.gz",
            "has_sig": false,
            "md5_digest": "696b0510574f3d34be6d5dc66c351aec",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.9",
            "size": 184009,
            "upload_time": "2024-05-04T13:47:54",
            "upload_time_iso_8601": "2024-05-04T13:47:54.146057Z",
            "url": "https://files.pythonhosted.org/packages/37/2f/f55024d728266aa8091be66346b79facbb21be5b87dc41a16e2dcc1cf71c/odfdo-3.7.10.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-04 13:47:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jdum",
    "github_project": "odfdo",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "odfdo"
}
        
Elapsed time: 0.24627s