Potrzebuję wyodrębnić komórki tabeli jako obrazy. Komórki mogą zawierać mieszaną zawartość (Text + Image), którą muszę scalić w jeden obraz. Potrafię uzyskać podstawowy tekst, ale nie mam pojęcia, jak uzyskać obraz + tekst. Nie jesteś pewien, czy Apace POI mogłoby pomóc.Wyodrębnianie komórki tabeli MS Word jako obrazu?
Czy ktoś zrobił coś takiego wcześniej?
public static void readTablesDataInDocx(XWPFDocument doc) {
int tableIdx = 1;
int rowIdx = 1;
int colIdx = 1;
List table = doc.getTables();
System.out.println("==========No Of Tables in Document=============================================" + table.size());
for (int k = 0; k < table.size(); k++) {
XWPFTable xwpfTable = (XWPFTable) table.get(k);
System.out.println("================table -" + tableIdx + "===Data==");
rowIdx = 1;
List row = xwpfTable.getRows();
for (int j = 0; j < row.size(); j++) {
XWPFTableRow xwpfTableRow = (XWPFTableRow) row.get(j);
System.out.println("Row -" + rowIdx);
colIdx = 1;
List cell = xwpfTableRow.getTableCells();
for (int i = 0; i < cell.size(); i++) {
XWPFTableCell xwpfTableCell = (XWPFTableCell) cell.get(i);
if (xwpfTableCell != null) {
System.out.print("\t" + colIdx + "- column value: " + xwpfTableCell.getText());
}
colIdx++;
}
System.out.println("");
rowIdx++;
}
tableIdx++;
System.out.println("");
}
}
Teraz jestem w stanie uzyskać tekst przy pomocy tej metody
System.out.print("\t" + colIdx + "- column value: " + xwpfTableCell.getText());
Jak mogę uzyskać obraz jeśli komórka zawiera również jeden?
Spróbuj się akapity w komórce 'getParagraphs()', następnie fo r każdy akapit, pobierz przebiegi 'getRuns()'. Zwraca to [XWPFRun] (https://poi.apache.org/apidocs/org/apache/poi/xwpf/usermodel/XWPFRun.html). Jest to metoda, która pozwala na uzyskanie obrazów: 'getEmbeddedPictures()' – iggymoran
@iggymoran List para = xwpfTableCell.getParagraphs(); if (para! = Null) { XWPFRun xWPFRun = (XWPFRun) para.get (i); dla (int l = 0; l
Chcesz wypróbować coś takiego: 'para.getRuns()', sprawdź, czy nie są one zerowe, a następnie wywołaj 'run.getEmbeddedPictures()'. – iggymoran