我正在尝试从Wiki页面中提取文本,存储其格式,并将其全部转换为PDF格式。
我知道ITextSharp库可以帮我把它放在PDF中,但是如何在保持格式化的同时从网站上删除文本呢?
答案 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。或essentialobjects或aspose。一切都很好。