使用Aspose进行HTML到PDF的转换

我是Aspose的新手,但我已成功将多种文件格式转换为PDF格式,但我对HTML转换为PDF格式感到震惊。 我能够成功地将HTML文件转换为PDF,但CSS部分不会渲染到生成的PDF中。 对此有何想法? 我将www.google.com保存为输入HTML文件。 这是我的控制器代码。

using Aspose.Pdf.Generator Pdf pdf = new Pdf(); pdf.HtmlInfo.CharSet = "UTF-8"; Section section = pdf.Sections.Add(); StreamReader r = File.OpenText(@"Local HTML File Path"); Text text2 = new Aspose.Pdf.Generator.Text(section, r.ReadToEnd()); pdf.HtmlInfo.ExternalResourcesBasePath = "Local HTML File Path"; text2.IsHtmlTagSupported = true; text2.IsFitToPage = true; section.Paragraphs.Add(text2); pdf.Save(@"Generated PDF File Path"); 

我错过了什么吗? 非常感谢任何forms的帮助。

谢谢

我的名字是Tilal Ahmad,我是Aspose的开发人员传道者。

请使用新的DOM方法(Aspose.Pdf.Document)进行HTML到PDF的转换。 在这种渲染外部资源(CSS / Images / Fonts)的方法中,您需要将资源路径传递给HtmlLoadOptions()方法。 请查看以下文档链接。

将HTML转换为PDF(新DOM)

 HtmlLoadOptions options = new HtmlLoadOptions(resourcesPath); Document pdfDocument = new Document(inputPath, options); pdfDocument.Save("outputPath"); 

将网页转换为PDF(新DOM)

 // Create a request for the URL. WebRequest request = WebRequest.Create("https:// En.wikipedia.org/wiki/Main_Page"); // If required by the server, set the credentials. request.Credentials = CredentialCache.DefaultCredentials; // Time out in miliseconds before the request times out // Request.Timeout = 100; // Get the response. HttpWebResponse response = (HttpWebResponse)request.GetResponse(); // Get the stream containing content returned by the server. Stream dataStream = response.GetResponseStream(); // Open the stream using a StreamReader for easy access. StreamReader reader = new StreamReader(dataStream); // Read the content. string responseFromServer = reader.ReadToEnd(); reader.Close(); dataStream.Close(); response.Close(); MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer)); HtmlLoadOptions options = new HtmlLoadOptions("https:// En.wikipedia.org/wiki/"); // Load HTML file Document pdfDocument = new Document(stream, options); options.PageInfo.IsLandscape = true; // Save output as PDF format pdfDocument.Save(outputPath); 

尝试在每个样式标记中使用media属性

  

然后将html文件提供给Aspose.Pdf Generator。