diff options
| author | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2023-05-16 14:49:31 +0000 |
|---|---|---|
| committer | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2023-05-16 14:49:31 +0000 |
| commit | 5a474dd06d9f9185fcbe989baccd9ebd91d60063 (patch) | |
| tree | 0a965468e98618f2fbfa6e97a0cde03e3462ffdc /docutils/tools | |
| parent | 00a0cb9d95bf676ef65fd578dffc34f30cd5b36c (diff) | |
| download | docutils-5a474dd06d9f9185fcbe989baccd9ebd91d60063.tar.gz | |
Move auxiliary script rst2odt_prepstyles.py to the library.
git-svn-id: https://svn.code.sf.net/p/docutils/code/trunk@9386 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'docutils/tools')
| -rwxr-xr-x | docutils/tools/rst2odt_prepstyles.py | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/docutils/tools/rst2odt_prepstyles.py b/docutils/tools/rst2odt_prepstyles.py deleted file mode 100755 index 6944a3d61..000000000 --- a/docutils/tools/rst2odt_prepstyles.py +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env python3 - -# $Id$ -# Author: Dave Kuhlman <dkuhlman@rexx.com> -# Copyright: This module has been placed in the public domain. - -""" -Adapt a word-processor-generated styles.odt for odtwriter use: - -Drop page size specifications from styles.xml in STYLE_FILE.odt. -See https://docutils.sourceforge.io/docs/user/odt.html#page-size -""" - -# Author: Michael Schutte <michi@uiae.at> - -from xml.etree import ElementTree as etree - -import sys -import zipfile -from tempfile import mkstemp -import shutil -import os - -NAMESPACES = { - "style": "urn:oasis:names:tc:opendocument:xmlns:style:1.0", - "fo": "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" -} - - -def prepstyle(filename): - - zin = zipfile.ZipFile(filename) - styles = zin.open("styles.xml") - - root = None - # some extra effort to preserve namespace prefixes - for event, elem in etree.iterparse(styles, events=("start", "start-ns")): - if event == "start-ns": - etree.register_namespace(elem[0], elem[1]) - elif event == "start": - if root is None: - root = elem - - styles.close() - - for el in root.findall(".//style:page-layout-properties", - namespaces=NAMESPACES): - for attr in list(el.attrib): - if attr.startswith("{%s}" % NAMESPACES["fo"]): - del el.attrib[attr] - - tempname = mkstemp() - zout = zipfile.ZipFile(os.fdopen(tempname[0], "wb"), "w", - zipfile.ZIP_DEFLATED) - - for item in zin.infolist(): - if item.filename == "styles.xml": - zout.writestr(item, etree.tostring(root, encoding="UTF-8")) - else: - zout.writestr(item, zin.read(item.filename)) - - zout.close() - zin.close() - shutil.move(tempname[1], filename) - - -def main(): - args = sys.argv[1:] - if len(args) != 1 or args[0] in ('-h', '--help'): - print(__doc__, file=sys.stderr) - print("Usage: %s STYLE_FILE.odt\n" % sys.argv[0], file=sys.stderr) - sys.exit(1) - filename = args[0] - prepstyle(filename) - - -if __name__ == '__main__': - main() |
