getComponents static method
Implementation
static List<Widget> getComponents(GetComponentsParams params) {
List<Widget> pageWidgets = [];
if (params.component.runtimeType.toString() == "Paragraph") {
List<MsTextSpan> textSpans = params.component.textSpans;
List<MsImage> images = params.component.images;
List<InlineSpan> paragraphWidget = [];
for (int k = 0; k < (textSpans.length + images.length); k++) {
MsTextSpan? textSpan = textSpans.firstWhereOrNull((span) {
return span.pSeqNo == k;
});
MsImage? image = images.firstWhereOrNull((img) {
return img.pSeqNo == k;
});
if (textSpan != null) {
paragraphWidget.add(getTextSpan(textSpan, params.stylesList));
}
if (image != null) {
paragraphWidget.add(WidgetSpan(
child: Image.file(
File(image.imagePath),
width: image.cx / 12700,
height: image.cy / 12700,
)));
}
}
pageWidgets.addAll(getRichText(params.component, paragraphWidget, params.stylesList, params.wordDocument));
} else if (params.component.runtimeType.toString() == "MsTable") {
MsTable msTable = params.component;
String tableStyle = getTableStyle(msTable, params.stylesList);
String htmlString = "<html><body>";
htmlString = "$htmlString<table style='$tableStyle ; border-collapse: collapse;'>";
for (int k = 0; k < msTable.rows.length; k++) {
String rowStyle = getRowStyle(msTable, params.stylesList, msTable.rows[k].isFirstRow, msTable.rows[k].isLastRow);
htmlString = "$htmlString<tr style='$rowStyle ; border-collapse: collapse;'>";
String colSpan = "0";
if (msTable.rows[k].gridSpan != null) {
colSpan = msTable.rows[k].gridSpan.toString();
}
for (int l = 0; l < msTable.rows[k].cells.length; l++) {
String cellStyle = getCellStyle(msTable, params.stylesList, msTable.rows[k].isFirstRow, msTable.rows[k].isLastRow,
msTable.rows[k].isFirstCol, msTable.rows[k].isLastCol);
htmlString = "$htmlString<td style='$cellStyle ; border-collapse: collapse;padding: 5px;' colSpan=$colSpan>";
htmlString = htmlString + msTable.rows[k].cells[l].cellText;
htmlString = "$htmlString</td>";
}
htmlString = "$htmlString</tr>";
}
htmlString = "$htmlString</table>";
htmlString = '$htmlString</body></html>';
pageWidgets.add(HtmlWidget(htmlString));
}
return pageWidgets;
}