我可以在asp.net中显示byte[]
的PDF文件。
问题是它包含超链接,我想禁用或删除这些超链接事件。
答案 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。我知道这个问题很老,但也许我的回答会让新访客受益。