diff --git a/src/main/java/com/youbenzi/md2/export/PDFDecorator5x.java b/src/main/java/com/youbenzi/md2/export/PDFDecorator5x.java index 936950892fc1a868d1e94e18df37f4ebab2a63da..6298957ab649818662539d9f7ffd554e680d9e93 100644 --- a/src/main/java/com/youbenzi/md2/export/PDFDecorator5x.java +++ b/src/main/java/com/youbenzi/md2/export/PDFDecorator5x.java @@ -23,6 +23,7 @@ import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import com.youbenzi.md2.markdown.Block; import com.youbenzi.md2.markdown.BlockType; +import com.youbenzi.md2.markdown.MDAnalyzer; import com.youbenzi.md2.markdown.ValuePart; import com.youbenzi.md2.util.ImgHelper; import com.youbenzi.md2.util.MD2FileUtil; @@ -167,7 +168,27 @@ public class PDFDecorator5x implements Decorator{ cell.setPaddingLeft(12); cell.setPaddingRight(12); try { - cell.addElement(new Chunk(colDatas.get(j), font)); + String colData = colDatas.get(j); + // 解析 colData 是否含有 其他Markdown元素, 比如图片 + List valueParts = MDAnalyzer.analyzeTextLine(colData); + for (ValuePart valuePart : valueParts) { + BlockType[] types = valuePart.getTypes(); + boolean hasImg = false; + if(types!=null){ + for (BlockType type : types) { + if(type == BlockType.IMG){ + hasImg = true; + break; + } + formatByType(font, type, valuePart.getLevel()); + } + } + if(hasImg){ + cell.addElement(imgParagraph(valuePart)); + }else{ + cell.addElement(new Chunk(valuePart.getValue(), font)); + } + } } catch (Exception e) { cell.addElement(new Chunk("", font)); }