强制 PDF 显示内联,即使 Content-Disposition 另有说明?
Posted
技术标签:
【中文标题】强制 PDF 显示内联,即使 Content-Disposition 另有说明?【英文标题】:Force PDF to display inline, even when Content-Disposition says otherwise? 【发布时间】:2013-06-13 23:20:48 【问题描述】:我正在将 PDF 嵌入来自服务器的 IFRAME,不幸的是,该服务器将它们作为 Content-Disposition:attachment;
提供服务。
是否有任何方法可以强制浏览器内嵌显示 PDF?不幸的是,我无法更改 iframe 中链接的 PDF 文件的标题。
【问题讨论】:
能否在自己的服务器端代码中下载,然后将客户端的 IFRAME SRC 指向自己的页面? 我可以,虽然这不太理想。不过可能是唯一的解决方案。 找到任何解决方案? ..有同样的问题 【参考方案1】:您可以使用 pdf.js 库在 html 页面中呈现 pdf。 Mozilla Pdf.js
HTML 代码
<!DOCTYPE html>
<html>
<head>
<title>PDF.js Learning</title>
</head>
<body>
<script type="text/javascript" src="pdf.js"></script>
<canvas id="the-canvas"></canvas>
</body>
</html>
JAVASCRIPT 代码
var url = "www.pdf995.com/samples/pdf.pdf";
PDFJS.getDocument(url)
.then(function(pdf)
return pdf.getPage(1);
)
.then(function(page)
var scale = 1.5;
var viewport = page.getViewport(scale);
// Get canvas#the-canvas
var canvas = document.getElementById('the-canvas');
// Fetch canvas' 2d context
var context = canvas.getContext('2d');
// Set dimensions to Canvas
canvas.height = viewport.height;
canvas.width = viewport.width;
// Prepare object needed by render method
var renderContext =
canvasContext: context,
viewport: viewport
;
// Render PDF page
page.render(renderContext);
);
【讨论】:
这行得通吗?因为我们有一个可下载的附件,而不是一个 pdf 文件以上是关于强制 PDF 显示内联,即使 Content-Disposition 另有说明?的主要内容,如果未能解决你的问题,请参考以下文章
Mpdf 不从内联 chrome 浏览器下载 pdf(但显示 pdf)
Laravel - 在存储中显示 PDF 文件而不强制下载?