我使用 ABCpdf 动态生成 PDF,其中包含一个目录,该目录将链接到同一 PDF 中的其他页面。问题是 HTML 中锚标记的路径更改为临时文件的绝对路径。
例如,ABCpdf 将呈现链接的 href:
<a href="#elementId">Link</a>
在 PDF 中为:文件:///C:/Users/Aaron/AppData/Local/Temp/ABCpdf/pdfCMMYPSF.htm#elementId
这就是我生成 PDF 的方式:
Doc pdf = new Doc();
pdf.HtmlOptions.AddLinks = true;
pdf.Rect.Rectangle = new System.Drawing.Rectangle(20, 80, 572, 702);
int id = pdf.AddImageHtml(pdfHTML, true, pdf.HtmlOptions.BrowserWidth, true);
while (pdf.Chainable(id))
{
pdf.Page = pdf.AddPage();
id = pdf.AddImageToChain(id);
}
pdf.HtmlOptions.LinkPages();
for (int i = 0; i < pdf.PageCount; i++)
{
pdf.PageNumber = i;
pdf.Flatten();
}
有什么想法可以让锚链接正确呈现,以便单击它会跳转到另一个页面吗?
Websupergoo 回复了我,我能够从他们提供的示例项目中调试我的问题。我的问题的解决方案非常简单,我将在这里发布答案,以防其他人遇到同样的问题:
我的 HTML 设置如下:
<a href="#elementId">Link to another page</a>
<div id="elementId">A div that's on another page</div>
我只需要将其更改为:
<a href="#elementId">Link to another page</a>
<div><a name="elementId">A div that's on another page</a></div>
您需要使用指定名称的锚标记,以便 ABCpdf 使链接跳转到同一 PDF 中的另一个页面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)