diff options
| -rw-r--r-- | NEWS | 2 | ||||
| -rw-r--r-- | mammoth/docx/office_xml.py | 16 | ||||
| -rw-r--r-- | tests/mammoth_tests.py | 7 | ||||
| -rw-r--r-- | tests/test-data/strict-format.docx | bin | 0 -> 11692 bytes |
4 files changed, 22 insertions, 3 deletions
@@ -6,6 +6,8 @@ * Drop support for Python 2.7, Python 3.5 and Python 3.6. +* Add support for the strict document format. + # 1.6.0 * Support merged paragraphs when revisions are tracked. diff --git a/mammoth/docx/office_xml.py b/mammoth/docx/office_xml.py index 0a6a8a8..bebd04c 100644 --- a/mammoth/docx/office_xml.py +++ b/mammoth/docx/office_xml.py @@ -3,22 +3,32 @@ from .xmlparser import parse_xml, XmlElement _namespaces = [ + # Transitional format ("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main"), + ("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"), ("wp", "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"), ("a", "http://schemas.openxmlformats.org/drawingml/2006/main"), ("pic", "http://schemas.openxmlformats.org/drawingml/2006/picture"), + + # Strict format + ("w", "http://purl.oclc.org/ooxml/wordprocessingml/main"), + ("r", "http://purl.oclc.org/ooxml/officeDocument/relationships"), + ("wp", "http://purl.oclc.org/ooxml/drawingml/wordprocessingDrawing"), + ("a", "http://purl.oclc.org/ooxml/drawingml/main"), + ("pic", "http://purl.oclc.org/ooxml/drawingml/picture"), + + # Common ("content-types", "http://schemas.openxmlformats.org/package/2006/content-types"), - ("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"), ("relationships", "http://schemas.openxmlformats.org/package/2006/relationships"), - ("v", "urn:schemas-microsoft-com:vml"), ("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"), + ("v", "urn:schemas-microsoft-com:vml"), ("office-word", "urn:schemas-microsoft-com:office:word"), ] def read(fileobj): return _collapse_alternate_content(parse_xml(fileobj, _namespaces))[0] - + def _collapse_alternate_content(node): if isinstance(node, XmlElement): diff --git a/tests/mammoth_tests.py b/tests/mammoth_tests.py index b8c6a11..36d0e83 100644 --- a/tests/mammoth_tests.py +++ b/tests/mammoth_tests.py @@ -299,6 +299,13 @@ def test_can_extract_raw_text(): assert_equal("Apple\n\nBanana\n\n", result.value) +def test_can_read_strict_format(): + with open(generate_test_path("strict-format.docx"), "rb") as fileobj: + result = mammoth.convert_to_html(fileobj=fileobj) + assert_equal([], result.messages) + assert_equal("<p>Test</p>", result.value) + + def _copy_of_test_data(path): destination = io.BytesIO() with open(generate_test_path(path), "rb") as source: diff --git a/tests/test-data/strict-format.docx b/tests/test-data/strict-format.docx Binary files differnew file mode 100644 index 0000000..4495720 --- /dev/null +++ b/tests/test-data/strict-format.docx |
