【问题标题】:HTML embed PDF , Set Content from BufferHTML嵌入PDF,从缓冲区设置内容
【发布时间】:2017-12-14 04:31:18
【问题描述】:

我有一个 html 嵌入标签,想在里面显示一个 pdf。这适用于来自文件的 src。但我想从文件中加载内存中的内容。因此,我从缓冲区中的休息 api 取回 pdf 数据,并希望将其输入到嵌入标签中。这可能吗? 这是一些示例代码

<div id ="pdfView">
    <embed class="form-control" src="some/path/file.pdf" id="pdf"/>
</div>

【问题讨论】:

    标签: javascript html pdf embed


    【解决方案1】:

    一种笨拙的方法是在服务器上下载一个临时文件,然后更新src 中使用的文件名。我还没有测试过,但它似乎应该可以工作。

    另一种方法是使用数据标签。您需要对 PDF 内容进行 Base64 编码,然后使用 the data URL scheme 生成 src 标签。

    例子:

    <embed class="form-control" src="data:application/pdf;base64,JVBERi0xLjEKJcKlwrHDqwoKMSAwIG9iagogIDw8IC9UeXBlIC9DYXRhbG9nCiAgICAgL1BhZ2VzIDIgMCBSCiAgPj4KZW5kb2JqCgoyIDAgb2JqCiAgPDwgL1R5cGUgL1BhZ2VzCiAgICAgL0tpZHMgWzMgMCBSXQogICAgIC9Db3VudCAxCiAgICAgL01lZGlhQm94IFswIDAgMzAwIDE0NF0KICA+PgplbmRvYmoKCjMgMCBvYmoKICA8PCAgL1R5cGUgL1BhZ2UKICAgICAgL1BhcmVudCAyIDAgUgogICAgICAvUmVzb3VyY2VzCiAgICAgICA8PCAvRm9udAogICAgICAgICAgIDw8IC9GMQogICAgICAgICAgICAgICA8PCAvVHlwZSAvRm9udAogICAgICAgICAgICAgICAgICAvU3VidHlwZSAvVHlwZTEKICAgICAgICAgICAgICAgICAgL0Jhc2VGb250IC9UaW1lcy1Sb21hbgogICAgICAgICAgICAgICA+PgogICAgICAgICAgID4+CiAgICAgICA+PgogICAgICAvQ29udGVudHMgNCAwIFIKICA+PgplbmRvYmoKCjQgMCBvYmoKICA8PCAvTGVuZ3RoIDU1ID4+CnN0cmVhbQogIEJUCiAgICAvRjEgMTggVGYKICAgIDAgMCBUZAogICAgKEhlbGxvIFdvcmxkKSBUagogIEVUCmVuZHN0cmVhbQplbmRvYmoKCnhyZWYKMCA1CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxOCAwMDAwMCBuIAowMDAwMDAwMDc3IDAwMDAwIG4gCjAwMDAwMDAxNzggMDAwMDAgbiAKMDAwMDAwMDQ1NyAwMDAwMCBuIAp0cmFpbGVyCiAgPDwgIC9Sb290IDEgMCBSCiAgICAgIC9TaXplIDUKICA+PgpzdGFydHhyZWYKNTY1CiUlRU9GCg==" id="pdf"/>
    

    以上是this minimal PDF example的Base64编码数据。但是,你不能给它一个这样的文件名,并且可能会在它的位置看到一些奇怪的东西。

    如果您需要有关 Base64 编码的指南,这可能超出范围但这里有很多解决方案,例如 this one

    【讨论】:

    • 适用于该问题。但是我不能直接编码 base64,因为我得到非 Latin1 错误。用 window.btoa(unescape(encodeURIComponent(response)) 我得到一个白色的 pdf....
    • 你可以试试这里提到的技巧stackoverflow.com/a/41445058/2060441
    • 适用于 Chrome,但在 Edge 和 IE11 中失败
    • 没错。数据 URL 方案适合您。太好了!
    猜你喜欢
    • 2023-03-02
    • 1970-01-01
    • 2022-01-11
    • 2015-08-20
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    相关资源
    最近更新 更多