我在尝试生成PDF时非常陌生,而且我的任务是尝试使用AbcPdf6重新创建一个PDF生成器。旧系统使用了一个未知库,因此更新很难/不可能,但它从SVG文件中提取了PDF。旧系统能够抓取“文本”节点并修改其内部HTML,然后将它们吐回PDF。
我现在遇到的问题是,使用AbcPdf,我能看到的唯一方法是获取我刚读入的文档的元素是GetText()。但是当我使用它读取我的SVG文档时,所有的ID都被删除了,这使我无法找到我需要修改的ID。有没有人知道为什么?
以下是问题的一个示例:
SVG进入:
<text id="DevelopmentName" transform="matrix(1 0 0 1 25 59.1519)"
font-family="'Verdana-Bold'" width="400" font-size="36">DEVELOPMENT NAME</text>
C#:
Doc pdfDoc = new Doc();
pdfDoc.Read(oContext.Server.MapPath(path));
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(new StringReader(pdfDoc.GetText("SVG")));
此时我应该可以执行xmlDoc.GetElementById(“DevelopmentName”)并让它返回上面的节点,但是它返回null。在检查pdfDoc.GetText(“SVG”)返回的内容时,我看到了这个文本节点:
<text xml:space=\"preserve\" x=\"25\" y=\"59.1519\" font-size=\"36\"
font-family=\"Verdana-Bold\" textLength=\"429.408\" >DEVELOPMENT NAME</text>
我不能为我的生活弄清楚为什么它这样做或者如果有其他方式我应该在这个SVG加载。任何人都可以提供见解吗?