Skip to content
  • Inge Wallin's avatar
    Implement the first version of a DOCX export filter. · 3487282e
    Inge Wallin authored
    This is one of the things that we have wanted a long time in
    Calligra. This version supports only a few features:
     - Simple text formatting (bold/italic/underline/super,subscript)
     - Even simpler paragraph formatting (justify, spacing)
     - Recognices headings and normal paragraphs
    
    But all the infrastructure is there so it's very easy for even a
    beginner to continue and add more features.
    
    Squashed commit of the following:
    
    commit 74ccd4ce95a200cea237526aff34d14122c20a37
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Tue Apr 22 11:23:28 2014 +0200
    
        Fix all issues in revision 2 of the review.
    
    commit 12f8cd79dab6af2fc3e0e037e7f6ace5e3f55ec9
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sun Apr 20 10:18:23 2014 +0200
    
        Check the result when writing embedded files.
    
        This is the last issue from the review of version 1.
    
    commit 374b507a1f332705c30ea71e91d9af66b9d556a6
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sun Apr 20 09:33:39 2014 +0200
    
        Almost last fixes from the review.
    
    commit 260445accbd22dc2df0e0a5cd5198903374a4574
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sun Apr 20 08:06:34 2014 +0200
    
        Use new Calligra naming conventions for filters.
    
        I.e. calligra_filter_odt2docx instead of words_docx_export.
    
    commit 73ce05471b5b8dd4b58affce354804d6fa4c11e2
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sun Apr 20 07:40:49 2014 +0200
    
        Remove #if 0'ed code.
    
    commit 687f41ecfe7cbd5559686794c7f98d1cb9073aa4
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sun Apr 20 07:34:03 2014 +0200
    
        More fixes from the review.
    
    commit bddcbe051fe53626ca542cfd4417e737fbbd8f77
    Merge: a424832 4619161
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sun Apr 20 07:00:42 2014 +0200
    
        Merge branch 'master' into filters-docx_export-linuz
    
        Conflicts:
        	CMakeLists.txt
    
    commit a42483288ffee206154e8931dff3467a23e276d2
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sun Apr 20 06:10:34 2014 +0200
    
        More fixes from the review.
    
    commit 00b1081260f0d6452588f1f3c727988815a869ed
    Author: Lassi Nieminen <lassniem@gmail.com>
    Date:   Sat Apr 19 16:07:31 2014 +0300
    
        Docx export filter - Make other office programs like the output more
    
    commit 6bf20aed81da41c35f3be233e724da301d4fa145
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sat Apr 19 13:02:11 2014 +0200
    
        Fix issues in the review
    
    commit 6a8421f6429aa1e6c517284a709902e5de5d4524
    Author: Lassi Nieminen <lassniem@gmail.com>
    Date:   Sat Apr 19 10:40:38 2014 +0300
    
        Docx export filter - Address some of the review comments
    
    commit fc88f1601ed766bd284c9239f8981ca661af0fda
    Author: Lassi Nieminen <lassniem@gmail.com>
    Date:   Fri Apr 18 18:06:16 2014 +0300
    
        Docx export filter - Improved styles.xml styles conversion.
    
    commit b3929ff6edfd7b23243318bbfdbde68bc0c49d16
    Author: Lassi Nieminen <lassniem@gmail.com>
    Date:   Fri Apr 18 15:00:30 2014 +0300
    
        Docx export filter : support for headings
    
    commit e1ef036453c809043aaa67dd776dbbd20ff83f14
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Fri Apr 18 08:55:37 2014 +0200
    
        Make the docx export filter not create "mimetype" inside the store.
    
        If there is a file "mimetype" inside the docx then neither LO nor MSO
        will load it.
    
        This problem was created by the KoZipStore which automatically created
        "mimetype" in the very init sequence. I tried to fix the problem while
        keeping a minimal impact on other code.  The new code should be source
        compatible with the old.
    
    commit 63fbcb5286f11cd2ae82cb3d4d335ad5d0747085
    Author: Lassi Nieminen <lassniem@gmail.com>
    Date:   Thu Apr 17 13:26:19 2014 +0300
    
        Docx export filter - Support for paragraph justification
    
    commit f409a64bc3d07a9b21d24a170445bc7823b3bd20
    Author: Lassi Nieminen <lassniem@gmail.com>
    Date:   Tue Apr 15 10:35:18 2014 +0300
    
        Docx export filter - More styles converted
    
    commit 746c3e95b03b88b3d9bcd8042c340e5e3c58ddf3
    Merge: 31730cc 2598712
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Mon Apr 14 16:01:25 2014 +0200
    
        Merge branch 'master' into filters-docx_export-linuz
    
    commit 31730ccf0d79909369d2b4dee95b69d338f5b667
    Author: Lassi Nieminen <lassniem@gmail.com>
    Date:   Sun Apr 13 20:15:19 2014 +0300
    
        Docx export filter: Make MsOffice like the created file more
    
    commit f4b191c8976188d63e5bd687cf1264890009ec85
    Author: Lassi Nieminen <lassniem@gmail.com>
    Date:   Sun Apr 13 17:36:04 2014 +0300
    
        Docx export filter: Fixes to make file validator happy
    
    commit 79e70e94b8a721c95d712260f193d5aea60c8e41
    Author: Lassi Nieminen <lassniem@gmail.com>
    Date:   Sun Apr 13 15:56:25 2014 +0300
    
        Docx expport filter: Make LoWriter like the output more
    
    commit 3d0b1eb98d2299d83f6b73914962e158ee8f8249
    Author: Lassi Nieminen <lassniem@gmail.com>
    Date:   Sun Apr 13 14:45:58 2014 +0300
    
        Docx export filter - more basic style enablers
    
    commit 4731183b27da94ba3e5b496ec24187e2b585b0db
    Author: Lassi Nieminen <lassniem@gmail.com>
    Date:   Sun Apr 13 10:49:51 2014 +0300
    
        Initial styles.xml creation for docx export filter
    
    commit 91b9e027c2fe570dd3d6fdee4db6964afd58354d
    Author: Lassi Nieminen <lassniem@gmail.com>
    Date:   Sat Apr 12 10:49:44 2014 +0200
    
        Some more support for styles.
    
    commit 532353b1b93e234fbfa5a5763ec111532796f1fd
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Thu Apr 10 12:59:50 2014 +0200
    
        Add OdfTextReaderDocxBackend.{h,cpp}
    
    commit e9cb56785090aacc141d957c2b7ff71ad56fa7a8
    Merge: 4c6bab3 ad8b6b7
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sat Dec 14 22:15:16 2013 +0100
    
        Merge branch 'master' into filters-docx_export-linuz
    
        Conflicts:
        	CMakeLists.txt
    
    commit 4c6bab37be844abc556e35b7f5e747f59e8a88e5
    Merge: 4824526 35fea76
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Wed Nov 13 00:35:00 2013 +0100
    
        Merge branch 'master' into filters-docx_export-linuz
    
    commit 4824526e286ccbcfefbd5e01d0448923a3c3a19e
    Merge: 98e4144 4e8bb42
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Fri Aug 9 18:10:56 2013 +0200
    
        Merge branch 'master' into filters-docx_export-linuz
    
    commit 98e4144d26cf3e2c35ffb4291b49c37d53326b56
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sat Jul 20 09:11:39 2013 +0200
    
        Remove all text level backend functions from the OdtReader backend.
    
        They are now in the OdfTextReader backend instead.
    
    commit b8cf2bae9ef478add3b3a7631d8c09dc4a48049a
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Fri Jul 19 21:42:41 2013 +0200
    
        Introduce the text reader into the docx filter.
    
        This patch is going to be improved later.
    
    commit 19b9fdf8bc6c8022311a015fec0b8990f3e56b04
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Fri Jul 19 20:45:57 2013 +0200
    
        Fix the build after merging master.
    
        We still need to use the text reader though.
    
    commit 9634d597c847c122eeae4630afdd8d8e8924c5f0
    Merge: c746b86 784cbe7
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Fri Jul 19 18:45:59 2013 +0200
    
        Merge branch 'master' into filters-docx_export-linuz
    
    commit c746b86c17bbfac0132d502624d2226bfcdf488f
    Merge: 5b31aef cc6f5ab
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sun Jul 14 14:49:27 2013 +0200
    
        Merge branch 'master' into filters-docx_export-linuz
    
        Conflicts:
        	CMakeLists.txt
    
    commit 5b31aefddd22fdd0a853c92fc220be26c0a9ecb8
    Author: Matus Uzak <matus.uzak@gmail.com>
    Date:   Sat Jun 29 21:48:09 2013 +0200
    
        Revert "docx: Replace spaces by underscores in value of the name child"
    
        This reverts commit 81c482548aaf7d7b6caed4a6d7da4085fa1a325f.
    
    commit 81c482548aaf7d7b6caed4a6d7da4085fa1a325f
    Author: Matus Uzak <matus.uzak@gmail.com>
    Date:   Sat Jun 29 21:39:50 2013 +0200
    
        docx: Replace spaces by underscores in value of the name child
        element in the read_name method.  The prev. approach was a bit
        confusing as commented by Friedrich W. H. Kossebau.
    
    commit 7d5e931bb658d4df47fda50abe5d3a9d7a9c7c02
    Merge: 642eef9 3573ece
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Wed Jun 5 14:59:25 2013 +0200
    
        Merge branch 'master' into filters-docx_export-linuz
    
    commit 642eef9de796b31b0acc7ce683e28d0711770b19
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Wed Jun 5 14:57:15 2013 +0200
    
        Remove all dependency on the traverser library from the docx export filter.
    
    commit 9fb10159da0dd74f800ac0e2d11bc293d3d96e64
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Thu May 30 00:04:11 2013 +0200
    
        Fix a bug with the handling of spans in odt and runs in docx.
    
         * Count the levels of spans instead of using a bool
    
    commit 46321e16d632797966e72d715f37cdc6edd42b78
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Thu May 23 06:56:10 2013 +0200
    
        Make the OdtReader based backend output docx.
    
    commit b2237ac8376b622962d7538d4a078cf3d9e74e49
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Wed May 22 22:58:23 2013 +0200
    
        Make it possible to use the OdtReader instead of the OdtTraverser.
    
        This introduces pull parsing of the XML into the docx export filter.
    
    commit 9afdd0ff112e3c7508de55ef6a32fdb1ea2ef7c9
    Merge: 90daecf e8b111c
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Wed May 22 10:50:36 2013 +0200
    
        Merge branch 'master' into filters-docx_export-linuz
    
        We need filters/libs/libodfreader to continue here.
    
        Conflicts:
        	CMakeLists.txt
    
    commit 90daecf80a332a79077f392cc6bd855d44dd77ad
    Merge: de36e15 fdae7ec
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Mon May 20 21:02:23 2013 +0200
    
        Merge branch 'master' into filters-docx_export-linuz
    
    commit de36e15c89e2dc974c699c2b4a109ca5e365e497
    Merge: f572ff6 a145e5e
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Fri May 10 19:14:03 2013 +0200
    
        Merge branch 'master' into filters-docx_export-linuz
    
    commit f572ff6de034c72956282e7efeab5b3ca74b2377
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sun Apr 21 00:27:06 2013 +0200
    
        Add [Content_Types].xml.
    
        This is the last of the large and important parts of the docx
        standard.  From here it's only details.
    
    commit 41d7cbcd2809d722ddb4372b3994461eacc44b1a
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sat Apr 20 20:21:45 2013 +0200
    
        Always create a text run (w:r) around text data in the docx output.
    
        Previously this was not done when there was no text:span in the odf
        input.
    
    commit a5a277c051cad7474d963728e9bfb557f09ba52e
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sat Apr 20 19:41:09 2013 +0200
    
        Remove old unused code from when the file was copied.
    
    commit 0461e664f95901079488cee7c8961b7c70b0cf6a
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Wed Apr 17 08:36:16 2013 +0200
    
        Explain what's going on.
    
    commit 92740bbe0b885e92e4da8fe296d1da0ebfc8147c
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Wed Apr 17 08:05:26 2013 +0200
    
        Create relationships for word/document.xml.
    
        These are hardcoded for now but should be created through a
        relationship class (OpcRelSet).
    
    commit 17f6042cecaa91c45760b3d21e3b9b6c95f9a548
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Wed Apr 17 00:59:55 2013 +0200
    
        Write the document output to the docx file.
    
    commit 35deeffb5bf46f7cc750327e87014f4fa1e6ee5e
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Wed Apr 17 00:22:44 2013 +0200
    
        Actually create some output.
    
        This starts the creation of the output store with the contents.  With
        this commit the top level relationships for the document is created.
    
    commit 503d79d819f3d84bffc037ba2f87ddcfb07f683b
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Wed Apr 17 00:21:52 2013 +0200
    
        Fix a bug in the output mimetype
    
    commit 62e34fc66cf4ca8afb3d9b2f2867e90ada32c195
    Merge: 91e6c0f 522e510
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Tue Apr 16 21:53:14 2013 +0200
    
        Merge branch 'master' into filters-docx_export-linuz
    
    commit 91e6c0f19b56829d68b3020cb0c92adca0f93a5d
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sat Apr 13 17:10:03 2013 +0200
    
        Add start of some classes to handle OPC relationships
    
    commit 2268105f5d194f1c339c0ac5c501a940bb0cab4b
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sat Apr 13 15:32:05 2013 +0200
    
        Convert the document contents.
    
        This is not yet tested since the infrastructure around it is not in place.
    
    commit c7c3526b2b7293671050d255f6ddfbe19bb5a5ef
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sat Apr 13 11:34:33 2013 +0200
    
        Fix a couple of typos/bugs and initialize the xml writer for the contents.
    
    commit b05f774b65f0b2e6e8f8c7bff47d3d3429f5d5d1
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sat Apr 13 11:11:18 2013 +0200
    
        Split the Docx traverser context out into its own file.
    
    commit b245781974625093662bc03dc1d2ece05b5cb252
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sat Apr 13 10:53:01 2013 +0200
    
        Create the framework for the docx conversion.
    
        Most of this is copied and edited from the epub filter, such as the
        FileCollector and DocxFile (previously EpubFile).
    
        NOTE: FileCollector is only a base class and should really be moved to
              a generic filter library - but such a library doesn't exist yet.
    
    commit 6e61d05ed0088dd399a03809a2725f3a2d6f4292
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Sat Apr 13 00:11:15 2013 +0200
    
        Actually build the docx export filter.
    
    commit c3d2e4fd8c266ea36cc632577f08e8ae8ef8fe5a
    Author: Inge Wallin <inge@lysator.liu.se>
    Date:   Fri Apr 12 22:45:03 2013 +0200
    
        Embryo of the docx export filter.
    
        This is just to have a starting point. :)
    3487282e