<?php
function read_pdf($file) {
if (strtolower(pathinfo($file, PATHINFO_EXTENSION)) != 'pdf') {
die('非 PDF 檔案');
}
if (!file_exists($file)) die('檔案不存在');
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="' . basename($file) . '"');
header('Content-Length: ' . filesize($file));
readfile($file);
}
read_pdf('Python_study.pdf');
Content-Disposition: inline 讓瀏覽器直接顯示而非下載。
PDF2SWF(SWFTools 套件)pdf2swf input.pdf -o output.swf -f -T 9 -t<script src="pdfobject.js"></script>
<script src="jquery-1.8.0.min.js"></script>
<script>
$(function() {
// 方式一:自動嵌入
// var myPDF = new PDFObject({url: "1.pdf"}).embed();
// 方式二:指定容器
var viewer = new PDFObject({url: "1.pdf"}).embed("#pdfobj");
// 方式三:配置物件
// var opts = {url: "1.pdf"};
// var myPDF = new PDFObject(opts).embed();
});
</script>
<div id="pdfobj"></div>
| 維度 | 直接輸出 | FlexPaper+SWF |
|---|---|---|
| 實作難度 | 低 | 高(需轉換工具、SWF 播放器) |
| 瀏覽速度 | 大檔案載入慢 | 分頁載入、縮放流暢 |
| 行動裝置 | 支援良好 | 需 Flash,現代瀏覽器已棄用 |
| 搜尋/選取文字 | 原生支援 | 支援 |
推薦使用 PDF.js(Mozilla 開發,純 JS 渲染 PDF,無需 Flash、支援所有現代瀏覽器):
<script src="pdf.js"></script>
<canvas id="pdf-canvas"></canvas>
<script>
pdfjsLib.getDocument('1.pdf').promise.then(function(pdf) {
pdf.getPage(1).then(function(page) {
var viewport = page.getViewport({scale: 1.5});
var canvas = document.getElementById('pdf-canvas');
var ctx = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
page.render({canvasContext: ctx, viewport: viewport});
});
});
</script>