在下载pdf格式的html时,通过使用第三方工具将html页面转换为pdf.获取错误-转换错误:无法打开url

本文关键字:html pdf 转换 取错误 错误 获取 url 格式 下载 工具 第三方 | 更新日期: 2023-09-27 18:27:27

同时在selectpdf软件中将html代码下载到pdf中。我得到错误说-"转换错误:无法打开url"。我使用selectpdf将html代码转换为pdf。我必须给出的基本url是什么。

using SelectPdf;
public partial class HtmlcodePrint : System.Web.UI.Page
{
    string TxtHtmlCode;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
             TxtHtmlCode = @"<html>
 <body>
  Hello World from selectpdf.com.
 </body>
</html>
";
        }
    }
    protected void Btndownloadpdf_Click(object sender, EventArgs e)
        {
            // read parameters from the webpage
            string htmlString = TxtHtmlCode;
            string baseUrl = "http://localhost:51868/HtmlcodePrint.aspx";
            string pdf_page_size ="A4";
            PdfPageSize pageSize = (PdfPageSize)Enum.Parse(typeof(PdfPageSize), 
                pdf_page_size, true);
            string pdf_orientation = "Portrait";
            PdfPageOrientation pdfOrientation = 
                (PdfPageOrientation)Enum.Parse(typeof(PdfPageOrientation), 
                pdf_orientation, true);
            int webPageWidth = 1024;
            try
            {
                webPageWidth = Convert.ToInt32("1024");
            }
            catch { }
            int webPageHeight = 0;
            try
            {
                webPageHeight = Convert.ToInt32("777");
            }
            catch { }
            // instantiate a html to pdf converter object
            HtmlToPdf converter = new HtmlToPdf();
            // set converter options
            converter.Options.PdfPageSize = pageSize;
            converter.Options.PdfPageOrientation = pdfOrientation;
            converter.Options.WebPageWidth = webPageWidth;
            converter.Options.WebPageHeight = webPageHeight;
            // create a new pdf document converting an url
            PdfDocument doc = converter.ConvertHtmlString(htmlString, baseUrl);
            // save pdf document
            doc.Save(Response, false, "Sample.pdf");
            // close pdf document
            doc.Close();
        }
    }

在下载pdf格式的html时,通过使用第三方工具将html页面转换为pdf.获取错误-转换错误:无法打开url

我知道这是旧的,但我已经使用SelectPdf几天了,所以我会投入2美分。

你可能不需要baseUrl

您根本不需要为ConvertHtmlString函数提供任何baseUrl。您可以将要转换的html字符串传递给它,就是它

除非

如果要转换的html在外部引用中具有相对路径,则只需要向其传递baseUrl(例如:如果您正在引用样式表并希望使用相对路径,可以提供baseUrl来显示您希望样式表相对于的位置)。这只是为了让转换器可以从相对路径创建完整的绝对路径。

所以

如果你不需要这个功能,或者你的html中没有外部引用,那么你可以使用

converter.ConvertHtmlString(htmlString);

此外

doc.Save(Response, false, "Sample.pdf");

可能也不是你想要的。我之所以这么说,是因为评论与网站上SelectPDF示例上的评论相似,所以我假设您从那里复制了代码(这也是我最初所做的),在这种情况下,我想让您知道,您不必使用特定版本的Save保存PDF文档。它实际上有3个重载,允许您将文档保存为:

  • 字节数组(默认
  • 溪流
  • 文件
  • HTTP响应(您现在使用的响应,如网站中的示例所示)

所以,正如我所指出的,你使用的是将PDF保存为HTTP响应的文件,所以如果你想直接将其保存为实际的PDF文件,你需要将其更改为

doc.Save(fileName)

使用fileName变量作为要将PDF保存到的绝对或相对路径或文件名。

希望这有帮助