Changelog History
Page 5
-
v3.3.7 Changes
๐ OpenDoPE: handle w15:databinding; FlatOPC processing fixes; component handling fixes
0๏ธโฃ PDF Converter (commercial, not export-FO) defaults to https (port 443)
IBM JAXB detection improvements
๐ various other fixes
-
v3.3.6 Changes
@XmlRootElement on webextension and taskpanes
๐ OpenDoPE performance enhancements: pre-calculate repeat counts and simple conditions for substantial time saving in ODH step
JAXB representation of c14 (http://schemas.microsoft.com/office/drawing/2007/8/2/chart) from odrawxml/chart20070802.xsd
OpenDoPE: bind date sdt
JaxbXmlPart new method transform(Templates xslt, Map transformParameters, Result result)
xlsx4j
Chartsheetpart
-
v3.3.5 Changes
๐ Support w16cid (commentsIds); see https://msdn.microsoft.com/en-us/library/mt791826(v=office.12).aspx โก๏ธ (without this, document created in Word 2016 with recent updates, then saved by docx4j, couldn't be re-opened in Word)
๐ Support w15symex (long hex replacement for symbol char); see https://msdn.microsoft.com/en-us/library/mt459331(v=office.12).aspx
โช IBM Unmarshaller (usually used in WebSphere v7+) workaround for "errors limit exceeded" (same as Oracle JAXB)
-
v3.3.4 Changes
BinaryPartAbstractImage: ImageMagick executable name fetched from Docx4jProperties.getProperty("org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage.ImageMagickExecutable", "imconvert") ๐ and workaround for file URL issue on Windows
Parent handling: convenience for user SdtPr set parent (same for SdtContent, now an interface);
๐ mc-preprocessor.xslt: more Google Docs fixes
๐ samples/BookmarksDuplicateCheck: Check also the ends; option to remediate (ie remove broken ones)
๐ OpenDoPE fixes/enhancements:
234 convert #STRING to NodeList
235 complex XPaths
count-type conditions in repeats: perform enhancement in non-oda case
๐ other bugfixes:
175 HTML output: conversion to nested or
164 Reset error counter, this time for IBM's JAXB (in Websphere inc 8.5.5.11)
xlsx4j
๐ fix to support Apple iCloud Numbers (set reference attribute on cell)
loading .pptx and .xlsx files from InputStream
-
v3.3.3 Changes
๐ Minor modifications to support use on Android; see https://github.com/plutext/AndroidDocxToHtml
๐ Several bugfixes, including:
- ๐ Handle non-English speaking locales in XmlPart.cachedXPathGetString (used in OpenDoPE content control data binding)
- Regression in xpathtracker histgram namespace handling (issue #230)
xlsx4j
Convenience method for cell to access its WorksheetPart; WorksheetPart to get WorkbookPart.
Cell content extraction - formatted (using modified Apache POI code)
-
v3.3.2 Changes
JAXBXmlPart pipe methods, which enable you to process using StAX or SAX ๐ (avoiding JAXB overhead); see VariableReplaceStAX for an example
๐ JAXB content model for web extensions
๐ Various bugfixes, including:
- ๐ fix for OpenDoPE complex conditions (broken by 3.3.1)
- ๐ fix for IllegalArgumentException: local part cannot be "null" when creating a QName
-
v3.3.1 Changes
Contents lists are now of type ArrayListWml, in which parent is automatically set correctly
๐ฆ org.docx4j.anon: new package which converts a docx to lorem ipsum latin, and removes ๐ other sensitive info, so the docx can safely be shared eg for tech support.
For this to work, you'll need to add a new dependency: http://search.maven.org/#artifactdetails%7Ccom.thedeanda%7Clorem%7C2.0%7Cjar๐ OpenDoPE: Two separate performance optimizations which substantially speed up large XML binding jobs. By traversing the XML data, manually calculate and cache XPaths (tested with 500,000 entries). Our strategy is to try the cache first (if enabled), then if there is a cache miss, use org.apache.xpath.CachedXPathAPI (the second optimization - CachedXPathAPI is quicker than default javax.xml.xpath.XPath implementations)
Dedicated parts for w15 CommentsExtended and People
๐ Support anchor attributes wp14:anchorId and wp14:editId; children wp14:sizeRelH, wp14:sizeRelV
๐ Support w:bdo and w:dir from ECMA 376 4ed
โช workaround for MOXy issue triggering pre-processing from binder: http://stackoverflow.com/questions/37225221/moxy-validationevents-triggered-by-unmarshaller-but-not-binder
0๏ธโฃ JAXB event handler: make shouldContinue false by default, mc Content pre-processing works in MOXy (for unmarshalling anyway, as distinct from binder)
unmarshall input stream: do mc pre-processing if necessary
๐ New property docx4j.jaxb.marshal.canonicalize: 0๏ธโฃ Whether to canonicalize during marshalling (defaults to false); this is for aesthetic purposes: the Sun/Oracle JAXB reference implementation writes a lot of unnecessary namespaces (each one in the JAXB context?).
Dependency Changes
โ Added com.thedeanda:lorem:jar:2.0; only required if you want to use org.docx4j.anon (see above)
-
v3.3.0 Changes
๐ Release date
21 April 2016
๐ Contributors to this release
https://github.com/MaciejDobrowolski
https://github.com/rasmusfaber
https://github.com/tfcporciuncula
Jason Harrop
Notable Changes - PDF
๐ XSL FO based PDF output moved to new/separate project docx4j-export-fo; default PDF converter ๐ changed from XSL FO + Apache FOP to Plutext's PDF Converter. The instance at 0๏ธโฃ converter-eval.plutext.com is used by default, but you can (and should!) alter it to your own instance, by setting docx4j property, eg:
com.plutext.converter.URL=http://converter-eval.plutext.com:80/v1/00000000-0000-0000-0000-000000000000/convert
๐ See further http://www.plutext.com/m/index.php/products-docx-to-pdf.html
โช If you want to use the existing XSL FO + Apache FOP PDF Conversion, just add docx4j-export-fo (+ deps) to your classpath. These jars are in the zip file, in dir optional/export-fo docx4j will detect that they are present, and revert to the FO based conversion.
Notable Changes - Other
Document protection (read only, track revisions etc) for docx/pptx/xlsx, with or without password. ๐ NB: Digital signature support is in Enterprise Ed. See further https://github.com/plutext/docx4j/blob/VERSION_3_3_0/src/main/java/org/docx4j/openpackaging/packages/ProtectionSettings.java and ProtectDocument.java
โก๏ธ docx table of contents (TOC) generation and update migrated from Enterpise Ed. See org.docx4j.toc and the Toc* samples. The layout model in Plutext's PDF Converter (see above) will be used to calculate page numbers, unless docx4j-export-fo (+ deps) is on your path
๐ Workaround for JAXB behaviour change (for recent releases of JAXB, mcPreprocessor only worked the first 10 times); ๐ see/subscribe to https://github.com/gf-metro/jaxb/issues/22
๐ Xalan <= 2.7.2 can't handle astral characters: see/vote for https://issues.apache.org/jira/browse/XALANJ-2419 So: โช (i) workaround this when serializing XML โช (ii) optionally workaround this when we use Xalan for XSLT, controlled by docx4j.properties docx4j.xalan.XALANJ-2419.workaround=true|false ๐ [Comment: When will Xalan make a release which fixes this issue? This code will be removed if they do.]
โ RunFontSelector: basic support for Unicode astral characters
๐ Performance improvement: property docx4j.openpackaging.parts.JaxbXmlPartXPathAware.binder.eager.* allows us to avoid unmarshalling via DOM
๐ Handle McIgnorableNamespaces within NamespacePrefixMapper classes
XJC generated code for word/2010/wordprocessingDrawing
๐ฆ Repackage portions of org.apache.poi (mainly poifs) as org.docx4j.org.apache.poi ๐ (and remove dependency on poi-scratchpad; remove Doc import since poi.hwpf dep is now absent)
๐ Repackage santuario c14n (org.apache.xml.security) as org.docx4j.org.apache.xml.security. ๐ [Comment: Useful for c14n, but not essential to docx4j, so may yet be removed. Opinions welcome]
๐ Avoid adding virtual styles to docx representing DocDefaults; this is now internal to StyleTree
Dependency Changes (relative to 3.2.x)
โ Removed: jaxb-xmldsig-core, poi-scratchpad, commons-lang
โ Added:
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency>
๐ Moved FOP/batik jars to separate project docx4j-export-fo
โฌ๏ธ Bumped most deps to most recent available (except MOXy, where bumped to most recent compiled for Java 6)
-
v3.2.2 Changes
guard against XML Enternal Entity Injection attacks for some additional cases (the main cases were addressed in v3.2.0)
๐ฒ tune down certain logging
temp embedded font handling improvements (sgrachov, jharrop)
PDF (FO via XSL): insert blank page to honour sectPr/w:type oddPage|evenPage set on the following section
databinding/OpenDoPE:
๐ support w14 checkbox, w15:repeatingSection
0๏ธโฃ property docx4j.model.datastorage.BindingHandler.Implementation (which defaults to BindingTraverserXSLT)
๐ ODH minor performance optimization
(X)HTML output: use ul|ol list items, if feature PP_HTML_COLLECT_LISTS is set and SdtToListSdtTagHandler is registered.
xlsx4j
Variable replacement in xlsx4j
pptx4j
Ensure VML namespace is declared on key parts
-
v3.2.1 Changes
๐ MailMergerWithNext (baudinseb): supports NEXT, useful for mailing labels
OpenDoPE: bookmark ID management
pkg Load classes: getSourceRelationships().add(r) for additional source rel
๐ Improvements to diffx (still not production ready though)
PresentationML/FontDataPart
๐ฆ Expose Base.partName, so MergeDocx v1.6.6 can use this docx4j