【问题标题】:PDF as blank page in HTMLPDF 作为 HTML 中的空白页
【发布时间】:2018-06-30 18:12:55
【问题描述】:

我的问题是,使用我的浏览器打开 PDF 一切正常,直到我上传了一个包含表单的 pdf。然后,如果我嵌入它,它会返回一个空白页。但是其他带有表单的pdf文件可以正常打开。请参阅下面的代码:

<object data="{{ asset($test->file_path) }}" type="application/pdf" width="100%" height="100%">
    <embed src="{{ asset($test->file_path) }}" type='application/pdf'>
    <center>
        <a href="{{ route('download.test', ['id' => $test->id]) }}" class="btn btn-primary">Please click here to view</a>
    </center>
</object>

注意:我也尝试过使用&lt;iframe&gt;,但仍然返回空白页。

解决方案:

选项 1:

重命名了我的带有# 符号的文件。一切都应该正常工作。

选项 2:

如果需要,请使用urlencode

【问题讨论】:

  • 你能发布一个导致错误的小提琴或示例 PDF 吗?
  • 嗨@Thomas。如果我创建一个小提琴,这也行不通,因为我使用的是 laravel。抱歉,这是我的 pdf 格式示例,foersom.com/net/HowTo/data/OoPdfFormExample.pdf
  • 我刚刚在 Chrome 63 (Windows 10) 中本地测试了它并且它工作正常。您尝试了哪些浏览器/版本以及在哪个操作系统上?
  • 你能检查那个文件,如果它没有损坏。

标签: html css pdf laravel-5


【解决方案1】:

已经很晚了,我很累,如果我看错了问题,请见谅。

我注意到 PDF 托管在不支持 HTTPS 的站点上。如果它嵌入到使用 HTTPS 的站点上,它会显示一个空白页面,但在使用 HTTP 时工作正常。

我认为您需要将 PDF 移动到支持 HTTPS 的站点,或者使托管 PDF 的站点开始使用 HTTPS。

【讨论】:

  • 嗨@SigaVPN。我仍在使用使用 http 的 localhost 并且 pdf 文件也在我的项目中,这也是一个 http 文件。
  • @Jonjie 尝试使用 HTTPS。
【解决方案2】:

考虑使用对象和 iframe(而不是对象和嵌入)

这样的东西应该适合你:

<object data="http://foersom.com/net/HowTo/data/OoPdfFormExample.pdf" type="application/pdf" width="100%" height="100%">
    <iframe src="http://foersom.com/net/HowTo/data/OoPdfFormExample.pdf" width="100%" height="100%" style="border: none;">
        This browser does not support PDFs. Please download the PDF to view it: <a href="/pdf/example.pdf">Download PDF</a>
    </iframe>
</object>

当我在本地测试它时这有效,但我无法显示 JSFiddle,因为它使用 HTTPS。 另外,看看这些例子:https://pdfobject.com/static.html

【讨论】:

  • 此浏览器不支持 PDF -> 此浏览器不支持 IFRAMES。下载“OoPdfFormExample.pdf”之前的浏览器不知道支持 mime 格式。 &lt;iframe/&gt; 即刻创建。如果设置了 PDF mime 类型的默认操作,默认情况下浏览器将在&lt;iframe/&gt; 或空白&lt;iframe/&gt; 中显示垃圾并弹出下载窗口。
【解决方案3】:
<a href="{{ route('download.test', ['id' => $test->id] ,['target'=>'_blank']) }}" class="btn btn-primary">Please click here to view</a>

【讨论】:

    【解决方案4】:

    不确定这是否可行,因为我无法测试您的案例。你可以试试这个,它总是对我有用。尝试用正确的路径替换http://yoursite.com/the.pdf

    <object data="http://yoursite.com/the.pdf" type="application/pdf" width="750px" height="750px">
        <embed src="http://yoursite.com/the.pdf" type="application/pdf">
            <p>This browser does not support PDFs. Please download the PDF to view it: <a href="http://yoursite.com/the.pdf">Download PDF</a>.</p>
        </embed>
    </object>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 2019-11-17
      • 2021-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多