.net NPOI:迭代docx的所有书签

ie3xauqp  于 2023-11-20  发布在  .NET
关注(0)|答案(1)|浏览(256)

我需要你的帮助,找到一种方法来浏览所有的书签在一个docx与NPOI在C# .NET 4.7。
目前我是这样做的,但我不能达到书签,例如,将在一个表。

foreach (XWPFParagraph p in doc.Paragraphs)
{
    foreach (CT_Bookmark b in p.GetCTP().GetBookmarkStartList())
    {
        XWPFRun r = p.CreateRun();
        r.AddPicture(picData, (int)PictureType.PNG, "img", Units.ToEMU(50), Units.ToEMU(50));
    }
}

字符串
我真的很想浏览所有这些,不管它们在文档中的位置(我需要在那里放一张图片)。
NPOI也许不是最好的解决方案?但它必须运行而不安装Office.我在.NET 4.7强加.
先谢谢你了,

tjjdgumg

tjjdgumg1#

只是你没有找到具体的插入位置

foreach (XWPFTable p in doc.Tables)
            {
                foreach (XWPFTableRow b in p.Rows)
                {
                    foreach (XWPFTableCell c in b.GetTableCells())
                    {
                        foreach (var aa in c.Paragraphs)
                        {
                            foreach (var item in aa.GetCTP().GetBookmarkStartList())
                            {
                                if (item.name == "SHR" || item.name == "CHCSR" || item.name == "CHFSR" || item.name == "QDCSR" || item.name == "QDFSR")
                                {
                                    XWPFRun r = aa.CreateRun();
                                    using (FileStream picFile = new FileStream("C:\\Users\\ztgeo\\Desktop\\Snap1.jpg", FileMode.Open, FileAccess.Read))
                                    {
                                        r.AddPicture(picFile, (int)PictureType.PNG, "image", 100 * 12857, 15 * 12857);
                                    }
                                    //r.AddPicture(picData, (int)PictureType.PNG, "img", Units.ToEMU(50), Units.ToEMU(50));
                                }
                            }
                        }
                    }
                }
            }

字符串

相关问题