From a99adb0af4099520d5c02ae3e31a6526f1a5f6e9 Mon Sep 17 00:00:00 2001 From: dev1 <> Date: Fri, 28 Mar 2025 17:02:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E4=B8=AD=E8=BF=98=E6=9C=89=E5=9B=BE=E7=89=87=E6=97=B6=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E7=9A=84=E6=98=AF=E9=93=BE=E6=8E=A5=EF=BC=8C=E8=80=8C?= =?UTF-8?q?=E4=B8=8D=E6=98=AF=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../youbenzi/md2/export/PDFDecorator5x.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/youbenzi/md2/export/PDFDecorator5x.java b/src/main/java/com/youbenzi/md2/export/PDFDecorator5x.java index 9369508..6298957 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)); } -- Gitee