Handle import of documents with self-referring styles.
As a workaround, you can go through the RTF document structure of a single file and utilize Regex to resolve the self-referring styles like this:
string rtf = File.ReadAllText("inputFile.rtf");
rtf = FixSelfReferringStyles(rtf);
Telerik.Windows.Documents.Flow.FormatProviders.Rtf.RtfFormatProvider provider = new Telerik.Windows.Documents.Flow.FormatProviders.Rtf.RtfFormatProvider();
var document = provider.Import(rtf);
...
private static string FixSelfReferringStyles(string rtf)
{
string regexString = @"{\\s([0-9]+)[^}]*\\slink([0-9]+)";
var matches = Regex.Matches(rtf, regexString);
foreach (Match match in matches)
{
if (match.Groups[1].Value == match.Groups[2].Value)
{
var oldValue = match.Groups[0].Value;
var newValue = oldValue.Replace(@" \slink" + match.Groups[1].Value, string.Empty);
rtf = rtf.Replace(oldValue, newValue);
}
}
return rtf;
}
Add support for shapes, and especially for shapes with textual content. In OOXML, shapes are represented by the wps:wsp element, and shapes with textual content by <wps:txbx>, <w:txbxContent>. Such shape can be added to a Word document using the Insert -> Text -> Text Box -> Draw Text Box, or through a shape's context menu -> Add Text. Do not confuse these shapes with Text/Rich Text content controls (see https://feedback.telerik.com/Project/184/Feedback/Details/190057 )
Currently some properties are supported only in their shorthand forms, and others - only in their longhand forms: - 'background' shorthand is not supported. - 'margin' shorthand is not supported.
- 'padding' shorthand is not supported. - 'border' shorthand is supported, but 'border-bottom-color', 'border-bottom-style', 'border-bottom-width', 'border-left-color', 'border-left-style', 'border-left-width', 'border-right-color', 'border-right-style', 'border-right-width', 'border-style', 'border-top-color', 'border-top-style', 'border-top-width', 'border-width' are not supported.
IMPORTANT: This feature is available in .NET Core, .NET 6 and above.
You can add captions to figures, equations, or other objects.
From the Office Open XML File Formats Specification: This element specifies the contents and positioning for captions which can be used to automatically label objects in a WordprocessingML document. A caption is a string that labels an object included in a WordprocessingML document, and typically consists of a string plus a field which numbers this item within a collection of similar objects.
Similar functionality can be achieved using the CustomCodeField:
RadFlowDocumentEditor editor = new RadFlowDocumentEditor(document); using (Stream stream = File.OpenRead("Image1.jpg")) { ImageInline image = editor.InsertImageInline(stream, "jpg"); editor.InsertBookmark("Image", image, image); } editor.InsertBreak(BreakType.LineBreak); editor.InsertText("Figure "); editor.InsertField("SEQ Image", "Update Figure Number");
This feature includes: table of figure, table of tables etc. TOC field contains PageRef fields inside it. To update it, we will need pagination (layout) support and PageRef fields implementation. Also TOC update can be influenced by TC fields presence in the document. Implement export to PDF.
Office Open XML defines a mechanism for the storage of content which is not defined by this Office Open XML Standard, for example extensions developed by future software applications. The stored data could be an image.
The attached sample project below demonstrates a possible workaround for PAGE and NUMPAGES fields when exporting to PDF. The demo shows how to generate document from scratch containing PAGE and NUMPAGES fields and export it to PDF.
When this type of section break is used, the next section should start on the same page instead on the next one.
In WordsProcessing you could set table.Alignment = Telerik.Windows.Documents.Flow.Model.Styles.Alignment.Center; But when the document is exported to PDF, this is not respected.