Hiển thị PDF trong trình duyệt web


84

Làm cách nào để hiển thị pdf trong trình duyệt web trên trang .html?

Câu trả lời:


120

Tôi sử dụng trình xem PDF có thể nhúng của Google Tài liệu. Các tài liệu không cần phải được tải lên Google Docs, nhưng chúng phải có sẵn trực tuyến.

<iframe src="http://docs.google.com/gview?url=http://path.com/to/your/pdf.pdf&embedded=true" 
style="width:600px; height:500px;" frameborder="0"></iframe>

3
Với giải pháp này một số người dùng không nhìn thấy file PDF mà được google yêu cầu đăng nhập trước.
Philipp Zedler

41
Tôi có một câu hỏi về giải pháp này. Google có lưu trữ bản sao tệp pdf của tôi trong máy chủ của Google không? Quyền riêng tư về nội dung của tôi có được bảo vệ không?
hd.

@Alex để biết chắc chắn, hãy thử ... Tôi sẽ thử -: //docs.google.com/gview? Url =: //path.com/to/your/pdf.pdf&embedded=true dưới dạng iframe src
bradenkeith

Điều này khác / tốt hơn như thế nào so với giải pháp của @ Will để đặt trực tiếp src của iFrame thành pdf? Tôi hiểu rằng liên kết trực tiếp sẽ phụ thuộc vào phía máy khách phần mềm để thực sự hiển thị pdf, nhưng tài liệu google cũng vậy phải không?
Félix Gagnon-Grenier

3
@hd. Có, Google chỉ hiển thị PDF thông qua màn hình nhúng của nó. Tôi không nghĩ rằng họ giữ một bản sao, mặc dù họ sẽ phải dịch nó thành từng trang hiển thị, vì vậy tại một số điểm, tôi hy vọng họ sẽ chuyển đổi sang PNG trên cơ sở từng trang. Đối với bất kỳ ai sử dụng câu trả lời này, xin lưu ý rằng Google có giới hạn băng thông cho các tài liệu không phải của Google Document. Khi hết, tệp PDF sẽ không hiển thị, chỉ là thông báo băng thông đã bị vượt quá và hãy thử lại sau.
Jon

36

thay vì sử dụng iframe và phụ thuộc vào bên thứ ba. Hãy nghĩ đến việc sử dụng flexpaper hoặc pdf.js.

Tôi đã sử dụng PDF.js , nó hoạt động tốt đối với tôi. Đây là bản demo .


3
Làm thế nào nó không phải là một bên thứ ba?
Alex

41
Đó là mã của bên thứ ba chứ không phải là dịch vụ của bên thứ ba.
Collin Anderson

Giải pháp tốt hơn cho ứng dụng cho môi trường VPN.
Erlan

19

ưu tiên sử dụng thẻ đối tượng

<object data='http://website.com/nameoffolder/documentname.pdf#toolbar=1' 
        type='application/pdf' 
        width='100%' 
        height='700px'>

lưu ý rằng bạn có thể thay đổi chiều rộng và chiều cao thành bất kỳ giá trị nào mà bạn vui lòng truy cập http://www.w3schools.com/tags/tag_object.asp


Giống như bạn đã đăng không cung cấp thêm bất kỳ thông tin chi tiết nào cho câu trả lời.
Daniël W. Crompton

2
câu hỏi là Làm cách nào để hiển thị pdf trong trình duyệt web trên trang .html? sử dụng thẻ đối tượng html 5 sẽ giúp ... <object width = "400" height = "400" data = "helloworld.swf"> </object> Sử dụng phần tử này để nhúng đa phương tiện (như âm thanh, video, ứng dụng Java, ActiveX, PDF và Flash) trong các trang web của bạn.
BAKARI SHEGHEMBE

Bạn hoàn toàn đúng, tuy nhiên liên kết đến w3schools không cung cấp thêm thông tin bổ sung cho câu trả lời như bạn đã viết.
Daniël W. Crompton

Điều này sẽ không hoạt động nếu bạn không có bất kỳ người xem pdf trong trình duyệt của bạn
Umair Hamid

1
Đúng là như vậy. Một điều tốt về thẻ đối tượng là nó có thể phát hiện ra điều đó. Và nó cho phép bạn đặt thêm các tùy chọn để khách truy cập có thể xem trang thông qua gdrive, onedrive và v.v. <object data = ' example.com/path.pdf#toolbar=1'type='application/pdf ' width = ' 100% 'height =' 700px '> <p> Có vẻ như trình duyệt Web của bạn không được định cấu hình để hiển thị các tệp PDF. Đừng lo lắng, chỉ cần <a href=' example.com/path.pdf'> nhấp vào đây để tải xuống tệp PDF. </a> hoặc <a href = " drive.google.com/[drive path] / view? Usp = sharing "> nhấp vào đây để xem </a> </p> </object>
BAKARI SHEGHEMBE

19

Cách đơn giản nhất là tạo iframe và đặt nguồn thành URL của PDF.

(những nhà thiết kế HTML điên rồ) Tôi đã tự mình thực hiện nó, hoạt động tốt, trình duyệt chéo (thu thập thông tin vào boongke).


8
không làm việc nếu bạn không có các plugin pdf được cài đặt trên trình duyệt IE
Collin Anderson

3
Làm thế nào là điều đó rõ ràng? Có vẻ như một phụ lục hữu ích cho "trình duyệt chéo".
showdev

1
điều này dễ thiết lập hơn rất nhiều so với tất cả các bên thứ 3 khác. Tôi không biết nó hoạt động như thế nào trong năm 2011 nhưng trong năm 2016 nó rất nhanh và đầy đủ các tính năng hữu ích. Cũng có vẻ hoạt động tốt trên Chrome, FF và IE
slaw

1
Nó không hoạt động đối với tôi trong Chrome trên điện thoại Android: nó tải xuống pdf và mở nó trong ứng dụng riêng biệt (nếu bạn có). Và tôi không thể cuộn đến các trang khác trong Safari trên iOS. Tôi chỉ nhìn thấy trang đầu tiên của pdf.
Vasiliy Zverev

7

Plugin của trình duyệt kiểm soát các cài đặt đó, vì vậy bạn không thể ép buộc. Tuy nhiên, bạn có thể làm một cách đơn giản <a href="whatver.pdf">thay vì <a href="whatever.pdf" target="_blank">.


Cuối cùng một người biết những gì họ đang nói về câu trả lời này. Đây là câu trả lời tốt nhất và đơn giản nhất. @jschorr là hoàn toàn chính xác. Trình duyệt kiểm soát cài đặt này. Hiệu quả nhất !!
Val

4

Miễn là bạn lưu trữ tệp PDF, thuộc tính đích là con đường để thực hiện. Nói cách khác, đối với các tệp tương đối, sử dụng thuộc tính target với giá trị _blank sẽ hoạt động tốt.

<e>
  <a target="_blank" alt="StackExchange Handbook" title="StackExchange Handbook"
     href="pdfs/StackExchange_Handbook.pdf">StackExchange Handbook</a>

Đối với đường dẫn tuyệt đối động cơ sẽ đi đến U nified R esource L ocator và mở nó họ. Vì vậy, hãy loại bỏ thuộc tính mục tiêu.

<e>
  <a alt="StackExchange Handbook" title="StackExchange Handbook"
     href="protocol://url/StackExchange_Handbook.pdf">StackExchange Handbook</a>

Trong cả hai trường hợp, trình duyệt sẽ hoạt động hiệu quả.


Giải pháp này làm việc theo cách tốt hơn cho tôi so với câu trả lời được chấp nhận. Cũng cần lưu ý rằng tôi làm việc với một số thông tin nhạy cảm, vì vậy việc không công khai tài liệu của tôi là quan trọng đối với tôi.
Casper Wilkes


3

Bạn có thể sử dụng mã này:

<embed src="http://domain.com/your_pdf.pdf" width="600" height="500" alt="pdf" pluginspage="http://www.adobe.com/products/acrobat/readstep2.html">

Hoặc sử dụng trình xem PDF có thể nhúng của Google Tài liệu:

<iframe src="http://docs.google.com/gview?url=http://domain.com/your_pdf.pdf&embedded=true" 
style="width:600px; height:500px;" frameborder="0"></iframe>

1

Bạn cũng có thể có phương pháp GoogleDoc đơn giản này.

<a  style="color: green;" href="http://docs.google.com/gview?url=http://domain//docs/<?php echo $row['docname'] ;?>" target="_blank">View</a>

Điều này sẽ tạo ra một trang mới để bạn xem tài liệu mà không làm sai lệch luồng của bạn.


Điều này hoạt động tốt, cảm ơn. Nhưng trong trường hợp, nếu người dùng muốn xem bản pdf mà không có kết nối internet thì sao?
Người dùng

bạn có thể sử dụng thư viện JQuery như pdf.js github.com/mozilla/pdf.js .. 2. Kiểm tra PDFObject là một thư viện Javascript để nhúng PDF vào các tệp HTML. Nó xử lý tương thích trình duyệt khá tốt và rất có thể sẽ hoạt động trên IE8.
Asuquo 12

0

Giải pháp đơn giản là đặt nó trong iframe và hy vọng rằng người dùng có một trình cắm hỗ trợ nó.

(Tôi không biết, plugin Acrobat là một nguồn tài nguyên và nguồn gây mất ổn định đến mức tôi nên xóa nó khỏi bất kỳ trình duyệt nào mà nó chạm vào).

Giải pháp phức tạp, nhưng tương đối phổ biến là hiển thị nó trong một applet flash.


0

Chúng tôi kết xuất các trang tệp PDF dưới dạng tệp PNG trên máy chủ bằng JPedal (một thư viện java). Điều đó, kết hợp với một số javascript, cho phép chúng tôi kiểm soát cao đối với việc hiển thị và điều hướng.


Tôi nghĩ điều này là tuyệt vời, nhưng cần nhiều nguồn lực.
eveevans

Nhưng người dùng không thể sao chép / dán văn bản từ PNG.
Vasiliy Zverev

0

Gần đây, tôi cần cung cấp phiên bản tài liệu .pdf thân thiện với thiết bị di động hơn, đáp ứng vì màn hình điện thoại hẹp yêu cầu phải cuộn sang phải và sang trái rất nhiều. Để chỉ cho phép cuộn dọc và tránh cuộn ngang, tôi thực hiện các bước sau:

  • Mở .pdf trong trình duyệt Chrome
  • Nhấp vào Mở bằng Google Tài liệu
  • Nhấp vào Tệp> Tải xuống> Trang Web
  • Nhấp vào tài liệu đã tải xuống để giải nén nó
  • Nhấp vào tài liệu HTML đã giải nén để mở nó trong trình duyệt Chrome
  • Nhấn fn F12 để mở Chrome Dev Tools
  • Dán bản sao (document.documentElement.outerHTML.replace (/ padding: 72pt 72pt 72pt 72pt; /, '') .replace (/ margin-right:. *? Pt / g, '')) vào Bảng điều khiển và nhấn Enter để sao chép tài liệu đã chỉnh sửa vào khay nhớ tạm
  • Mở trình soạn thảo văn bản (ví dụ: Notepad), hoặc trong trường hợp của tôi là VSCode, hãy dán và lưu bằng đuôi .html.

Kết quả trông tốt và có thể sử dụng được trong cả môi trường máy tính để bàn và thiết bị di động.



Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.