如何从pdf文件中删除或禁用超链接事件?

时间:2009-04-23 07:34:09

标签: asp.net pdf

我可以在asp.net中显示byte[]的PDF文件。

问题是它包含超链接,我想禁用或删除这些超链接事件。

2 个答案:

答案 0 :(得分:1)

您可以使用this one等库来打开和修改PDF文件,并将每个超链接对象转换为简单文本。

答案 1 :(得分:1)

Docotic.Pdf,我参与的库,可用于查找PDF中的超链接并将其删除。

以下是完成此操作的示例代码:

public static void RemoveHyperlinks(string inputFile, string outputFile)
{
    using (PdfDocument doc = new PdfDocument(inputFile))
    {
        foreach (PdfPage page in doc.Pages)
        {
            for (int i = 0; i < page.Widgets.Count; i++)
            {
                PdfWidget widget = page.Widgets[i];
                PdfActionArea actionArea = widget as PdfActionArea;
                if (actionArea != null)
                {
                    PdfUriAction linkAction = actionArea.Action as PdfUriAction;
                    if (linkAction != null)
                    {
                        page.Widgets.RemoveAt(i);
                        i--;
                    }
                }
            }
        }

        doc.Save(outputFile);
        System.Diagnostics.Process.Start(outputFile);
    }
}

请注意,某些观看者可以检测文本中的超链接,并且仍然将其显示为可点击区域,即使PDF本身没有定义链接也是如此。例如,具有某些设置的Adobe Reader可以做到这一点。

P.S。我知道这个问题很老,但也许我的回答会让新访客受益。