相关疑难解决方法(0)

在内存中创建一个文件供用户下载,而不是通过服务器

有没有办法在客户端创建文本文件并提示用户下载它,而不与服务器进行任何交互?我知道我不能直接写入他们的机器(安全性和所有),但是我可以创建并提示他们保存它吗?

javascript web-applications file client-side

775
推荐指数
17
解决办法
39万
查看次数

仅打印<div id ="printarea"> </ div>?

如何打印指定的div(无需手动禁用页面上的所有其他内容)?

我想避免使用新的预览对话框,因此使用此内容创建新窗口无用.

该页面包含几个表格,其中一个表格包含我要打印的div - 该表格采用网页的视觉样式设计,不应该以打印方式显示.

javascript css printing dhtml

411
推荐指数
13
解决办法
66万
查看次数

EMBED与OBJECT

当我想要显示Adobe PDF查看器时,哪个是在我的HTML文件中使用的正确/最佳标记?现在我正在使用下面的代码,但是有一些奇怪的副作用(例如它似乎窃取了我设置到另一个INPUT文本框的起始焦点;它似乎与jQueryUI Resizeable类没有很好地兼容;等)

<embed src="abc.pdf" type="application/pdf" />
Run Code Online (Sandbox Code Playgroud)

我甚至可以用OBJECT标签做同样的事情吗?使用一个标签与另一个标签有利有弊吗?

html pdf embed-tag

156
推荐指数
3
解决办法
20万
查看次数

使用jquery ajax下载pdf文件

我想为jquery ajax响应下载pdf文件.Ajax响应包含pdf文件数据.我试过这个解决方案.我的代码如下,但我总是得到一个空白的pdf.

$(document).on('click', '.download-ss-btn', function () {

    $.ajax({
        type: "POST",
        url: 'http://127.0.0.1:8080/utils/json/pdfGen',
        data: {
            data: JSON.stringify(jsonData)
        }

    }).done(function (data) {
        var blob = new Blob([data]);
        var link = document.createElement('a');
        link.href = window.URL.createObjectURL(blob);
        link.download = "Sample.pdf";
        link.click();
    });


});
Run Code Online (Sandbox Code Playgroud)

javascript pdf ajax jquery

33
推荐指数
4
解决办法
9万
查看次数

从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下载时,PDF为空白

我有一个Web服务,在其响应中返回PDF文件内容.我想在用户点击链接时将其下载为pdf文件.我在UI中编写的javascript代码如下:

$http.get('http://MyPdfFileAPIstreamURl').then(function(response){
var blob=new File([response],'myBill.pdf',{type: "text/pdf"});
var link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download="myBill.pdf";
link.click();
});
Run Code Online (Sandbox Code Playgroud)

'response'包含来自'MyPdfFileAPIstreamURl'的servlet输出流的PDF字节数组.并且流也未加密.

因此,当我点击链接时,PDF文件成功下载大小约为200KB.但是当我打开这个文件时,它会打开空白页面.下载的pdf文件的起始内容位于图像中.

我无法理解这里有什么问题.救命 !

这是下载的pdf文件的起始内容:

这是下载的pdf文件的起始内容

javascript pdf

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

11
推荐指数
1
解决办法
1万
查看次数

如何使用 JavaScript 在 PDF 中截取屏幕截图

我正在使用 Html2Canvas 捕获屏幕截图 我想以 PDF 文件形式输出 现在我正在以 png 图像输出 如何转换或获取 pdf 输出

function genScreenshot() {
    html2canvas(document.body, {
      onrendered: function(canvas) {
      $('#box1').html("");
            $('#box1').append(canvas);

      if (navigator.userAgent.indexOf("MSIE ") > 0 || 
                    navigator.userAgent.match(/Trident.*rv\:11\./)) 
            {
        var blob = canvas.msToBlob();
        window.navigator.msSaveBlob(blob,'Test file.png');

      }
      else {

        $('#test').attr('href', canvas.toDataURL("image/png"));
        $('#test').attr('download','Test file.png');
        $('#test')[0].click();
         }


      }
    });
}
Run Code Online (Sandbox Code Playgroud)

html javascript pdf png html2canvas

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

在 Javascript 中从二进制字符串下载 PDF

我正在尝试从二进制字符串下载 PDF 文件,这是我从 Ajax 收到的响应。

我收到以下数据(binaryString):

%PDF-1.4....
.....
....content of file
....
%% EOF
Run Code Online (Sandbox Code Playgroud)

我试过这个:

    var blob=new Blob([binaryString], {type: "application/pdf"});// change resultByte to bytes
    var link=document.createElement('a');
    link.href=window.URL.createObjectURL(blob);
    link.download="myFileName.pdf";
    link.click();
Run Code Online (Sandbox Code Playgroud)

还尝试使用download.js库:

download(binaryString, "file.pdf", "application/pdf");
Run Code Online (Sandbox Code Playgroud)

但是,两者都会返回页数正确但完全空白的 PDF。 在此输入图像描述

失眠API测试结果: 在此输入图像描述

javascript pdf download binary-data

5
推荐指数
1
解决办法
3675
查看次数

创建Blob期间Internet Explorer 11中的InvalidStateError

我在blob创建行(即11)上收到InvalidStateError。不用说,它可以在Chrome和Firefox中使用。我可以看到二进制数据是我的客户端。是否有其他选择可以将其下载为文件?

var request= new ActiveXObject("MicrosoftXMLHTTP");
request.open("post", strURL, true);
request.setRequestHeader("Content-type","text/html");
addSecureTokenHeader(request);
request.responseType = 'blob';


request.onload  = function(event) {
if (request.status == 200) {
var blob = new Blob([request.response], {type: 'application/pdf'});
var url = URL.createObjectURL(blob);

var link = document.querySelector('#sim');
link.setAttribute('href', url);
var filename =  request.getResponseHeader('Content-Disposition');
$('#sim').attr("download", filename);
$(link).trigger('click');
fireEvent(link,'click');

}else {
//handle error
}
}
Run Code Online (Sandbox Code Playgroud)

javascript

4
推荐指数
2
解决办法
9781
查看次数

使用跨浏览器兼容的 JavaScript 下载 PDF

我可以在 Chrome 中使用 AngularJS 下载 PDF,但这似乎不适用于最新的 FireFox、Internet Explorer 11 或 Edge(假设它也不适用于 IE10),而且我知道IE9 需要垫片。如果有人有意见,不知道这是否是最好的垫片,但目前它似乎不起作用。我有一个应答式的试了一下blob,并arraybuffer只是在做一个差的情况下,它没有。

所有这些都与caniuse指示的使用 Blob URL相悖。任何人都可以在 IE9 及更高版本以及 FF 的最后几个版本中使用它,并且可以指出我做错了什么?

$http({
    url: '/api/v1/download',
    method: 'GET',
    responseType: 'blob' // or 'arraybuffer'
}).then(function (response) {

    // Use the Blob object to create an object URL to download the file
    var url = URL.createObjectURL(response.data);
    // var url = URL.createObjectURL(new Blob([response], {type: 'application/pdf'})); // arraybuffer version

    // Create an anchor to perform download, but …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-1.5

4
推荐指数
1
解决办法
3449
查看次数

使用$ http从服务器下载的原始文件创建Blob对象.

在服务器上有存储文件的URL.网址是http://website.com/abc 我这个网址上有$ http获取.

$http.get(url, { responseType: "arraybuffer" });
Run Code Online (Sandbox Code Playgroud)

我想从中创建Blob对象.我确信该对象的类型是png,因为它在上传之前有这个扩展名并且它显示正确.

new Blob(result.data, {type: "image/png"});
Run Code Online (Sandbox Code Playgroud)

我收到消息: 无法构造'Blob':第一个参数既不是数组,也不是索引属性.

服务器http://website.com/abc GET在开发者控制台中的响应如下所示:

ÿØÿàJFIFÿþ;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 60
ÿÛC





 ' .)10.)-,3:J>36F7,-@WAFLNRSR2>ZaZP`JQROÿÛC&&O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOÿÂÒ"ÿÄÿÄÿÚæå2ag\Ý#úDê3[Zdfc5±Ô¢¬æ)K<`¤l2¸ÊánYR±aA`Í%RÈfbz!¤tÞÑ-µd7ZªÀ[hz¨f¥>©cAV¬{3á R³F0  W>~c³"ðÈìøÖ²ÇBÙ³±+
½ò9tµ°õ
Run Code Online (Sandbox Code Playgroud)

我尝试将Blob类型设置为application/octet-stream,并且还在没有指定responseType的情况下执行$ http.get.

如何创建正确的Blob文件?我需要Blob File来创建File对象,它是实现逻辑的入口数据,用于以幻灯片形式显示带有模态的文件.我已经为File类型的文件实现了逻辑,这些文件是由输入表单创建的 - 实现是在上传到服务器之前完成的.现在事实证明服务器不会向我返回相同的文件,但只返回文件的URL,这创建了一个从url转换为File的想法,以便不再重复该逻辑.

javascript encoding file angularjs

2
推荐指数
1
解决办法
6174
查看次数