Làm cách nào để tạo PDF trong php động bằng TCPDF?

Lorem Ipsum chỉ đơn giản là văn bản giả của ngành công nghiệp in ấn và sắp chữ. Lorem Ipsum là văn bản giả tiêu chuẩn của ngành công nghiệp kể từ những năm 1500, khi một nhà in không xác định lấy một kho mẫu và xáo trộn nó để tạo thành một cuốn sách mẫu. Nó đã tồn tại không chỉ năm thế kỷ, mà còn là bước nhảy vọt sang sắp chữ điện tử, về cơ bản vẫn không thay đổi.

'

Trong bài viết này, tôi sẽ minh họa cách tạo tệp pdf từ html trong PHP bằng thư viện mã nguồn mở TCPDF

 

 

Có rất nhiều thư viện nguồn mở trong php có thể được sử dụng để tạo tệp pdf từ html, nhưng hầu hết chúng đều thiếu một số tính năng của pdf như cách thao tác văn bản được viết bằng ngôn ngữ Phải sang Trái, cũng như xử lý các loại phông chữ khác nhau

 

Mặt khác, TCPDF là một thư viện nguồn mở mạnh mẽ có hầu hết tất cả các tính năng cần thiết để tạo tệp pdf hoạt động tốt, từ các tính năng này

  • tất cả các định dạng trang tiêu chuẩn, định dạng trang tùy chỉnh, lề tùy chỉnh và đơn vị đo lường
  • UTF-8 Unicode và các ngôn ngữ từ phải sang trái
  • Phông chữ TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 và CID-0
  • các phương pháp xuất bản một số mã XHTML + CSS, Javascript và Biểu mẫu
  • hình ảnh [PNG, JPG, GIF], đồ họa [hình học] và phương pháp chuyển đổi
  • quản lý đầu trang và chân trang tự động
  • mã hóa tài liệu lên đến 256 bit và chứng nhận chữ ký số

Kiểm tra trang web chính thức của TCPDF để biết phần còn lại của các tính năng có sẵn

 

Tải xuống & Sử dụng

Chuyển đến kho lưu trữ github của TCPDF và sao chép hoặc tải xuống

Bạn cần thêm thư viện vào thư mục dự án của mình và sau đó đưa nó vào như thế này

include_once['TCPDF/tcpdf.php'];

Bằng cách bao gồm tcpdf chính. php bạn có quyền truy cập vào tất cả các lớp và phương thức

 

Cấu hình

Tệp cấu hình chính nằm trong TCPDF/config/tcpdf_config. php. Tệp này chứa cấu hình chung áp dụng theo cơ sở tài liệu khi tạo tệp pdf. Cố gắng bỏ ghi chú và thay đổi các giá trị cấu hình để phù hợp với nhu cầu của bạn

Điều chỉnh các giá trị cấu hình này

// Installation path [/var/www/html/project folder/TCPDF/]
define ['K_PATH_MAIN', '/var/www/html/pdf-tutorial/TCPDF/'];

// URL path to tcpdf installation folder [//localhost/tcpdf/].
define ['K_PATH_URL', '//localhost/pdf-tutorial/tcpdf/'];

// Path for PDF fonts.
define ['K_PATH_FONTS', K_PATH_MAIN.'fonts/'];

// Default images directory for example used for logos
define ['K_PATH_IMAGES', K_PATH_MAIN.'../images/'];

// Default image logo used be the default Header[] method.
define ['PDF_HEADER_LOGO', 'my_logo.png'];

// Header logo image width in user units.
define ['PDF_HEADER_LOGO_WIDTH', 30];

// Cache directory for temporary files [full path].
define ['K_PATH_CACHE', '/tmp/'];

Các cấu hình trên là các cấu hình cơ bản cần thiết nhưng bạn có thể tự mình khám phá thêm vì chúng tôi không đề cập đến chúng trong hướng dẫn này

Như được hiển thị, tôi đã tạo một thư mục mới cho hình ảnh trong thư mục gốc của dự án, thư mục này sẽ được sử dụng để lưu trữ logo tiêu đề

define ['K_PATH_IMAGES', K_PATH_MAIN.'../images/'];

define ['PDF_HEADER_LOGO', 'my_logo.png'];

Thí dụ

Hãy tạo một tệp mới trong thư mục gốc của dự án có tên là chỉ mục. php với nội dung sau

mục lục. php

include_once['TCPDF/tcpdf.php'];

// create new PDF document
$pdf = new TCPDF[PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false];

$pdf->SetCreator["Wael Salah"];
$pdf->SetAuthor['Wael Salah'];
$pdf->SetTitle['Demonstrating pdf with php'];

$pdf->setHeaderData[PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING, array[0, 6, 255], array[0, 64, 128]];
$pdf->setFooterData[array[0,64,0], array[0,64,128]];

$pdf->setHeaderFont[array[PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN]];
$pdf->setFooterFont[Array[PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA]];

// set default monospaced font
$pdf->SetDefaultMonospacedFont[PDF_FONT_MONOSPACED];

$pdf->SetMargins[PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT];
$pdf->SetHeaderMargin[PDF_MARGIN_HEADER];
$pdf->SetFooterMargin[PDF_MARGIN_FOOTER];

// set auto page breaks
$pdf->SetAutoPageBreak[TRUE, PDF_MARGIN_BOTTOM];

// set image scale factor
$pdf->setImageScale[PDF_IMAGE_SCALE_RATIO];

// ---------------------------------------------------------

// set default font subsetting mode

$pdf->setFont['dejavusans', '', 14, '', true];

$pdf->AddPage[];

$html = SetCreator["Wael Salah"];
$pdf->SetAuthor['Wael Salah'];
$pdf->SetTitle['Demonstrating pdf with php'];

Sau đó, tôi đặt dữ liệu đầu trang và chân trang

$pdf->setHeaderData[PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING, array[0, 6, 255], array[0, 64, 128]];
$pdf->setFooterData[array[0,64,0], array[0,64,128]];

Phương thức setHeaderData[] chấp nhận logo tiêu đề, chiều rộng logo, tiêu đề tiêu đề, văn bản chuỗi tiêu đề, tất cả các hằng số này được xác định trong tệp cấu hình mà chúng tôi đã mô tả ở trên. Hai đối số còn lại biểu thị màu RGB cho văn bản và dòng

Sau đó, tôi đặt phông chữ đầu trang và chân trang như được hiển thị

$pdf->setHeaderFont[array[PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN]];
$pdf->setFooterFont[Array[PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA]];

Hai phương thức đó chấp nhận một mảng với họ phông chữ và cỡ chữ

Điều quan trọng nữa là đặt lề cho tài liệu, điều này đạt được bằng cách gọi các phương thức đó

________số 8_______

Sau đó, tôi đã bật tùy chọn ngắt trang tự động bằng cách gọi SetAutoPageBreak[]. Ngoài ra đối với hình ảnh tôi đặt tỷ lệ tỷ lệ là 1. 25 bằng cách gọi setImageScale[]. Cuối cùng, tôi đặt phông chữ cho văn bản tài liệu bằng cách gọi phương thức setFont[] lấy họ phông chữ, kiểu, kích thước và tệp phông chữ

Bước thứ hai tôi đã thêm một trang mới như thế này

$pdf->AddPage[];

Khi nào bạn cần thêm một trang mới, bạn phải gọi phương thức này. Tiếp theo, tôi đã chỉ định văn bản html sẽ được ghi vào tệp pdf, sau đó chúng tôi gọi phương thức writeHtml[] để ghi html vào trang pdf

// Installation path [/var/www/html/project folder/TCPDF/]
define ['K_PATH_MAIN', '/var/www/html/pdf-tutorial/TCPDF/'];

// URL path to tcpdf installation folder [//localhost/tcpdf/].
define ['K_PATH_URL', '//localhost/pdf-tutorial/tcpdf/'];

// Path for PDF fonts.
define ['K_PATH_FONTS', K_PATH_MAIN.'fonts/'];

// Default images directory for example used for logos
define ['K_PATH_IMAGES', K_PATH_MAIN.'../images/'];

// Default image logo used be the default Header[] method.
define ['PDF_HEADER_LOGO', 'my_logo.png'];

// Header logo image width in user units.
define ['PDF_HEADER_LOGO_WIDTH', 30];

// Cache directory for temporary files [full path].
define ['K_PATH_CACHE', '/tmp/'];
0

Cuối cùng để tạo tập tin

// Installation path [/var/www/html/project folder/TCPDF/]
define ['K_PATH_MAIN', '/var/www/html/pdf-tutorial/TCPDF/'];

// URL path to tcpdf installation folder [//localhost/tcpdf/].
define ['K_PATH_URL', '//localhost/pdf-tutorial/tcpdf/'];

// Path for PDF fonts.
define ['K_PATH_FONTS', K_PATH_MAIN.'fonts/'];

// Default images directory for example used for logos
define ['K_PATH_IMAGES', K_PATH_MAIN.'../images/'];

// Default image logo used be the default Header[] method.
define ['PDF_HEADER_LOGO', 'my_logo.png'];

// Header logo image width in user units.
define ['PDF_HEADER_LOGO_WIDTH', 30];

// Cache directory for temporary files [full path].
define ['K_PATH_CACHE', '/tmp/'];
1

Phương thức Output[] lấy tên tệp và tham số thứ hai xác định một ký tự đại diện cho đích để gửi tài liệu tới

  • Tùy chọn “Tôi” có nghĩa là gửi tệp sẽ được hiển thị trên trình duyệt
  • “D” gửi tệp tới trình duyệt và buộc tải xuống tệp
  • “F” lưu vào tệp máy chủ cục bộ
  • “S” trả về tài liệu dưới dạng chuỗi

 

Thêm trang mới

Việc thêm các trang mới được thực hiện dễ dàng bằng cách gọi phương thức AddPage[], hãy thêm hai trang nữa vào ví dụ trên, thêm mã này sau $pdf->writeHTML[$html]

// Installation path [/var/www/html/project folder/TCPDF/]
define ['K_PATH_MAIN', '/var/www/html/pdf-tutorial/TCPDF/'];

// URL path to tcpdf installation folder [//localhost/tcpdf/].
define ['K_PATH_URL', '//localhost/pdf-tutorial/tcpdf/'];

// Path for PDF fonts.
define ['K_PATH_FONTS', K_PATH_MAIN.'fonts/'];

// Default images directory for example used for logos
define ['K_PATH_IMAGES', K_PATH_MAIN.'../images/'];

// Default image logo used be the default Header[] method.
define ['PDF_HEADER_LOGO', 'my_logo.png'];

// Header logo image width in user units.
define ['PDF_HEADER_LOGO_WIDTH', 30];

// Cache directory for temporary files [full path].
define ['K_PATH_CACHE', '/tmp/'];
2

 

Thêm hình ảnh

Bạn có thể dễ dàng thêm hình ảnh trong html và TCPDF sẽ xử lý công việc khó khăn để hiển thị những hình ảnh đó, hãy thêm một trang mới có thẻ img

// Installation path [/var/www/html/project folder/TCPDF/]
define ['K_PATH_MAIN', '/var/www/html/pdf-tutorial/TCPDF/'];

// URL path to tcpdf installation folder [//localhost/tcpdf/].
define ['K_PATH_URL', '//localhost/pdf-tutorial/tcpdf/'];

// Path for PDF fonts.
define ['K_PATH_FONTS', K_PATH_MAIN.'fonts/'];

// Default images directory for example used for logos
define ['K_PATH_IMAGES', K_PATH_MAIN.'../images/'];

// Default image logo used be the default Header[] method.
define ['PDF_HEADER_LOGO', 'my_logo.png'];

// Header logo image width in user units.
define ['PDF_HEADER_LOGO_WIDTH', 30];

// Cache directory for temporary files [full path].
define ['K_PATH_CACHE', '/tmp/'];
3

 

HTML & CSS

Thư viện này đi kèm với khả năng áp dụng mã css cho văn bản html, sau đó nó sẽ chuyển đổi mã này thành kiểu dáng pdf tương ứng như trong ví dụ này

// Installation path [/var/www/html/project folder/TCPDF/]
define ['K_PATH_MAIN', '/var/www/html/pdf-tutorial/TCPDF/'];

// URL path to tcpdf installation folder [//localhost/tcpdf/].
define ['K_PATH_URL', '//localhost/pdf-tutorial/tcpdf/'];

// Path for PDF fonts.
define ['K_PATH_FONTS', K_PATH_MAIN.'fonts/'];

// Default images directory for example used for logos
define ['K_PATH_IMAGES', K_PATH_MAIN.'../images/'];

// Default image logo used be the default Header[] method.
define ['PDF_HEADER_LOGO', 'my_logo.png'];

// Header logo image width in user units.
define ['PDF_HEADER_LOGO_WIDTH', 30];

// Cache directory for temporary files [full path].
define ['K_PATH_CACHE', '/tmp/'];
4

Ngôn ngữ từ phải sang trái

Như chúng tôi đã đề cập trước đó rằng TCPDF có hỗ trợ đầy đủ các ngôn ngữ RTL bằng cách sử dụng mã hóa “UTF-8” mà chúng tôi đã chuyển khi khởi tạo hàm tạo TCPDF[], vì vậy, hãy thêm một trang mới có văn bản tiếng Ả Rập

// Installation path [/var/www/html/project folder/TCPDF/]
define ['K_PATH_MAIN', '/var/www/html/pdf-tutorial/TCPDF/'];

// URL path to tcpdf installation folder [//localhost/tcpdf/].
define ['K_PATH_URL', '//localhost/pdf-tutorial/tcpdf/'];

// Path for PDF fonts.
define ['K_PATH_FONTS', K_PATH_MAIN.'fonts/'];

// Default images directory for example used for logos
define ['K_PATH_IMAGES', K_PATH_MAIN.'../images/'];

// Default image logo used be the default Header[] method.
define ['PDF_HEADER_LOGO', 'my_logo.png'];

// Header logo image width in user units.
define ['PDF_HEADER_LOGO_WIDTH', 30];

// Cache directory for temporary files [full path].
define ['K_PATH_CACHE', '/tmp/'];
5

Như đã thấy ở trên, tôi đã thêm một số văn bản tiếng Ả Rập và nó sẽ hiển thị chúng một cách chính xác. Thư viện có rất nhiều chức năng khác để định dạng và thao tác với pdf, tiếc là tôi sẽ không đề cập đến tất cả những chức năng này trong hướng dẫn này nhưng tôi khuyến khích bạn khám phá chúng trên trang web chính thức của TCPDF

Làm cách nào để tạo PDF trong mã nguồn động php?

$pdf=new FPDF[]; Ví dụ 1. Ví dụ sau tạo một tệp PDF với văn bản đã cho trong mã.

Làm cách nào để tạo PDF động bằng Dompdf trong php?

Ví dụ sau cho thấy cách sử dụng Dompdf để chuyển đổi HTML và tạo PDF với cấu hình tối thiểu. .
Chỉ định nội dung HTML trong phương thức loadHtml[] của lớp Dompdf
Kết xuất HTML dưới dạng PDF bằng phương thức render[]
Xuất tệp PDF được tạo ra Trình duyệt bằng phương thức stream[]

Làm cách nào tôi có thể tải xuống PDF bằng tcpdf?

Đầu tiên, chuyển hướng trình duyệt [sử dụng cửa sổ. vị trí như các câu trả lời khác nói] để điều hướng đến một hành động điều khiển đặc biệt trong ứng dụng của bạn, e. g. với url này. http. //của bạn. ứng dụng. com/tải xuống/pdf/tên tệp. pdf. Điều này sẽ khiến trình duyệt tải xuống tệp. Lưu câu trả lời này

Làm cách nào để tạo tệp PDF từ dữ liệu động đến từ cơ sở dữ liệu MySQL trong php?

Tạo PDF bằng PHP từ cơ sở dữ liệu Mysql .
Bước 1. Lấy dữ liệu từ cơ sở dữ liệu MySQL vào trang
Bước 1. Tải xuống thư viện FPDF từ fpdf. tổ chức
Bước 2. Sao chép fpdf. php vào thư mục ứng dụng của bạn
Bước 3. Sử dụng thư viện fpdf như vậy

Chủ Đề