相关疑难解决方法(0)

Pdf.js:使用base64文件源而不是url呈现pdf文件

我正在尝试使用pdf.js从pdf渲染页面

通常,使用网址,我可以这样做:

PDFJS.getDocument("http://www.server.com/file.pdf").then(function getPdfHelloWorld(pdf) {
  //
  // Fetch the first page
  //
  pdf.getPage(1).then(function getPageHelloWorld(page) {
    var scale = 1.5;
    var viewport = page.getViewport(scale);

    //
    // Prepare canvas using PDF page dimensions
    //
    var canvas = document.getElementById('the-canvas');
    var context = canvas.getContext('2d');
    canvas.height = viewport.height;
    canvas.width = viewport.width;

    //
    // Render PDF page into canvas context
    //
    page.render({canvasContext: context, viewport: viewport});
  });
});
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我将文件放在base64而不是url:

data:application/pdf;base64,JVBERi0xLjUKJdDUxdgKNSAwIG9iaiA8PAovTGVuZ3RoIDE2NjUgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjarVhLc9s2...
Run Code Online (Sandbox Code Playgroud)

怎么做到这一点?

javascript pdf base64 canvas pdf.js

64
推荐指数
2
解决办法
10万
查看次数

从arraybuffer显示pdf

我从此代码返回laravel dompdf的流数据

 $pdf = \App::make('dompdf.wrapper');
 $pdf->loadHTML("<div>This is test</div>");
 return $pdf->stream();
Run Code Online (Sandbox Code Playgroud)

这是我的JS ajax代码

    $.ajax({
        type:"GET",
        url: "/display",
        responseType: 'arraybuffer'
    }).done(function( response ) {
        var blob = new Blob([response.data], {type: 'application/pdf'});
        var pdfurl = window.URL.createObjectURL(blob)+"#view=FitW";
        $("#pdfviewer").attr("data",pdfurl);
    });
Run Code Online (Sandbox Code Playgroud)

这是在ajax之后显示pdf的HTML

<object id="pdfviewer" data="/files/sample.pdf" type="application/pdf" style="width:100%;height:500px;"></object>
Run Code Online (Sandbox Code Playgroud)

我收到了以下错误

无法加载PDF文档

请帮忙解决这个问题.如何显示pdf文件.

javascript php jquery dompdf laravel

23
推荐指数
2
解决办法
2万
查看次数

标签 统计

javascript ×2

base64 ×1

canvas ×1

dompdf ×1

jquery ×1

laravel ×1

pdf ×1

pdf.js ×1

php ×1