从 Html 转换后删除超链接

在本教程中,我们将引导您完成使用 Aspose.PDF for .NET 从 HTML 文件生成的 PDF 文件中删除超链接的过程。超链接是可以重定向到其他页面或网站的可点击链接。通过执行以下步骤,您将能够从生成的 PDF 文件中删除超链接。

先决条件

在开始之前,请确保满足以下先决条件:

  • C# 编程语言的基础知识。
  • 您的系统上安装了适用于 .NET 的 Aspose.PDF 库。
  • 开发环境,例如 Visual Studio。

第 1 步:加载 HTML 文件并删除超链接

在此步骤中,我们将加载 HTML 文件并从生成的 PDF 文档中删除超链接。使用以下代码:

//文档目录的路径。
string dataDir = "YOUR DOCUMENTS DIRECTORY";

//使用 HTML 加载选项加载 HTML 文件
Document doc = new Document(dataDir + "SampleHtmlFile.html", new HtmlLoadOptions());

//浏览文档第一页的注释
foreach(Annotation a in doc.Pages[1].Annotations)
{
     //检查注释是否是链接
     if (a.AnnotationType == AnnotationType.Link)
     {
         LinkAnnotation the = (LinkAnnotation)a;
        
         //检查操作是否属于 GoToURIAction 类型
         if (the.Action is GoToURIAction)
         {
             GoToURIAction gta = (GoToURIAction)the.Action;
             gta.URI = "";
            
             //使用文本片段吸收器查找匹配的文本片段
             TextFragmentAbsorber tfa = new TextFragmentAbsorber();
             tfa.TextSearchOptions = new TextSearchOptions(a.Rect);
             doc.Pages[a.PageIndex].Accept(tfa);
            
             //循环遍历匹配的文本片段并从超链接中删除属性
             foreach(TextFragment tf in tfa.TextFragments)
             {
                 tf.TextState.Underline = false;
                 tf.TextState.ForegroundColor = Color.Black;
             }
         }
        
         //从页面中删除注释
         doc.Pages[a.PageIndex].Annotations.Delete(a);
     }
}

一定要更换"YOUR DOCUMENTS DIRECTORY"与 HTML 文件所在的实际目录。

第 2 步:保存生成的 PDF 文件

最后,我们将保存生成的不带超链接的 PDF 文件。使用以下代码:

//保存生成的 PDF 文件
doc.Save(dataDir + "RemoveHyperlinksFromText_out.pdf");

上面的代码使用文件名保存生成的 PDF 文件"RemoveHyperlinksFromText_out.pdf".

使用 Aspose.PDF for .NET 从 Html 转换后删除超链接的示例源代码

//文档目录的路径。
string dataDir = "YOUR DOCUMENT DIRECTORY";

Document doc = new Document(dataDir + "SampleHtmlFile.html", new HtmlLoadOptions());
doc.Save(new MemoryStream());
foreach (Annotation a in doc.Pages[1].Annotations)
{
	if (a.AnnotationType == AnnotationType.Link)
	{
		LinkAnnotation la = (LinkAnnotation)a;
		if (la.Action is GoToURIAction)
		{
			GoToURIAction gta = (GoToURIAction)la.Action;
			gta.URI = "";
			TextFragmentAbsorber tfa = new TextFragmentAbsorber();
			tfa.TextSearchOptions = new TextSearchOptions(a.Rect);
			doc.Pages[a.PageIndex].Accept(tfa);
			foreach (TextFragment tf in tfa.TextFragments)
			{
				tf.TextState.Underline = false;
				tf.TextState.ForegroundColor = Color.Black;
			}
		}
		doc.Pages[a.PageIndex].Annotations.Delete(a);
	}
}
doc.Save(dataDir + "RemoveHyperlinksFromText_out.pdf");

结论

在本教程中,我们介绍了使用 Aspose.PDF for .NET 从 HTML 文件生成的 PDF 文件中删除超链接的分步过程。按照上述说明操作,您将能够成功从生成的 PDF 文件中删除超链接。

常见问题解答

问:什么是 Aspose.PDF for .NET?

答:Aspose.PDF for .NET 是一个功能强大的库,使开发人员能够在 C# 应用程序中处理 PDF 文档。它提供了广泛的功能,包括将 HTML 文件转换为 PDF 和操作 PDF 内容的能力。

问:为什么我要从 PDF 文件中删除超链接?

答:从 PDF 文件中删除超链接的原因有多种。例如,您可能希望消除用于打印或存档目的的外部链接,或者确保 PDF 内容无法通过超链接进行导航。

问:如何使用 Aspose.PDF for .NET 加载 HTML 文件并删除超链接?

答:要加载 HTML 文件并删除超链接,您可以使用 Aspose.PDF for .NETHtmlLoadOptions班级。迭代 PDF 页面的注释以查找链接注释并修改其属性。

问:我可以自定义生成的 PDF 的输出文件名吗?

答:是的,您可以通过修改保存 PDF 文档的代码来自定义生成的 PDF 文件的输出文件名。只需更改所需的文件名即可doc.Save()方法。

问:是否可以根据某些条件有选择地删除超链接?

答:是的,您可以根据特定条件有选择地删除超链接。例如,您可以选择仅删除外部链接或指向特定 URL 的链接。