有没有办法在客户端创建文本文件并提示用户下载它,而不与服务器进行任何交互?我知道我不能直接写入他们的机器(安全性和所有),但是我可以创建并提示他们保存它吗?
如何打印指定的div(无需手动禁用页面上的所有其他内容)?
我想避免使用新的预览对话框,因此使用此内容创建新窗口无用.
该页面包含几个表格,其中一个表格包含我要打印的div - 该表格采用网页的视觉样式设计,不应该以打印方式显示.
当我想要显示Adobe PDF查看器时,哪个是在我的HTML文件中使用的正确/最佳标记?现在我正在使用下面的代码,但是有一些奇怪的副作用(例如它似乎窃取了我设置到另一个INPUT文本框的起始焦点;它似乎与jQueryUI Resizeable类没有很好地兼容;等)
<embed src="abc.pdf" type="application/pdf" />
Run Code Online (Sandbox Code Playgroud)
我甚至可以用OBJECT标签做同样的事情吗?使用一个标签与另一个标签有利有弊吗?
我想为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) 我从此代码返回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文件.
我有一个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文件的起始内容:
根据caniuse,在Microsoft Edge build 10547+中支持元素的download属性,但不支持IE或Safari.<a>
如何在不使用<a>带download属性集的元素或服务器的情况下下载文件对象?
我正在使用 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) 我正在尝试从二进制字符串下载 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)
我在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) 我可以在 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) 在服务器上有存储文件的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的想法,以便不再重复该逻辑.