Làm cách nào để đọc tệp PDF bằng PHP?
Chúng ta đã biết cách xem pdf trên trình duyệt được hướng dẫn chi tiết tại đây. Tuy nhiên, điều này sẽ hiển thị pdf trên cùng một trang mà chúng tôi đã yêu cầu Show
Do đó, có những trường hợp chúng ta cần mở pdf trên một tab khác thay vì cùng một trang. Trong những trường hợp như vậy, chúng tôi có thể sử dụng liên kết Thuộc tính đích href mô tả nơi tài liệu được liên kết sẽ mở Hãy cùng khám phá với các trường hợp sau đây với ví dụ Mở tệp pdf trong tab mới được lưu trữ trên máy chủ webClick here to open the file Giải trình. Trường hợp tập tin “đường dẫn/tên tập tin. pdf” là vị trí của tệp pdf trên máy chủ web. Sau khi nhấp vào văn bản liên kết, nó sẽ mở một tab mới và hiển thị tệp pdf Tạo pdf và mở trên trình duyệtTrong những trường hợp như vậy, chúng tôi có thể xác định đường dẫn href cho tập lệnh nơi chúng tôi đã viết mã tạo pdf. Ví dụ Click here to open the file Giải trình. Tên tệp được cung cấp renderPdf. php nằm trên thư mục gốc. Chúng tôi có thể đặt tập lệnh ở bất kỳ đâu trên máy chủ và cung cấp đường dẫn kết xuấtPdf. tệp php phải xác định tiêu đề php và thay đổi mã bắt buộc để tạo chế độ xem pdf trên trình duyệt. Đối với các mẫu mã, chúng ta có thể tham khảo TL; DR Để trích xuất siêu dữ liệu và văn bản PDF đơn giản, hãy sử dụng pdfparser. Đối với các tùy chọn nâng cao, hãy thử pdftotext và pdfinfo từ Poppler. Để nối hoặc tách các tệp PDF, mã hóa chúng hoặc áp dụng hình mờ, hãy sử dụng pdftk. Để tạo ảnh chụp màn hình JPEG hoặc PNG của PDF, hãy sử dụng ImageMagick hoặc pdftocairo Trong bài viết trước tôi đã mô tả một số công cụ có thể được sử dụng cùng với PHP để tạo tệp PDF. Trước đó, việc lựa chọn không hề dễ dàng và chúng tôi có rất nhiều tiêu chí để xem xét khi chọn công cụ tốt nhất. Hôm nay chúng ta sẽ duyệt các khả năng để đọc và chỉnh sửa các tệp PDF hiện có Thư viện PHP gốcMột lần nữa, chúng ta sẽ bắt đầu từ việc kiểm tra xem có bất kỳ thư viện PHP nào để thao tác với các tệp PDF mà không phụ thuộc vào các công cụ nhị phân bên ngoài không pdfparserCó một thư viện thú vị được gọi là smalot/pdfparser. Nó có hơn 1500 sao trên GitHub. Nó phân tích một tệp PDF thành một mảng các đối tượng tài liệu được xử lý thêm để có được những gì chúng ta cần Thư viện thuận tiện vì nó hỗ trợ cả phân tích cú pháp một tệp hiện có hoặc một chuỗi có dữ liệu PDF. Nó cho phép bạn trích xuất siêu dữ liệu và văn bản thuần túy từ một tài liệu cùng với các đối tượng khác (hình ảnh, phông chữ). Tuy nhiên, các tệp được mã hóa chưa được hỗ trợ. Bạn có thể kiểm tra thư viện tại trang demo của nó
smalot/pdfparser có hỗ trợ thương mại từ Actualys trình phân tích cú pháp tc-lib-pdfĐây là thư viện được tạo bởi người tạo TCPDF, một thư viện nổi tiếng tạo các tệp PDF. Trình phân tích cú pháp này thu hút ít sự quan tâm hơn trình phân tích cú pháp đầu tiên, mặc dù tác giả đã có hơn 15 năm kinh nghiệm xử lý các tệp PDF Bạn có thể so sánh cả hai thư viện bằng cách phân tích các tài liệu khác nhau. Chúng có thể khác nhau, đặc biệt là về cách xử lý các tệp bị hỏng FPDITôi đã làm quen với thư viện này khi nhận được báo cáo lỗi về mô-đun đánh dấu chìm trong một hệ thống sách điện tử nào đó. Mô-đun đã nhận được một tệp PDF, phân tích cú pháp bằng FPDI, tạo hình mờ bằng FPDF và đóng dấu nó trên tất cả các trang Vấn đề là phiên bản miễn phí của FPDI chỉ hỗ trợ PDF phiên bản 1. 4 trở xuống. Để hỗ trợ các phiên bản tài liệu cao hơn, bạn phải mua một thư viện đầy đủ. Và đó là nội dung của báo cáo lỗi. Chúng tôi quyết định chuyển sang một công cụ khác, Công cụ dòng lệnhCông cụ dòng lệnh đầu tiên tôi sử dụng là pdftk. Tôi đã sử dụng nó để nối các tài liệu riêng biệt thành một, áp dụng hình mờ và trích xuất siêu dữ liệu cơ bản, chẳng hạn như một số trang. Nó hỗ trợ tất cả các định dạng PDF không giống như thư viện FPDI. Điều duy nhất còn thiếu là tính năng trích xuất văn bản Nhu cầu trích xuất văn bản thuần túy từ một tài liệu đã dẫn tôi đến thư viện Apache PDFBox. Nó được viết bằng Java và, như tôi đã mô tả trước đây, nó cung cấp một số tính năng rất hay. Tuy nhiên, trong thế giới PHP, chúng tôi chỉ có thể truy cập trình bao bọc CLI cho thư viện đó có một số tùy chọn hạn chế Sau đó, tôi phát hiện ra thư viện Poppler, được cho là hỗ trợ đầy đủ tiêu chuẩn ISO 32000-1 cho PDF. Thư viện C++ này có thể được truy cập thông qua các công cụ CLI chuyên dụng – , mà chúng ta có thể chạy từ PHP. Ví dụ: công cụ Đôi khi bạn có thể muốn tạo ảnh chụp màn hình PNG hoặc JPEG của tài liệu. Bạn có thể làm điều đó với _______________ từ Poplar hoặc sử dụng ImageMagick _______________. Tại thời điểm viết bài, không có thư viện PHP gốc nào để hiển thị PDF Giấy góiĐối với Có thể truy cập PDFBox CLI qua schmengler/PdfBox Imagemagick và Ghostscript là cơ sở cho trình bao bọc spatie/pdf-to-image Poppler có một số thư viện trình bao bọc PHP
Trên thực tế, hai thư viện này là trình bao bọc cho một trình bao bọc, vì Chọn cái nào?Có một vài cân nhắc cơ bản Các thư viện PHP gốc nên hoạt động độc lập với môi trường máy chủ. Chúng dễ dàng hơn rất nhiều để thiết lập và cập nhật. Công cụ phụ thuộc duy nhất bạn sử dụng là Composer Các công cụ CLI, đặc biệt là các công cụ được viết bằng C/C++, có thể nhanh hơn và sử dụng ít bộ nhớ hơn. Tuy nhiên tôi không có bằng chứng chặt chẽ vào lúc này. Có thể tất cả các tối ưu hóa đi kèm với PHP 7 sẽ khiến điểm này trở nên lỗi thời. Ngoài ra, tôi tin rằng các công cụ C/C++ có nhiều đối tượng hơn và do đó có thể nhận được nhiều hỗ trợ hơn từ cộng đồng Bạn nên chọn một công cụ tốt nhất cho các yêu cầu cụ thể của mình. Hầu hết các công cụ sẽ thực hiện tốt công việc trong khi chỉ cần hiển thị tệp PDF không được mã hóa thành hình ảnh hoặc một số văn bản thuần túy. Nhưng nếu bạn cần kiểm soát nhiều hơn đối với cấu trúc tệp đầu ra hoặc bạn muốn xử lý các tài liệu được mã hóa, thì Đôi khi tôi chợt nhận ra rằng nhiều nhà phát triển chỉ đang phát minh lại bánh xe, đặc biệt là khi có vô số thư viện xử lý PDF cho PHP. Định dạng Tài liệu Di động có gần bảy trăm trang thông số kỹ thuật. Tất cả chúng ta đang vật lộn với cùng một vấn đề xử lý. Đó là lý do tại sao tôi thích chọn những công cụ tốt nhất trong các công nghệ khác nhau và kết nối chúng với các giao diện hơn là kiên trì gắn bó với một công nghệ duy nhất. Làm cách nào để đọc tệp PDF trong PHP?Đưa nó vào trang web được yêu cầu bằng PHP. Tạo một biểu mẫu HTML, trong đó chúng tôi có thể chọn một tệp PDF từ máy tính của bạn và cũng có thể kiểm tra xem phần mở rộng của tệp đó có phải là PDF hay không . Tiếp cận. Đảm bảo bạn đã cài đặt máy chủ XAMPP hoặc máy chủ WAMP trên máy của mình. Trong bài viết này, chúng tôi sẽ sử dụng máy chủ XAMPP.
Làm cách nào để đọc một tệp trong PHP?Tệp đọc PHP - fread()
. Tham số đầu tiên của fread() chứa tên của tệp để đọc và tham số thứ hai chỉ định số byte tối đa để đọc.
Làm cách nào để mở tệp PDF trong cửa sổ bật lên trong PHP?php $filePath = 'tệp/ví dụ. pdf'; . file_exists($filePath)) { echo "Tệp $filePath không tồn tại"; . pdf"; tiêu đề ('Kiểu nội dung. ứng dụng/pdf'); . nội tuyến;
Làm cách nào để lấy hình ảnh từ PDF trong PHP?Cách chuyển đổi PDF thành hình ảnh bằng PHP với ImageMagick . Bước 1. Mở môi trường mã hóa PHP và bắt đầu bằng cách tạo đối tượng tưởng tượng bằng mã. . Bước 2. Bây giờ hãy đọc hình ảnh từ tệp PDF mục tiêu bằng mã. . Bước 3. Ví dụ, để chuyển đổi tất cả các trang PDF của bạn sang định dạng PNG, chỉ cần chạy đoạn mã sau |