代码之家  ›  专栏  ›  技术社区  ›  Nakul Chaudhary

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

  •  2
  • Nakul Chaudhary  · 技术社区  · 17 年前

    我可以显示来自 byte[] 在ASP.NET。

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

    2 回复  |  直到 17 年前
        1
  •  1
  •   Kirtan    17 年前

    你可以像图书馆一样 this one 打开和修改PDF文件,并将每个超链接对象转换为简单文本。

        2
  •  1
  •   Bobrovsky Jesse DeGuire    13 年前

    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本身没有定义链接。例如,具有特定设置的AdobeReader就可以做到这一点。

    另外,我知道这个问题很古老,但也许我的回答会对新来的游客有好处。