我正在使用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();
}

有什么想法可以使 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/

10-13 09:27