【问题标题】:How to Create a PDF from Text from site [closed]如何从站点的文本创建 PDF [关闭]
【发布时间】:2014-06-12 19:44:31
【问题描述】:

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

我知道 ITextSharp 库可以帮助我将其放入 PDF 中,但我将如何在保持格式的同时将文本从网站上提取出来?

【问题讨论】:

  • 这听起来不像是一个让自己的脚湿透的小项目。但也许你是个天才?
  • 至少有 3 个问题 - 如何从网站读取文本(也就是如何使用 WebClient)、如何解析 HTML(也就是给我 HtmlAgility 包操作方法)以及从 HTML 创建 PDF .请务必研究之前已经问过的问题,并分别询问每个新问题。
  • 旁注:无需在您的帖子中添加“谢谢”、“这里是新的/使用 C#”。无论如何,在大多数情况下,知识/关心的水平从问题中是非常明显的。

标签: c# pdf pdf-generation


【解决方案1】:

对运行 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 服务器上使用 program 将文本转换为 PDF。因此,只需调用该程序,并在该命令行中将文本发送给它。然后临时保存文件,并给用户它的 temp_url。然后删除它。

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

【讨论】:

    【解决方案2】:

    如果您正在寻找超级简单/免费的方法,请查看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。都是很好的解决方案。

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 2011-01-15
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      • 2020-07-02
      相关资源
      最近更新 更多