将 html 内容转换为 pdf 有许多好处,能够离线阅读,并且以高保真度保留内容和格式。spire.pdf 提供了两种 html 转 pdf 的方法,一种是使用 qt 插件,另一种是不使用 qt 插件。我们建议您使用 qt 插件进行转换。
以下部分演示了在有 qt 插件以及没有 qt 插件的情况下,如何使用 spire.pdf for .net 将 html 网页 (url) 或 html 字符串转换为pdf文档。
安装 spire.pdf for .net
首先,您需要添加 spire.pdf for .net 包中包含的 dll 文件作为 .net 项目中的引用。dll 文件可以从此链接下载或通过 安装。
pm> install-package spire.pdf
下载插件
如果您选择插件方式,请从以下链接下载适合您操作系统的插件。
在磁盘上的某个位置解压缩包以获取 "plugins" 文件夹。在本例中,我们将插件保存在路径 "f:\libraries\plugin\plugins-windows-x64\plugins" 下。
此外,我们建议您将项目的 "平台目标" 相应地设置为 x64 或 x86。
使用 qt 插件将 url 转换为 pdf
以下是使用 spire.pdf 及 qt 插件将 url 转换为 pdf 的步骤。
- 指定要转换的 url 路径。
- 指定生成的 pdf 文件的路径。
- 指定插件路径,并将其分配为 htmlconverter.pluginpath 属性的值。
- 调用 htmlconverter.convert(string url, string filename, bool enablejavascript, int timeout, sizef pagesize, pdfmargins margins) 方法将 url 转换为 pdf 文档。
- c#
- vb.net
using spire.pdf.graphics;
using spire.pdf.htmlconverter.qt;
using system.drawing;
namespace converturltopdf
{
class program
{
static void main(string[] args)
{
//指定url路径
string url = "https://www.baidu.com/";
//指定输出文件路径
string filename = "urltopdf.pdf";
//指定插件路径
string pluginpath = "f: \\libraries\\plugins-windows-x64";
//设置插件路径
htmlconverter.pluginpath = pluginpath;
//转换url为pdf
htmlconverter.convert(url, filename, true, 100000, new size(1080, 1000), new pdfmargins(0));
}
}
}
imports spire.pdf.graphics
imports spire.pdf.htmlconverter.qt
imports system.drawing
namespace converturltopdf
class program
shared sub main(byval args() as string)
'指定url路径
dim url as string = "https://www.baidu.com/"
'指定输出文件路径
dim filename as string = "urltopdf.pdf"
'指定插件路径
dim pluginpath as string = " f: \\libraries\\plugins-windows-x64"
'设置插件路径
htmlconverter.pluginpath = pluginpath
'转换url为pdf
htmlconverter.convert(url, filename, true, 100000, new size(1080, 1000), new pdfmargins(0))
end sub
end class
end namespace
使用 qt 插件将 html 字符串转换为 pdf
以下是使用 spire.pdf 及 qt 插件将 html 字符串转换为 pdf 的步骤。
- 从 .html 文件中获取 html 字符串。
- 指定生成的 pdf 文件的路径。
- 指定插件路径,并将其分配为 htmlconverter.pluginpath 属性的值。
- 调用 htmlconverter.convert(string htmlstring, string filename, bool enablejavascript, int timeout, sizef pagesize, pdfmargins margins, spire.pdf.htmlconverter.loadhtmltype htmltype) 方法将 html 字符串转换为 pdf 文档。
注意:只有内联css样式和内部css样式可以在pdf上正确呈现。如果您有外部css样式表,请将其转换为内联或内部css样式。
- c#
- vb.net
using system.io;
using spire.pdf.htmlconverter.qt;
using system.drawing;
using spire.pdf.graphics;
namespace converthtmlstringtopdfwithplugin
{
class program
{
static void main(string[] args)
{
//从 .html 文件中获取 html 字符串
string htmlstring = file.readalltext(@"c: \\users\\administrator\\desktop\\document\\html\\sample.html");
//指定输出文件路径
string filename = "htmlstringtopdf.pdf";
//指定插件路径
string pluginpath = " f: \\libraries\\plugins-windows-x64";
//设置插件路径
htmlconverter.pluginpath = pluginpath;
//转换html字符串为pdf
htmlconverter.convert(htmlstring, filename, true, 100000, new size(1080, 1000), new pdfmargins(0), spire.pdf.htmlconverter.loadhtmltype.sourcecode);
}
}
}
imports system.io
imports spire.pdf.htmlconverter.qt
imports system.drawing
imports spire.pdf.graphics
namespace converthtmlstringtopdfwithplugin
class program
shared sub main(byval args() as string)
'从 .html 文件中获取 html 字符串
dim htmlstring as string = file.readalltext("c:\users\administrator\desktop\document\html\sample.html")
'指定输出文件路径
dim filename as string = "htmlstringtopdf.pdf"
'指定插件路径
dim pluginpath as string = " f: \\libraries\\plugins-windows-x64"
'设置插件路径
htmlconverter.pluginpath = pluginpath
'转换html字符串为pdf
htmlconverter.convert(htmlstring, filename, true, 100000, new size(1080, 1000), new pdfmargins(0), spire.pdf.htmlconverter.loadhtmltype.sourcecode)
end sub
end class
end namespace
不用插件将 url 转换为 pdf
以下是使用 spire.pdf 及 qt 插件将 url 转换为 pdf 的步骤。
- 创建一个 pdfdocument 对象。
- 创建一个 pdfpagesettings 对象,并通过它设置页面大小和边距。
- 创建一个 pdfhtmllayoutformat 对象,并将其 iswaiting 属性设置 true。
- 指定要转换的 url 路径。
- 使用 pdfdocument.loadfromhtml() 方法从 url 路径加载 html。
- 使用 pdfdocument.savetofile() 方法将文档保存到 pdf 文件。
- c#
- vb.net
using system;
using spire.pdf;
using system.threading;
using spire.pdf.htmlconverter;
using system.drawing;
namespace converurltopdfwithoutplugin
{
class program
{
static void main(string[] args)
{
//创建一个 pdfdocument 对象
pdfdocument doc = new pdfdocument();
//创建一个 pdfpagesettings 对象
pdfpagesettings setting = new pdfpagesettings();
//通过对象保存页面大小和边距
setting.size = new sizef(1000, 1000);
setting.margins = new spire.pdf.graphics.pdfmargins(20);
//创建一个 pdfhtmllayoutformat 对象
pdfhtmllayoutformat htmllayoutformat = new pdfhtmllayoutformat();
//将 iswaiting 属性设置为 true
htmllayoutformat.iswaiting = true;
//指定要转换的url路径
string url = "https://www.baidu.com/";
//使用 loadfromhtml 方法从 url 路径加载 html
thread thread = new thread(() =>
{ doc.loadfromhtml(url, true, true, false, setting, htmllayoutformat); });
thread.setapartmentstate(apartmentstate.sta);
thread.start();
thread.join();
//将文档保存为 pdf 文件
doc.savetofile("urltopdf.pdf");
doc.close();
}
}
}
imports system
imports spire.pdf
imports system.threading
imports spire.pdf.htmlconverter
imports system.drawing
namespace converurltopdfwithoutplugin
class program
shared sub main(byval args() as string)
'创建一个 pdfdocument 对象
dim doc as pdfdocument = new pdfdocument()
'创建一个 pdfpagesettings 对象
dim setting as pdfpagesettings = new pdfpagesettings()
'通过对象保存页面大小和边距
setting.size = new sizef(1000, 1000)
setting.margins = new spire.pdf.graphics.pdfmargins(20)
'创建一个 pdfhtmllayoutformat 对象
dim htmllayoutformat as pdfhtmllayoutformat = new pdfhtmllayoutformat()
'将 iswaiting 属性设置为 true
htmllayoutformat.iswaiting = true
'指定要转换的url路径
dim url as string = "https://www.baidu.com/"
'使用 loadfromhtml 方法从 url 路径加载 html
thread thread = new thread(() =>
{
doc.loadfromhtml(url, true, true, false, setting, htmllayoutformat)
}
)
thread.setapartmentstate(apartmentstate.sta)
thread.start()
thread.join()
'将文档保存为 pdf 文件
doc.savetofile("urltopdf.pdf")
doc.close()
end sub
end class
end namespace
不用插件将 html 字符串转换为 pdf
以下是使用 spire.pdf 及 qt 插件将 html 字符串转换为 pdf 的步骤。
- 创建一个 pdfdocument 对象。
- 创建一个 pdfpagesettings 对象,并通过它设置页面大小和边距。
- 创建一个 pdfhtmllayoutformat 对象,并将其 iswaiting 属性设置为 true。
- 从 .html 文件中读取 html 字符串。
- 使用 pdfdocument.loadfromhtml() 方法从 html 字符串加载 html。
- 使用 pdfdocument.savetofile() 方法将文档保存到 pdf 文件。
- c#
- vb.net
using spire.pdf;
using spire.pdf.htmlconverter;
using system.io;
using system.threading;
using system.drawing;
namespace converthtmlstringtopdfwithoutplugin
{
class program
{
static void main(string[] args)
{
//创建一个pdfdocument对象
pdfdocument doc = new pdfdocument();
//创建一个pdfpagesettings对象
pdfpagesettings setting = new pdfpagesettings();
//通过对象保存页面大小和边距
setting.size = new sizef(1000, 1000);
setting.margins = new spire.pdf.graphics.pdfmargins(20);
//创建一个 pdfhtmllayoutformat 对象
pdfhtmllayoutformat htmllayoutformat = new pdfhtmllayoutformat();
//将iswaiting属性设置为true
htmllayoutformat.iswaiting = true;
//从 .html文件中读取html字符串
string htmlstring = file.readalltext(@"c: \\users\\administrator\\desktop\\document\\html\\sample.html");
//使用 loadfromhtml 方法从 html 字符串加载 html
thread thread = new thread(() =>
{ doc.loadfromhtml(htmlstring, true, true, false, setting, htmllayoutformat); });
thread.setapartmentstate(apartmentstate.sta);
thread.start();
thread.join();
//保存为pdf文件
doc.savetofile("htmlstringtopdf.pdf");
}
}
}
imports spire.pdf
imports spire.pdf.htmlconverter
imports system.io
imports system.threading
imports system.drawing
namespace converthtmlstringtopdfwithoutplugin
class program
shared sub main(byval args() as string)
'创建一个pdfdocument对象
dim doc as pdfdocument = new pdfdocument()
'创建一个pdfpagesettings对象
dim setting as pdfpagesettings = new pdfpagesettings()
'通过对象保存页面大小和边距
setting.size = new sizef(1000, 1000)
setting.margins = new spire.pdf.graphics.pdfmargins(20)
'创建一个pdfhtmllayoutformat对象
dim htmllayoutformat as pdfhtmllayoutformat = new pdfhtmllayoutformat()
'将 iswaiting 属性设置为 true
htmllayoutformat.iswaiting = true
'从 .html 文件中读取 html 字符串
dim htmlstring as string = file.readalltext("c: \\users\\administrator\\desktop\\document\\html\\sample.html")
'使用 loadfromhtml 方法从 html 字符串加载 html
thread thread = new thread(() =>
{
doc.loadfromhtml(htmlstring, true, true, false, setting, htmllayoutformat)
}
)
thread.setapartmentstate(apartmentstate.sta)
thread.start()
thread.join()
'保存为pdf文件
doc.savetofile("htmlstringtopdf.pdf")
end sub
end class
end namespace
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。 获取有效期 30 天的临时许可证。