【问题标题】:PDFJs Viewer.html into a divPDFJs Viewer.html 变成一个 div
【发布时间】:2015-09-13 21:00:48
【问题描述】:
【问题讨论】:
-
This one 正在将 pdfjs 查看器集成到一个角度指令中(但相当糟糕,恕我直言)。同时,您是否碰巧找到了替代方案?
标签:
javascript
angularjs
html
pdfjs
【解决方案1】:
以下示例使用 pdf.js 提供的 javascript api 将 pdf 加载到 div 中。你也可以看到the fiddle。
// If absolute URL from the remote server is provided, configure the CORS
// header on that server.
var url = '//cdn.mozilla.net/pdfjs/helloworld.pdf';
// Loaded via <script> tag, create shortcut to access PDF.js exports.
var pdfjsLib = window['pdfjs-dist/build/pdf'];
// The workerSrc property shall be specified.
pdfjsLib.GlobalWorkerOptions.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';
// Asynchronous download of PDF
var loadingTask = pdfjsLib.getDocument(url);
loadingTask.promise.then(function(pdf) {
console.log('PDF loaded');
// Fetch the first page
var pageNumber = 1;
pdf.getPage(pageNumber).then(function(page) {
console.log('Page loaded');
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
var renderContext = {
canvasContext: context,
viewport: viewport
};
var renderTask = page.render(renderContext);
renderTask.then(function () {
console.log('Page rendered');
});
});
}, function (reason) {
// PDF loading error
console.error(reason);
});
#the-canvas {
border:1px solid black;
}
<script src="//mozilla.github.io/pdf.js/build/pdf.js"></script>
<h1>PDF.js 'Hello, world!' example</h1>
<div>
<canvas id="the-canvas"></canvas>
</div>
【解决方案2】:
像这样将你的 pdf 文件的源代码放在 iframe 中:
<div><iframe src="/pdfjs/viewer.html/{src of PDF file}" style="position: relative; top: 0; bottom: 0; left: 0; width: 100%; height: 700px; border: 0"></iframe></div>
也许对你有帮助
【解决方案3】:
您绝对可以将 viewer.html 放在 <div> 中。
以the source 开头并换行<div id="outerContainer">
在您自己的 <div> 中,然后您可以根据自己的喜好设置样式:
<div id="myContainer">
<div id="outerContainer">
<div id="sidebarContainer">
</div> <!-- sidebarContainer -->
<div id="mainContainer">
</div> <!-- mainContainer -->
<div id="overlayContainer" class="hidden">
</div> <!-- overlayContainer -->
</div> <!-- outerContainer -->
</div>
请注意,使宽度小于大约 800 像素会挤压工具栏项。