【问题标题】:Rendering PDF from HTML with WebService使用 WebService 从 HTML 渲染 PDF
【发布时间】:2015-05-19 15:42:43
【问题描述】:

我使用 ITextSharp 构建了一个 Web 应用程序,用于将 HTML 转换为用户保存的 PDF。这工作正常。现在虽然我的任务是创建一个流程来按计划将 PDF 保存到共享中。然而,由于整个 PDF 创建都是基于 HTML,我正在努力通过移除前端来实现这一点。

很难为此显示代码,所以我希望我能很好地理解这个概念。

我尝试创建一个 Web 服务,我可以触发它来呈现 HTML 并创建 PDF 并删除它,但是我似乎无法找到一种方法让 Web 服务实际呈现页面。我不确定这是否可能。

我基本上想看看是否有人有任何想法,然后再经历重做 PDF 设计生成而不使用 HTML 的痛苦路线。

【问题讨论】:

标签: c# web-services pdf-generation itextsharp


【解决方案1】:

有很多方法可以解决这个问题,这里有一些关于我是否可以解决这个问题的建议:

-将代码回收到控制台应用程序并使用计划任务运行代码。 - 运行将在您的网络应用程序中执行网络服务的计划任务。

【讨论】:

  • 通常我会说如果您发布一些代码会更好,但由于 OP 也没有,我认为没关系!我完全赞同这个!我过去这样做的方式是在我的网站上做一个页面(页面,不是web服务,不需要不必要的复杂),然后下载wgetcurl,写了一个非常简单的批处理文件到点击该页面,最后将其包装在计划任务中。现在你也可以使用 PowerShell,跳过wget
【解决方案2】:

只是为了详细说明 MAlvarez 和 Chris Haas 所说的话,这可能对你有用:

  1. 在服务器上使用 curl 或 wget 获取您的 HTML:

    wget -O - http://localhost:80/my/page.html > result.html

  2. 将结果发布到您的网络服务以呈现为 PDF:

    curl -F file=@result.html -F outputName=result.pdf -F > result.pdf

  3. 将 result.pdf 存储在您需要的位置(除非您的网络服务可以在步骤 #2 中执行此操作)

    curl -F file=@result.pdf -F storeTo=my/storage/resultpdf

以上命令仅供参考,因为只有您知道您的网络服务的参数等。

【讨论】:

    【解决方案3】:

    所以,仍然很难发布代码,但我能够使用 HTMLGenericControls 和 Literals 在 Web 服务代码中构建整个页面,然后使用 itextsharp 将其呈现为 PDF。

    诸如面向用户版本的表格之类的东西使用了我在 Literal 中内置的网格视图。然后我在代码中构建的整个页面由 itextsharp 处理,并将 PDF 生成到文件流中

    【讨论】:

      猜你喜欢
      • 2013-07-31
      • 2010-09-30
      • 2016-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 2019-02-13
      • 2022-01-04
      相关资源
      最近更新 更多