在下载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();
}
}
我知道这是旧的,但我已经使用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保存到的绝对或相对路径或文件名。
希望这有帮助