Wrong exported paragraph indentation when the paragraph is in a table cell.
Workaround: Iterate table`s paragraphs and set the negative indentations to zero:
IEnumerable<Table> tables = this.document.EnumerateChildrenOfType<Table>();
foreach (Table table in tables)
{
IEnumerable<Paragraph> paragraphs = table.EnumerateChildrenOfType<Paragraph>();
foreach (Paragraph paragraph in paragraphs)
{
if (paragraph.Indentation.LeftIndent < 0)
{
paragraph.Indentation.LeftIndent = 0;
}
}
}
Revisions in WordprocessingML provide a mechanism for storing information about the evolution of the
document (i.e. the set of modifications made to a document by one or more authors).
foreach (ImageInline image in document.EnumerateChildrenOfType<ImageInline>().ToList())
{
UriImageSource uriImageSource = (UriImageSource)image.Image.ImageSource;
if (uriImageSource != null && !IsValid(uriImageSource.Uri.OriginalString))
{
image.Paragraph.Inlines.Remove(image);
}
}
private static bool IsValid(string uri)
{
try
{
Path.GetExtension(uri);
}
catch (ArgumentException)
{
return false;
}
return true;
}
<w:pict ...>
<v:shape ...>
<v:fill opacity="39151f"/>
<v:path .../>
<w10:wrap anchorx="page" anchory="page"/>
</v:shape>
</w:pict>
Wrongly imported/exported table cells from nested tables (see the picture below).
Tables should ignore fixed proffered width with the value of 0, this is the default behavior in Word as well.
Workaround (when converting Flow to PDF documents):
foreach (var item in tables)
{
if (item.PreferredWidth.Type == Telerik.Windows.Documents.Flow.Model.Styles.TableWidthUnitType.Fixed &&
item.PreferredWidth.Value == 0)
{
item.PreferredWidth = new Telerik.Windows.Documents.Flow.Model.Styles.TableWidthUnit(Telerik.Windows.Documents.Flow.Model.Styles.TableWidthUnitType.Percent, 100);
}
}