你在找HTML转PDF的方法吗?这篇Aspose.PDF for .NET教程告诉你

  Aspose.PDF for .NET是一种高级PDF处理和解析API,用于在跨平台应用程序中执行文档管理和操作任务。API可以轻松用于生成,修改,转换,渲染,保护和打印PDF文档,而无需使用Adobe Acrobat。此外,还提供PDF压缩选项,表格创建和操作,图形和图像功能,广泛的超链接功能,印章和水印任务,扩展的安全控制和自定义字体处理。

  HTML到PDF的转换在将不同文件格式相互转换之间具有其自身的意义,可以使用其他可用的应用程序,工具和在线服务将HTML转换为PDF。同样,我们也可以使用编程的方式,将HTML转换为PDF。

  在Aspose.PDF for .Net中,提供了免费的HTML到PDF的基本转换,而且还允许指定各种选项来实现所需的功能,比如将网页转换为PDF、使用SVG数据渲染HTML等等。接下来我们一起通过示例解读的方式学习如何实现这些功能。

  只需使用几行代码和资源加载回调就可以以非常基本的方式将HTML转换为PDF,以下是使您达到目的的代码段:

  // The path to the documents directory.

  string dataDir=RunExamples.GetDataDir_AsposePdf_DocumentConversion();

  HtmlLoadOptions options=new HtmlLoadOptions();

  options.CustomLoaderOfExternalResources=new LoadOptions.ResourceLoadingStrategy(SamePictureLoader);

  Document pdfDocument=new Document(dataDir + "HTMLToPDF.html", options);

  pdfDocument.Save("HTMLToPDF_out.pdf");

  private static LoadOptions.ResourceLoadingResult SamePictureLoader(string resourceURI)

  {

  string dataDir=RunExamples.GetDataDir_AsposePdf_DocumentConversion();

  byte[] resultBytes=File.ReadAllBytes(dataDir + "aspose-logo.jpg");

  LoadOptions.ResourceLoadingResult result=new LoadOptions.ResourceLoadingResult(resultBytes);

  return result;

  }

  通常需要将网页转换为PDF,并且如果手动执行此操作,则需要执行多个步骤。API提供的功能可以使用下面显示的代码执行。需要注意的是,以下代码段涵盖了Web页面到PDF转换操作的两个主要和基本方面:

  下载网页正在使用的资源,例如 CSS、图片提供凭据以防访问页面

  //文档目录的路径。

  string dataDir=RunExamples.GetDataDir_AsposePdf_DocumentConversion();

  //创建对该URL的请求。

  WebRequest request=WebRequest.Create(" En.wikipedia/wiki/Main_Page");

  //如果服务器需要,请设置凭据。

  request.Credentials=CredentialCache.DefaultCredentials;

  //在请求超时之前以毫秒为单位超时

  // Request.Timeout=100;

  //获取响应。

  HttpWebResponse response=(HttpWebResponse)request.GetResponse();

  //获取包含服务器返回内容的流。

  Stream dataStream=response.GetResponseStream();

  //使用StreamReader打开流以方便访问。

  StreamReader reader=new StreamReader(dataStream);

  //阅读内容。

  string responseFromServer=reader.ReadToEnd();

  reader.Close();

  dataStream.Close();

  response.Close();

  MemoryStream stream=new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));

  HtmlLoadOptions options=new HtmlLoadOptions(" En.wikipedia/wiki/");

  //加载HTML文件

  Document pdfDocument=new Document(stream, options);

  options.PageInfo.IsLandscape=true;

  //将输出另存为PDF格式

  pdfDocument.Save(dataDir + "WebPageToPDF_out.pdf");

  以下代码段显示了如何将带有SVG图形标签的HTML文件转换为Tagged PDF Document:

  //文档目录的路径

  string dataDir=RunExamples.GetDataDir_AsposePdf_DocumentConversion();

  //设置输入文件路径

  string inFile=dataDir + "HTMLSVG.html";

  //设置输出文件路径

  string outFile=dataDir + "RenderHTMLwithSVGData.pdf";

  //初始化HtmlLoadOptions

  HtmlLoadOptions options=new HtmlLoadOptions(Path.GetDirectoryName(inFile));

  //初始化Document对象

  Document pdfDocument=new Document(inFile, options);

  //保存

  pdfDocument.Save(outFile);

posted @ 2022-02-12 15:38  ebuybay  阅读(576)  评论(0编辑  收藏  举报