3

我在尝试生成 PDF 方面非常陌生,并且我被赋予了尝试使用 AbcPdf6 重新创建我们的 PDF 生成器之一的任务。旧系统使用未知库,因此难以/不可能进行更新,但它从 SVG 文件中提取了 PDF。旧系统能够抓取“文本”节点并修改它们的内部 HTML,然后将它们吐回 PDF。

我现在遇到的问题是,使用 AbcPdf,我可以看到获取刚刚读入的文档元素的唯一方法是使用 GetText()。但是当我用它来读取我的 SVG 文档时,所有的 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&#160;NAME</text>

我一生都无法弄清楚它为什么要这样做,或者是否有其他方式我应该在这个 SVG 中加载。任何人都可以提供见解吗?

4

0 回答 0