如何从网站的文本创建PDF

本文关键字:文本 创建 PDF 网站 | 更新日期: 2023-09-27 18:08:35

我正在尝试从Wiki页面中提取文本,存储其格式,并将其全部转换为PDF。

我知道ITextSharp库可以帮助我把它放在PDF中,但是我如何在保持格式的同时将文本从网站上拉下来?

如何从网站的文本创建PDF

对运行C脚本不太熟悉,但我的经验可能会有所帮助。我使用Perl在UNIX服务器上编写脚本。然后我有我的PHP和JS文件托管在htdocs文件夹。现在-在我的PHP/JS代码中,我调用shell execute来运行我的.pl文件。

$command = "/mt_path/my_file_name.pl 2>&1";
exec($command, $exec_output_lines);

现在,您可以在UNIX服务器上安装一个将文本转换为PDF的程序。因此,只需调用该程序,并在命令行中向它发送文本。然后临时保存该文件,并向用户提供该文件的temp_url。然后删除它。

如果您正在寻找超级简单/免费的方法来做到这一点,请查看wkhtmltopdf.org

您可以从System.Diagnostics.Process类运行它:

System.Diagnostics.Process.Start("wkhtmltopdf.exe", "http://www.google.com google.pdf");

如果你想学会自己做这件事,那是非常困难的。从使用System.Net.WebClient:

下载HTML开始
using(var client = new System.Net.WebClient()) {
  var html = client.DownloadString("http://www.google.com");
}

然后使用HtmlParser,如htmllagilitypack来查找所有的CSS和图像。(不要用正则表达式解析html)

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
var cssNodes = doc.DocumentElement.SelectNodes("//link[@rel='stylsheet']");
var imgNodes = doc.DocumentElement.SelectNodes("//img[@src]");

下载这些文件,然后实现一个HtmlRenderer(你知道,就像WebKit)。然后,哦,我忘了,运行JavaScript(与您自己的JavaScript运行时,如V8),以防它修改了DOM或CSS中的某些内容。

然后,使用已呈现的HTML页面并编写PDF呈现器。这也很难。有一百家公司做得不好……

还是……只需使用wkhtmltopdf。或基本对象,或处置。