c# - ABCpdf转换html anchor 跳转到同一个PDF中的另一个页面

标签 c# asp.net pdf abcpdf

我正在使用 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/

相关文章:

c# - 通过公共(public)属性访问私有(private)变量

javascript - 将 SVG 导出为 PDF,且组/图层完好无损

python - 使用 ScraperWiki 抓取 PDF 并收到未定义错误

c# - HttpUtility.ParseQueryString() 总是将特殊字符编码为 un​​icode

c# - 绑定(bind) Alpha Android

c# - 如何在多个环境中使用 URL 路由?

c# - 通过 url 性质控制内容的显示 - MVC/HTML/ASP/JS

javascript - 在 Google Chrome 中正确打印 PDF

c# - 如何使用 Microsoft 的 EWS API 从联系人获取/设置扩展属性?

c# - 在 WPF 应用程序中旋转 HelixViewport3D 中的对象