我正在使用 ABCpdf 动态生成一个 PDF,其中包含一个目录,该目录将链接到同一 PDF 中的其他页面。问题是 HTML 中 anchor 标记的路径更改为临时文件的绝对路径。
例如,ABCpdf 将呈现链接的 href:
<a href="#elementId">Link</a>
在 PDF 中为:file:///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();
}
有什么想法可以让 anchor 链接正确呈现以便单击它会跳转到另一个页面吗?
最佳答案
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>
您需要使用具有指定名称的 anchor 标记,以便 ABCpdf 使链接跳转到同一 PDF 中的另一页。
关于c# - ABCpdf转换html anchor 跳转到同一个PDF中的另一个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2142043/