【问题标题】:Dowload PDF after rendering HTML generation page渲染 HTML 生成页面后下载 PDF
【发布时间】:2017-02-08 08:22:35
【问题描述】:

我正在尝试通过 webclient 下载页面中呈现的 PDF 的byte[]

This is the URL.

我遇到的问题是上面的页面不是PDF的直接页面,而是生成和呈现PDF的页面。

如果我使用我的代码:

WebClient labelDL = new WebClient();
// Récupération du fichier PDF

Content = labelDL.DownloadData(_labelSLSResponse.LabelUrl);

我得到了我正在等待的字节[],但它是 html 内容的字节[](我什至不在乎)。

如何首先呈现 url(如在浏览器中,但以编程方式),然后在生成后下载呈现的 PDF 的字节 []?

提前感谢您的帮助,我被困在那里......

【问题讨论】:

  • 当我 GET 那个 URL 时,我马上得到一个 PDF,根本没有 HTML。
  • 有像 Aspose 这样的工具可以将 PDF 渲染成图像。或者有例如jsPDF 将 PDF 呈现为 HTML。
  • 这就是我要解释的。该 url 生成一个 pdf。当您在 url 上使用 webclient 时,您首先获得 html !我已经有工具可以将 pdf 渲染成我想要的,这不是我的问题,但谢谢
  • 嘿 gstreetspirit 欢迎来到 stackoverflow 社区。检查答案,这可能是重复的,请务必在之前进行研究。
  • 这不是一个重复的问题。我的问题不是“如何下载 pdf 的字节 []”,而是如何首先渲染页面,然后下载该页面生成的 pdf...

标签: c# pdf webclient


【解决方案1】:

我终于找到了解决办法。

实际上问题与url格式有关。 这是一个重写的网址。因此,要被 webclient 正确解释,您必须像使用 web 浏览器一样强制标头(用户代理)。

使用此代码:

WebClient labelDL = new WebClient();
        // Récupération du fichier PDF

        labelDL.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
        //string test = labelDL.DownloadString(_labelSLSResponse.LabelUrl);
        Content = labelDL.DownloadData(_labelSLSResponse.LabelUrl);

终于成功了!

感谢您的宝贵时间和帮助...

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 2016-01-31
    • 2011-08-15
    相关资源
    最近更新 更多