[Học Laravel] Hướng dẫn sử dụng Latex trong Laravel
![[Học Laravel] Hướng dẫn sử dụng Latex trong Laravel](https://webnulled.net/wp-content/uploads/2022/02/laravel-huong-dan-su-dung-latex-trong-laravel_6202aff2b98d1.jpeg)
LaTex là một hệ thống sắp chữ đặc biệt, sử dụng tài liệu này rất chuyên nghiệp và rõ dàng. Lý do để chọn LaTex là vì nó có các tính năng mở rộng có tiêu đề, chân trang, chỉ mục sách, số trang, hình mờ, v.v … Trong bài viết này WebFree.Net sẽ hướng dẫn các bạn sử dụng Latex trong Laravel
Table of Contents
1. Điều kiện tiên quyết
Chúng ta cần phải cài đặt texlive-full trên máy chủ của bạn. Chương trình này có các gói tex và thư viện ngôn ngữ giúp bạn tạo tài liệu.
2. Cài đặt
composer require techsemicolon/laravel-php-latex
Dry Run :
Trước khi sử dụng trực tiếp, điều quan trọng là đảm bảo các chương trình cần thiết được cài đặt đúng trên máy chủ. Gói đi kèm với phương pháp Dryrun mà bạn có thể sử dụng đặt bên trong bất kỳ bộ điều khiển hoặc tuyến đường nào. Nó sẽ tự động tạo dryrun.pdf nếu mọi thứ được thiết lập tốt trên máy chủ. Nếu không, nó sẽ báo LatexException với lỗi chi tiết trên máy chủ.
dryRun();
}
}
Dryrun sẽ tải xuống bản pdf như dưới đây:
3. Sử dụng
Tạo một tập tin xem bên trong resources/views/lates/tex.blade.php:
documentclass[a4paper,9pt,landscape]{article}
usepackage{adjustbox}
usepackage[english]{babel}
usepackage[scaled=.92]{helvet}
usepackage{fancyhdr}
usepackage[svgnames,table]{xcolor}
usepackage[a4paper,inner=1.5cm,outer=1.5cm,top=1cm,bottom=1cm,bindingoffset=0cm]{geometry}
usepackage{blindtext}
geometry{textwidth=paperwidth, textheight=paperheight, noheadfoot, nomarginpar}
renewcommand{familydefault}{sfdefault}
pagestyle{fancy}
fancyhead{}
renewcommand{headrulewidth}{0pt}
fancyfoot{}
fancyfoot[LE,RO]{thepage}
fancyfoot[C]{fontsize{8pt}{8pt}selectfont Above document is auto-generated.}
renewcommand{footrulewidth}{0.2pt}
begin{document}
section*{centering{Test Document}}
begin{center}
item[Name :] {{ $name }}
item[Date of Birth :] {{ $dob }}
end{center}
blindtext
begin{table}[ht]
centering
begin{adjustbox}{center}
renewcommand{arraystretch}{2}
begin{tabular}{|l|l|}
hline
rowcolor[HTML]{E3E3E3}
textbf{Sr. No}
& textbf{Addresses}
hline
@foreach($addresses as $key => $address)
renewcommand{arraystretch}{1.5}
{{ $key }} & {{ $address }}
hline
@endforeach
end{tabular}
end{adjustbox}
caption{Address Summmary}
end{table}
blindtext
vfill
centering
end{document}
Xử lý download bên controller
with([
'name' => 'John Doe',
'dob' => '01/01/1994',
'addresses' => [
'20 Pumpkin Hill Drive Satellite Beach, FL 32937',
'7408 South San Juan Ave. Beaver Falls, PA 15010'
]
])->download('test.pdf');
}
}
Bạn có thể lưu pdf vào vị trí bạn muốn sử dụng sau:
(new Latex('latex.tex'))->with([
'name' => 'John Doe',
'dob' => '01/01/1994',
'addresses' => [
'20 Pumpkin Hill Drive Satellite Beach, FL 32937',
'7408 South San Juan Ave. Beaver Falls, PA 15010'
]
])->savePdf(storage_path('exports/pdf/test.pdf'));
Nếu bạn không muốn download file pdf
$tex = new Latex('latex.tex'))->with([
'name' => 'John Doe',
'dob' => '01/01/1994',
'addresses' => [
'20 Pumpkin Hill Drive Satellite Beach, FL 32937',
'7408 South San Juan Ave. Beaver Falls, PA 15010'
]
])->render();
Thiết lập bin path :
Nếu máy chủ của bạn không có pdflatex trong môi trường $PATH, bạn có thể cần cung cấp đường dẫn đầy đủ để thực thi lệnh. Để tìm đường dẫn bạn có thể làm:
which pdflatex
Sau đó sử dụng binPath trong function
return (new Latex('latex.tex'))->with([
'name' => 'John Doe',
'dob' => '01/01/1994',
'addresses' => [
'20 Pumpkin Hill Drive Satellite Beach, FL 32937',
'7408 South San Juan Ave. Beaver Falls, PA 15010'
]
])->binPath('/usr/bin/pdflatex')->download('test.pdf');
Using Raw Tex :
$tex = new RawTex('your_raw_tex_content_string.....');
return (new Latex($tex))->with([
'name' => 'John Doe',
'dob' => '01/01/1994',
'addresses' => [
'20 Pumpkin Hill Drive Satellite Beach, FL 32937',
'7408 South San Juan Ave. Beaver Falls, PA 15010'
]
])->download('test.pdf');
Bulk download in a zip archive :
$latexCollection = (new LatexCollection());
$users = User::limit(10)->get();
foreach ($users as $user) {
$pdfName = $user->first_name.'-'.$user->last_name.'-'.$user->id.'.pdf';
// Create latex instance
$latex = (new Latex('latex.patientsummary'))->with([
'user' => $user
])->setName($pdfName);
// Add it to latex collection
$latexCollection->add($latex);
}
// Download the zip
return $latexCollection->downloadZip('bulk.zip');
// OR you can also save it
$latexCollection->saveZip(storage_path('exports/zips/users.zip'));
3. Kết luận
Vậy là WebFree.Net đã hoàn thành bài hướng dẫn sử dụng Latex bằng gói techsemicolon/laravel-php-latex trong Laravel. Hy vọng bài viết sẽ có ích cho bạn. Chúc bạn thành công!.
4. Xem thêm
-
[Laravel] Gửi Email, hướng dẫn cách làm chức năng gửi Email trong Laravel 5
-
[Laravel] Tổng hợp 20 cách viết rút gọn Eloquent trong Laravel
Theo:
packagist.org