There are multiple tags and attributes in the Open XML model which define the formatting of the complex script characters and are not implemented in the WordsProcessing model. Such tags are: szCs: Complex script font size; bCs: Complex script bold; iCs: Complex script italic; Attributes: cstheme: Complex Script Theme Font; The cs (Complex Script Font) attribute is implemented in the export, but it is not preserved in the model on import.
When text content (text in paragraph, text in span) in HTML contains line break (\r, \n, or \r\n), it should be imported as space. Instead, the new lines are currently removed. For example, <p>first\nsecond</p> (line feed between the words) is imported as run with content "firstsecond" instead of "first second".
Applying border="1" to a table element, should set table cells borders to the same value. Currently, only the table borders are set.
When the RowSpan value is bigger than the available rows, a ArgumentOutOfRangeException is thrown while exporting the document. Workaround: Change the value of RowSpan after importing: foreach (var cell in document.EnumerateChildrenOfType<TableCell>()) { while (cell.RowSpan > cell.Row.Table.Rows.Count) { cell.RowSpan--; } }
When a table cell has a smaller width set and inside there is a paragraph with larger indent set or bullets, the table does not expand in order to show the text and the text becomes invisible.
Applying LockAspectRatio to an image is not respected after opening the document in MS Word - the LockAspectRatio checkbox in the is not checked. An additional XML element (cNvGraphicFramePr) should be added so the UI can respect it.
Allow to password-protect a document, so that it cannot be shown (read) without the password. Also, enable opening encrypted documents.
Run's default constructor creates it with Text = null. When document with such run is exported to PDF, NullReferenceException is thrown. Workaround: Create the Run and immediately set its Text property to string.Emtpy. Available in LIB Version 2018.1.423.
Currently there is no easy way to modify the properties of bookmarks and fields in the document. Think of providing API for easier manipulation. For example, following is one of the easiest approached to change the target of hyperlinks: var hyperlinkStarts = document .EnumerateChildrenOfType<FieldCharacter>() .Where(fc => fc.FieldCharacterType == FieldCharacterType.Start && fc.FieldInfo.Field is Hyperlink); foreach (var fieldCharacter in hyperlinkStarts) { int indexOfCodeRun = fieldCharacter.Paragraph.Inlines.IndexOf(fieldCharacter) + 1; Run hyperlinkCode = (Run)fieldCharacter.Paragraph.Inlines[indexOfCodeRun]; string oldUri = ((Hyperlink)fieldCharacter.FieldInfo.Field).Uri; string newUri = "mailto:mail@mail.com"; hyperlinkCode.Text = hyperlinkCode.Text.Replace($"\"{oldUri}\"", $"\"{newUri}\""); fieldCharacter.FieldInfo.UpdateField(); }
If the background color is applied to <tr> element then it is not imported. Workaround: The background color may be applied to the cells (<td> elements) in the desired row and this should have the same effect.
Currently, the text is exported but the strikethrough line is not drawn in the exported PDF.
Add support for exporting hyperlinks which are not valid URIs to PDF. Currently such hyperlink URIs are not exported to the PDF document. Example of such hyperlink is "mailto:abc%20abc-abc-abc%20%3cabc@abc.com%3e" (mailto:abc abc-abc-abc <abc@abc.com>), but there could be more types. Currently the internal API relies on creating instance of the system Uri class, which is not possible in this case.
When a break element is defined in the middle of a Run, DocxFormatProvider imports it at the end of the same run. For example, the following content: <w:r> <w:t>This is</w:t> <w:br/> <w:t xml:space="preserve"> a simple sentence.</w:t> </w:r> Results in "This is a simple sentence " + break element after it.
Add support for setting and exporting document metadata, like Title, Author and similar.
The issue is reproducible only in a specific setup with a specific document. It is related to the calculations of the line spacing when the table row should be split between two pages.
Workaround: Change the line spacing:
foreach (var paragraph in this.document.EnumerateChildrenOfType<Paragraph>())
{
paragraph.Properties.LineSpacingType.LocalValue = HeightType.Auto;
paragraph.Properties.LineSpacing.LocalValue = 1;
}
The exception is thrown because we try to export a tblGrid element, but currently we do not support this: https://feedback.telerik.com/Project/184/Feedback/Details/190082-wordsprocessing-export-tblgrid-table-grid-property-for-table-elements
Add support for importing the text values of the input element. They could be imported as a simple text to preserve the content.
The exception is thrown because the AltChunk element is added for import, but we currently do not have implementation for importing of AltChunk elements: https://feedback.telerik.com/Project/184/Feedback/Details/190095-wordsprocessing-add-support-for-altchunk-element
The theme xml element (root of the theme.xml part) has a name property which is optional. However, WordsProcessing throws an exception when it doesn't find a name.