Ich muss Tabellenzellen als Bilder extrahieren. Die Zellen können gemischten Inhalt (Text + Bild) enthalten, den ich in ein einzelnes Bild zusammenführen muss. Ich bin in der Lage, den Kerntext zu bekommen, aber ich habe keine Ahnung, ein Bild + Text zu bekommen. Ich bin mir nicht sicher, ob der APO-POI helfen würde.Word-Tabellenzelle als Bild extrahieren?
Hat jemand so etwas früher gemacht?
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("");
}
}
Jetzt bin ich in der Lage Text mit Hilfe dieser Methode zu erhalten
System.out.print("\t" + colIdx + "- column value: " + xwpfTableCell.getText());
Wie kann ich das Bild, wenn eine Zelle ein enthält auch?
Versuchen sie die Absätze in der Zelle 'getParagraphs bekommen()', dann fo r jeden Absatz, erhalten Sie die Läufe 'getRuns()'. Dies liefert einen [XWPFRun] (https://poi.apache.org/apidocs/org/apache/poi/xwpf/usermodel/XWPFRun.html). Dies hat eine Methode, mit der Sie Bilder erhalten können: 'getEmbeddedPictures()' – iggymoran
@iggymoran Liste para = xwpfTableCell.getParagraphs(); if (para! = Null) { XWPFRun xWPFRun = (XWPFRun) para.get (i); für (int l = 0; l
Sie möchten etwas wie versuchen: 'para.getRuns()', überprüfen Sie, dass sie nicht null sind, und rufen Sie dann 'run.getEmbeddedPictures()'. – iggymoran