New to Telerik Document Processing? Download free 30-day trial

Saving DOCX to PDF Removes Table Borders

Environment

Version Product Author
2024.1.124 RadWordsProcessing Desislava Yordanova

Description

Table borders are removed when saving a DOCX file to PDF using the PdfFormatProvider in RadWordsProcessing.

The table in the DOCX file has standard Word border styles applied to all borders, including dotted lines. However, when using the PdfFormatProvider to save the document as PDF, the borders become invisible and are not displayed in the resulting PDF file. Even when setting the table border width to 3pt, the borders still do not appear in the PDF file.

Table Borders in DOCX Missing Table Borders in exported PDF
DOCX with table borders PDF without table borders

Solution

Currently, there is a limitation in RadWordsProcessing where the PdfFormatProvider does not support all types of border styles. However, there is a workaround that can be used to apply a single border to the table elements in the RadFlowDocument before exporting it to PDF.

Here is an example in C# that demonstrates the workaround:

FileInfo templateItem = new FileInfo(@"test_table_with_dottedborders.docx");
DocxFormatProvider docxFormatProvider = new DocxFormatProvider();
PdfFormatProvider pdfFormatProvider = new PdfFormatProvider();

RadFlowDocument wordDocument;

using (FileStream fileStream = templateItem.OpenRead())
{
    wordDocument = docxFormatProvider.Import(fileStream);
}

foreach (Section s in wordDocument.Sections)
{ 
    foreach (var b in s.Blocks)
    {
        Table t = b as Table;
        if (t != null)
        {
            t.Borders = new TableBorders(new Border(1, BorderStyle.Single, new ThemableColor(Colors.Black)));
        }
    }
}

string pdfSavePath = @"test_savedbyPdfFormatProvider.pdf";
File.Delete(pdfSavePath);

using (FileStream outputStreamPdf = new FileStream(pdfSavePath, FileMode.OpenOrCreate))
{
    pdfFormatProvider.Export(wordDocument, outputStreamPdf);
}

PDF with table borders

Please note that this workaround applies a single border with a width of 1pt and a black color to all table elements in the RadFlowDocument. You can modify the border properties as needed.

In this article