如何从站点的文本创建PDF

时间:2014-06-12 19:44:31

标签: c# pdf pdf-generation

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

我知道ITextSharp库可以帮我把它放在PDF中,但是如何在保持格式化的同时从网站上删除文本呢?

2 个答案:

答案 0 :(得分:1)

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

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

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

希望它能给你一个开始...

答案 1 :(得分:1)

如果您正在寻找超级简单/免费的方式,请查看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");
}

然后使用像HtmlAgilityPack这样的HtmlParser来查找所有CSS和图像。 (Don't use regex to parse 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 runtime, like V8),以防它修改DOM或CSS中的内容。

然后,获取呈现的HTML页面并编写PDF渲染器。这也很难。 There's a hundred companies that don't do it well...

或者......只需使用wkhtmltopdf。或essentialobjectsaspose。一切都很好。