private static void fixNestedTablesRunDirection(IElement element) {
var table = element as PdfPTable;
if (table == null) {
return;
}
table.RunDirection = PdfWriter.RUN_DIRECTION_RTL;
//added this line
if (null == table.Rows || table.Rows.Count == 0) {
return;
}
//to here
foreach (var row in table.Rows) {
//added this try-catch
try {
var innerCells = row.GetCells();
//also this line
if (null == innerCells || innerCells.Length ==0) {
return;
}
//to here
foreach (var cell in innerCells ) {
cell.RunDirection = PdfWriter.RUN_DIRECTION_RTL;
if (cell.CompositeElements == null) {
continue;
}
foreach (var item in cell.CompositeElements) {
fixNestedTablesRunDirection(item);
}
}
} catch {
}
}
}
if desired, i can send a pull request.
The in-use version: 2.9.2
[NullReferenceException: Object reference not set to an instance of an object.]
PdfRpt.Core.Helper.HtmlToPdf.RtlElementsCollector.fixNestedTablesRunDirection(IElement element) +283
PdfRpt.Core.Helper.HtmlToPdf.RtlElementsCollector.Add(IWritable htmlElement) +614
iTextSharp.tool.xml.pipeline.end.ElementHandlerPipeline.Consume(IWorkerContext context, ProcessObject po) +36
iTextSharp.tool.xml.pipeline.end.ElementHandlerPipeline.Close(IWorkerContext context, Tag t, ProcessObject po) +15
iTextSharp.tool.xml.XMLWorker.EndElement(String tag, String ns) +181
iTextSharp.tool.xml.parser.XMLParser.EndElement() +111
iTextSharp.tool.xml.parser.state.ClosingTagState.Process(Char character) +61
iTextSharp.tool.xml.parser.XMLParser.ParseWithReader(TextReader reader) +247
iTextSharp.tool.xml.parser.XMLParser.Parse(TextReader reader) +5
PdfRpt.Core.Helper.HtmlToPdf.XmlWorkerHelper.processHtml(IElementHandler elementsHandler) +1281
PdfRpt.Core.Helper.HtmlToPdf.XmlWorkerHelper.RenderHtml() +112
PdfRpt.ColumnsItemsTemplates.XHtmlField.RenderingCell(CellAttributes attributes) +183
PdfRpt.Core.Helper.TableCellDefinitionsExt.runOnItemsTemplate(CellAttributes pdfRptTableCellDefinition, IColumnItemsTemplate defaultItemTemplate) +20
PdfRpt.Core.Helper.TableCellDefinitionsExt.CreateSafePdfPCell(CellAttributes pdfRptTableCellDefinition, IColumnItemsTemplate defaultItemTemplate) +34
PdfRpt.Core.PdfTable.TableCellHelper.AddGeneralCell(BaseColor backgroundColor, BaseColor foreColor, Object rawData, Int32 columnNumber, RowType pdfRowType, CellType pdfCellType, IList`1 rowValues, HorizontalAlignment horizontalAlignment, DocumentFontStyle pdfFontStyle, Int32 rotation, Boolean setItemTemplate, Int32 colSpan) +1145
PdfRpt.Core.PdfTable.TableCellHelper.AddRowCell(IList`1 rowValues, BaseColor backgroundColor, BaseColor foreColor, Int32 columnNumber) +325
PdfRpt.Core.PdfTable.RowsManager.addTableRow(IList`1 rowData, BaseColor backgroundColor, BaseColor foreColor) +129
PdfRpt.Core.PdfTable.RowsManager.addSingleRow(IList`1 row) +243
PdfRpt.Core.PdfTable.RowsManager.printNormalTable() +129
PdfRpt.Core.PdfTable.RowsManager.AddMainTableRows() +255
PdfRpt.Core.PdfTable.RenderMainTable.AddToDocument() +24
PdfRpt.PdfReportDocument.addMainTable() +88
PdfRpt.PdfReportDocument.createPdf() +344
PdfRpt.<>c__DisplayClass38_0.<runInReleaseMode>b__0(Document pdfDisposable) +24
PdfRpt.Core.Helper.Guard.SafeUsingBlock(TDisposable disposable, Action`1 action, Func`2 unwrapper) +54