如何将渲染的pdf(从html生成)保存到计算机中?

时间:2019-04-17 06:01:39

标签: javascript php html-to-pdf

我正在使用以下API从URL生成pdf:

https://url-to-pdf-api.herokuapp.com/api/render?url=http://google.com

我想要一个直接下载生成的pdf的php代码。下面是我尝试过的:

a href =“ https://url-to-pdf-api.herokuapp.com/api/render?url=http://google.com” download =“ download”

但是文件没有下载!

预期输出应为下载的pdf文件。

3 个答案:

答案 0 :(得分:0)

您可以使用

<form method="get" action="https://url-to-pdf-api.herokuapp.com/api/render?url=http://google.com">
   <button type="submit">Download!</button>
</form>

答案 1 :(得分:0)

似乎您使用的不是同一来源,这可能是造成问题的原因。

请使用相对网址,而不是绝对网址。

例如:下载

此属性仅适用于同源网址。

答案 2 :(得分:0)

您的html

<a href="downloader.php">Download pdf</a>

您可以与php一起使用downloader.php保存

 $url = 'https://url-to-pdf-api.herokuapp.com/api/render?url=http://google.com';

    set_time_limit(0);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    $r = curl_exec($ch);
    curl_close($ch);
    header('Expires: 0'); // no cache
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
    header('Cache-Control: private', false);
    header('Content-Type: application/force-download');
    header('Content-Disposition: attachment; filename="' . 'x.pdf' . '"');
    header('Content-Transfer-Encoding: binary');
    header('Content-Length: ' . strlen($r)); // provide file size
    header('Connection: close');
    echo $r;