Làm cách nào để chuyển đổi trang PHP sang PDF bằng PHP?

Định dạng PDF hoặc Tài liệu Di động là loại tệp phổ biến thường được sử dụng cho các tài liệu trực tuyến. Thật tuyệt vời khi phân phối nội dung bằng văn bản có thể tải xuống và thường được các chính phủ cũng như doanh nghiệp sử dụng. Vì đây là định dạng quen thuộc với tất cả mọi người nên nhiều ứng dụng cho phép người dùng chuyển đổi các loại tài liệu khác sang định dạng PDF. PHP là một ngôn ngữ lập trình tích hợp khả năng chuyển đổi sang PDF. Các tập lệnh PHP có thể được sử dụng để chuyển đổi các loại tệp như HTML thành tệp PDF

HTML sang PDF bằng HTML2FPDF

Bước 1

Tải xuống các tệp Thư viện lớp HTML2FPDF (xem Tài nguyên)

Bước 2

Dán đoạn mã sau vào Notepad

yêu cầu ('html2fpdf. php');

$pdf=HTML2FPDF mới();

$pdf->AddPage();

$fp = fopen("tệp của bạn. html","r");

$strContent = fread($fp, kích thước tệp("mẫu. html"));

fclose($fp);

$pdf->WriteHTML($strContent);

$pdf->Output("tệp của bạn. pdf");

echo "Tệp PDF được tạo thành công. “;

?>

Thay thế "tệp của bạn. html" với tên của tệp HTML mà bạn muốn chuyển đổi và "yourfile. pdf" bằng tên tệp PDF mong muốn của bạn

Bước 3

Lưu nó dưới dạng tệp PHP

Bước 4

Tải lên tệp PHP của bạn, tệp Thư viện lớp HTML2FPDF và tệp HTML mà bạn muốn chuyển đổi trong cùng một thư mục trên trang web của mình

Tạo tài liệu PDF từ một trang web thông qua PHP có thể gặp sự cố. Nó thường là một cái gì đó có vẻ khá đơn giản, nhưng thực sự tạo ra tài liệu có thể khó khăn và tốn thời gian

Có một số thư viện có sẵn cho phép bạn tạo tài liệu PDF, nhưng trên thực tế, chúng giải quyết được một vấn đề và đưa ra một số vấn đề khác. Các gói tồn tại dưới dạng trình chuyển đổi HTML sang PDF hoặc cho phép bạn tạo tệp PDF bằng cách đặt các phần tử vào tài liệu

Tạo tệp PDF theo cách thủ công thường không phải là một cách hay chỉ vì quá trình này tốn rất nhiều thời gian và khó kiểm tra. Bạn có thể sẽ phải dành thời gian để tạo một công cụ kết xuất chỉ cho mục đích này và điều đó sẽ mất thời gian để tạo và duy trì

Trình tạo HTML sang PDF có vẻ là một ý tưởng tuyệt vời và chúng từng là một cách khá tốt để chuyển đổi trang web thành tài liệu PDF. Chúng hoạt động bằng cách lấy HTML và CSS và xử lý phần này để tạo bố cục trang trong tài liệu PDF. Thật không may, các thư viện có sẵn không thể theo kịp tiến độ của CSS và do đó không hoạt động tốt với các kỹ thuật định vị hiện đại như flex. Theo kinh nghiệm của tôi, bạn có thể dành một lượng thời gian đáng kể để chỉnh sửa và sửa trang web để hoạt động với trình tạo PDF

Có lẽ cách tốt nhất để hiển thị HTML và CSS là sử dụng trình duyệt web và nhiều trình duyệt web có khả năng tạo tài liệu PDF qua giao diện in. Điều này dẫn tôi đến việc xem liệu tôi có thể dễ dàng kết hợp PHP với trình duyệt web để tạo các tài liệu PDF đẹp mắt một cách nhanh chóng và dễ dàng hay không. Chrome hoặc Chromium tương đương mã nguồn mở của nó thường được điều khiển từ xa để hỗ trợ kiểm tra hành vi. Trình duyệt này cũng có thể được sử dụng để hiển thị tài liệu PDF

Nghiên cứu ban đầu của tôi cho thấy rằng có một số API có sẵn cung cấp cơ sở này. Bạn chỉ cần cung cấp cho API một URL hoặc một số đánh dấu và yêu cầu đổi lại một tệp PDF. Trong khi các giải pháp này hoạt động khá tốt, tôi muốn một cái gì đó tôi có thể cài đặt trên máy chủ để tránh mọi vấn đề về giới hạn tốc độ (hoặc chi phí). Ngoài ra còn có vấn đề về quyền truy cập và quyền riêng tư vì hầu hết thời gian các tài liệu PDF sẽ tạo hóa đơn và do đó, việc gửi dữ liệu cá nhân tới API của bên thứ ba có thể không phải là giải pháp tốt nhất

Thư viện Chrome PHP cung cấp một cơ chế để hiển thị Chrome với PHP, nghĩa là bạn có thể tương tác với nó thông qua PHP giống như bạn làm với bất kỳ trình duyệt nào khác. Điều này có nghĩa là bạn có thể truy cập các trang thông qua Chrome và sau đó tạo tài liệu PDF dựa trên nội dung đó

Để cài đặt gói, bạn cần chạy lệnh soạn thảo sau

composer require chrome-php/chrome

Sau khi gói được cài đặt, bạn có thể bắt đầu sử dụng gói bằng cách bao gồm tính năng tự động tải của nhà soạn nhạc. php và tạo lớp HeadlessChromium/BrowserFactory chính

Điều tuyệt vời của gói này là khi tạo đối tượng BrowserFactory, nó sẽ cố gắng phát hiện sự hiện diện của Chromium trên hệ thống của bạn. Bạn cũng có thể cung cấp một chuỗi trỏ đến phiên bản Chrome được cài đặt cục bộ, nghĩa là bạn có thể đóng gói Chrome thành một gói duy nhất mà bạn có thể tương tác bằng cách sử dụng PHP

Nếu chưa cài đặt Chromium, bạn có thể tải xuống phiên bản dành cho nền tảng của mình từ trang web tải xuống Chromium. Nhìn vào cuối trang tải xuống để biết danh sách các hệ điều hành mà bạn có thể tải xuống tệp thực thi cho. Sau khi tải xuống, bạn có thể giải nén Chrome vào dự án của mình và tham chiếu nó thông qua hàm tạo BrowserFactory

Nếu bạn đang chạy cái này trên Linux thì bạn chỉ cần tham khảo tệp thực thi chrome

$browserFactory = new BrowserFactory('./chrome-linux/chrome');

Nếu bạn đang dùng Mac, mọi thứ sẽ phức tạp hơn một chút. Chromium xuất hiện dưới dạng. gói ứng dụng, giống như một thư mục. Bạn cần đi sâu vào gói để trỏ đến tệp thực thi chính xác bên trong

$browserFactory = new BrowserFactory('./chrome-mac/Chromium.app/Contents/MacOS/Chromium');

Lưu ý rằng nếu bạn đang sử dụng Chromium trên máy Mac, bạn sẽ cần đảm bảo rằng ứng dụng đã được đăng ký với hệ điều hành bảo mật. Nếu bạn không làm điều này, ứng dụng sẽ bị chặn và bạn sẽ chỉ nhận được thông báo lỗi

Với nhà máy trình duyệt được tạo, bạn có thể tạo một phiên bản của trình duyệt. Điều này sẽ bắt đầu một phiên bản Chrome mà sau đó bạn có thể tương tác với

$browser = $browserFactory->createBrowser();

Có một số tùy chọn mà bạn có thể chuyển đến phương thức createBrowser() ảnh hưởng đến cách trình duyệt sẽ hoạt động. Ví dụ: chế độ không đầu được bật theo mặc định, vì vậy để tắt chế độ không đầu, bạn sẽ chuyển "không đầu" thành "sai", như thế này

// Disable headless mode.
$browser = $browserFactory->createBrowser(['headless' => false,]);

Với đối tượng trình duyệt này trong tay, chúng ta có thể tạo một trang và điều hướng đến trang đó, đợi quá trình điều hướng kết thúc. Bạn cũng nên đóng trình duyệt sau khi sử dụng xong

// Create a new page and navigate to an URL.
$page = $browser->createPage();
$url = 'https://www.hashbangcode.com/article/drupal-9-getting-good-score-google-pagespeed-insights';
$page->navigate($url)->waitForNavigation();

// Close the browser.
$browser->close();

Ví dụ trên không thực sự làm bất cứ điều gì, nó chỉ thực hiện một yêu cầu GET đối với một điểm cuối. Để lưu trang dưới dạng tài liệu PDF, chúng tôi cần sử dụng đối tượng trang để tạo tài liệu PDF và sau đó lưu tài liệu này vào một tệp mà chúng tôi sẽ gọi là tải xuống. pdf

// Create a new page and navigate to an URL.
$page = $browser->createPage();
$url = 'https://www.hashbangcode.com/article/drupal-9-getting-good-score-google-pagespeed-insights';
$page->navigate($url)->waitForNavigation();

// Generate PDF document.
$pdf = $page->pdf();
$pdf->saveToFile('download.pdf');

// Close the browser.
$browser->close();

Vì trình duyệt có thể gặp sự cố trong khi tìm nạp trang nên chúng tôi cần gói mã trong câu lệnh "thử/cuối cùng", với bước cuối cùng là luôn đóng trình duyệt. Điều này tạo ra khả năng phục hồi tốt hơn trong mã và ngăn Chrome ăn bộ nhớ nếu mã không hoàn thành. Đặt tất cả những thứ này lại với nhau, chúng ta có được những điều sau đây

________số 8_______

Tài liệu PDF kết quả ở đây khớp chính xác với giao diện của trang web khi được in. Đây là một cân nhắc quan trọng để nhận ra ở đây. Tài liệu PDF được tạo thông qua chức năng in của Chrome, tính năng này sẽ tính đến mọi kiểu CSS in mà bạn có trên trang. Nếu bạn muốn xem tệp PDF trông như thế nào trước khi bắt đầu quá trình này thì bạn chỉ cần sử dụng trình duyệt của mình để in tài liệu

Không phải lúc nào chúng ta cũng phải chuyển một URL đến đối tượng trang, chúng ta cũng có thể chuyển một loạt HTML. Trong ví dụ sau, tôi đã tạo một khối HTML rất đơn giản mà sau đó tôi sẽ hiển thị dưới dạng tài liệu PDF

createBrowser();

try {
    // Create a new page and navigate to an URL.
    $page = $browser->createPage();

    $page->setHtml('

Title

Content

'); // Generate PDF document. $pdf = $page->pdf(); $pdf->saveToFile('generated.pdf'); } finally { // Close the browser. $browser->close(); }

Nếu bạn muốn truyền tệp tới người dùng thay vì ghi tệp vào tệp thì điều này có thể thực hiện được thông qua các dòng mã này. Dữ liệu từ tài liệu PDF được mã hóa base64, vì vậy chúng tôi chỉ cần giải mã dữ liệu đó trước khi gửi cho người dùng. Trong ví dụ sau, chúng tôi đang đặt một số tiêu đề để cho phép tệp PDF được tải xuống dưới dạng tệp có tên "đã tải xuống. pdf" rồi gửi dữ liệu cho người dùng.  

0

Phương thức pdf() có thể nhận một tập hợp các tùy chọn cho phép thay đổi tệp PDF theo nhiều cách khác nhau. Đây chỉ là những chức năng giống nhau. Hầu hết các tùy chọn này xử lý việc thay đổi lề và chiều rộng của giấy, nhưng cài đặt printBackground có thể hữu ích nếu bạn muốn tệp PDF của mình được in với nền do biểu định kiểu in của bạn đặt

1

Tôi mới chỉ thực sự tìm hiểu sơ qua về thư viện Chrome PHP ở đây, nhưng nó được viết rất tốt và có vẻ có thể mở rộng. Thực tế là bạn có thể nhúng phiên bản Chrome đã tải xuống, đây có lẽ là tính năng mạnh mẽ nhất ở đây. Mặc dù tạo PDF bằng thư viện này rất hữu ích nhưng tôi dự định sẽ sử dụng thư viện này nhiều hơn trong tương lai vì nó cung cấp một cách tuyệt vời để tương tác với Chrome bằng cách sử dụng PHP thuần túy

PHP

pdf

Trình duyệt Chrome

Phil Norton

Được viết bởi. Philip Norton

Phil là người sáng lập và quản trị viên của #. viết mã và là một chuyên gia CNTT làm việc ở Tây Bắc Vương quốc Anh. Tốt nghiệp năm 2003 tại Đại học Aberystwyth với bằng Thạc sĩ Khoa học Máy tính Phil trước đây đã từng làm quản trị viên cơ sở dữ liệu, trên bàn trợ giúp CNTT, huấn luyện viên hệ thống, kiến ​​trúc web, tư vấn khả năng sử dụng, blogger và chuyên gia SEO. Phil có nhiều kinh nghiệm xây dựng và duy trì các trang web PHP cũng như làm việc với các công nghệ liên quan như JavaScript, HTML, CSS, XML, Flex, Apache, MySQL và Linux

Làm cách nào để chuyển đổi trang HTML thành PDF trong PHP?

Bạn cũng có thể chuyển đổi mã HTML thô, chỉ cần sử dụng phương thức convertString() thay vì convertUrl(). $pdf = $client->convertString("");"); Hoặc sử dụng convertFile() để chuyển đổi cục bộ . $pdf = $client->convertFile("/path/to/MyLayout.

Làm cách nào để chuyển đổi một trang PHP thành PDF trong PHP?

PHP to PDF .
Mở tệp PHP của bạn bằng ứng dụng tiêu chuẩn trên máy tính của bạn như bình thường
Đi tới Tệp -> In hoặc chỉ cần nhấn. Điều khiển. +P. .
Chọn "Microsoft XPS Document Writer" làm máy in của bạn
Nhấp vào "OK" hoặc "In"
Chọn đích cho tệp XPS của bạn và nhấp vào "Lưu"

Tôi có thể chuyển đổi PHP sang PDF không?

Đây là cách chuyển đổi PHP sang PDF và thay đổi nó một cách nhanh chóng và dễ dàng. Nhập tệp bạn cần chuyển đổi bằng một trong các tùy chọn có sẵn. Kéo và thả nó vào khu vực được đánh dấu, duyệt nó từ bộ nhớ thiết bị của bạn hoặc đám mây. Tạm dừng trong khi nó đang xử lý và xem công cụ tự động chuyển đổi PHP sang PDF

Làm cách nào để tạo tệp PDF bằng mã PHP?

php yêu cầu('. /fpdf. php'); . '); . Upon execution, the PHP script will generate a PDF file in your browser.