찾다
PHP 프레임워크LaravelLaravel이 laravel-snappy 패키지를 사용하여 HTML을 PDF 및 PNG로 변환하는 방법

튜토리얼 칼럼은 모든 사람이 HTML을 PDF 및 PNG로 구현하기 위해 Laravel-SnAppy 패키지를 사용하는 데 사용됩니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

Laravel이 laravel-snappy 패키지를 사용하여 HTML을 PDF 및 PNG로 변환하는 방법

머리말

회사에서는 클라우드 계약이라는 새로운 도구를 개발하려고 하기 때문에 여러 세트의 고정 계약 템플릿(html 페이지)을 미리 설정하고 매개변수 채우기를 사용하여 계약의 데이터를 유연하게 변경할 수 있습니다. 그런 다음 PDF 및 PNG를 생성합니다. 조사한 결과 laravel-snappy 패키지가 wkhtmltopdf를 사용하는 것으로 나타났습니다. QT WebkitQT Webkit은 브라우저와 동일한 렌더링 엔진인 Webkit을 기반으로 합니다.


설치laravel-snappy 这个包,底层使用的是 wkhtmltopdfwkhtmltopdf 是构建于 QT Webkit 之上,而 QT Webkit 又是基于 Webkit 的,跟我们的浏览器一样的渲染引擎。

安装

1、先查看系统是 32 位的还是 64 位的

uname -a

2、通过 composer 安装 wkhtmltopdf

32位:
$ composer require h4cc / wkhtmltopdf-i386 0.12.x
$ composer require h4cc / wkhtmltoimage-i386 0.12.x
64位:
$ composer require h4cc/wkhtmltopdf-amd64 0.12.x
$ composer require h4cc/wkhtmltoimage-amd64 0.12.x

3、接下来将安装好的 wkhtmltopdf 复制到 Linux 系统可执行命令的目录中

cp vendor/h4cc/wkhtmltoimage-amd64/bin/wkhtmltoimage-amd64 /usr/local/bin/
cp vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin/
//并使其可执行:
chmod +x /usr/local/bin/wkhtmltoimage-amd64 
chmod +x /usr/local/bin/wkhtmltopdf-amd64

4、安装 laravel-snappy 包

composer require barryvdh/laravel-snappy

配置

1、将 ServiceProvider 添加到 config/app.php 中的 providers 数组中

Barryvdh\Snappy\ServiceProvider::class,

2、将 Facades 添加到 config/app.php 中的 aliases 数组中

'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,
'SnappyImage' => Barryvdh\Snappy\Facades\SnappyImage::class,

3、生成配置文件

php artisan vendor:publish --provider="Barryvdh\Snappy\ServiceProvider"

注意:config 文件夹中的 snappy.php 就是其配置文件,binary 指向的就是上面安装的 wkhtml 相关路径.

使用

PDF

//一、下载
$pdf = \PDF::loadView('welcome', $data);
return $pdf->download('welcome.pdf');

//二、渲染页面,在浏览器中显示
$html = &#39;<html><head><meta charset="utf-8"></head><h1 id="订单id">订单id</h1><h2 id="">12346546</h2></html>&#39;;
$pdf = \PDF::loadHTML($html);
return $pdf->inline();

Image

//一、下载
$img = \SnappyImage::loadView(&#39;welcome&#39;, $data);
return $img->download(&#39;welcome.png&#39;);

//二、渲染页面,在浏览器中显示
$html = &#39;<html><head><meta charset="utf-8"></head><h1 id="订单id">订单id</h1><h2 id="">12346546</h2></html>&#39;;
$img = \SnappyImage::loadHTML($html);
return $img->inline();

踩坑记录

一、当执行生成时若提示 libXrenderlibssl 库不存在需要安装相对应库

//apt-get 安装方法
apt-get install libXrender*
apt-get install libssl*

//yum 安装方法
yum install libXrender*
yum install libssl*

//若 yum 安装时最后报错 Error: GPG check FAILED
yum install libXrender* --nogpgcheck
yum install libssl* --nogpgcheck

二、中文显示乱码问题,这个问题需要在 Linux 中安装中文字体即可解决

查看系统字体
在开始安装之前,我们先查看系统中已经安装的字体,要查看系统中已经安装的字体,我们可以使用 fc-list

1. 먼저 시스템이 32비트인지 64비트인지 확인하세요

yum install -y fontconfig mkfontscale
2. 그런 다음, 설치된 wkhtmltopdf를 Linux 시스템 실행 명령에 복사하세요.

[root@8d079be5059a php]# fc-list
/usr/share/fonts/urw-base35/NimbusMonoPS-Italic.otf: Nimbus Mono PS:style=Italic
/usr/share/fonts/urw-base35/D050000L.t1: D050000L:style=Regular
...

4. laravel-snappy 패키지를 설치합니다.

[root@8d079be5059a php]# fc-list :lang=zh

Configuration

1. config/app.php의 공급자 배열에 ServiceProvider를 추가합니다.

C:\Windows\Fonts
2. app.php

//远程复制
scp simfang.ttf root@ip:/usr/share/fonts
3 구성 파일을 생성합니다🎜
cd /usr/share/fonts/mkfontscale
mkfontdir
fc-cache
🎜참고: config 폴더의 snappy.php는 구성 파일이며 바이너리는 위에 설치된 wkhtml 관련 경로를 가리킵니다.🎜🎜🎜 🎜🎜 🎜🎜🎜🎜🎜🎜PDF🎜🎜
[root@8d079be5059a php]# fc-list :lang=zh
/usr/share/fonts/simfang.ttf: FangSong,仿宋:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
🎜🎜Image🎜🎜rrreee🎜🎜Tracking Record🎜🎜🎜를 사용하세요. 1. 프롬프트가 libXrender 또는 libssl인 경우 라이브러리가 존재하지 않으며 해당 라이브러리를 설치해야 합니다🎜rrreee🎜 2. 중국어 디스플레이가 깨져 보이는 문제 이 문제는 Linux에 중국어 글꼴을 설치하여 해결해야 합니다🎜🎜시스템 글꼴을 확인하세요🎜설치를 시작하기 전에 먼저 시스템에 설치된 글꼴을 보려면 fc-list 명령을 사용하여 볼 수 있습니다. 시스템에 해당 명령이 없으면 설치해야 합니다. 먼저 관련 소프트웨어 패키지. 🎜centos에서는 다음 명령을 사용하여 설치합니다. 🎜rrreee🎜설치가 완료된 후 시스템에 설치된 글꼴을 볼 수 있습니다. 🎜rrreee🎜 시스템에 설치된 중국어 글꼴을 보려면 , 다음 명령을 사용할 수 있습니다 🎜rrreee🎜 위 그림에서 시스템에 중국어 글꼴이 없는 것을 확인할 수 있습니다🎜🎜Windows 글꼴 디렉터리에 들어갑니다🎜rrreee🎜simfang.ttf 글꼴을 원격으로 복사하거나 다른 방법으로 서버의 글꼴 디렉토리🎜🎜rrreee🎜그런 다음 글꼴 인덱스 정보를 생성하고 글꼴 캐시를 업데이트합니다🎜🎜rrreee🎜이 시점에서 글꼴이 설치되었습니다. 이제 중국어 글꼴을 확인하고 성공적으로 설치되었는지 확인해 보겠습니다🎜rrreee

위 내용은 Laravel이 laravel-snappy 패키지를 사용하여 HTML을 PDF 및 PNG로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 learnku에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
laravel单点登录方法详解laravel单点登录方法详解Jun 15, 2022 am 11:45 AM

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于单点登录的相关问题,单点登录是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,下面一起来看一下,希望对大家有帮助。

一起来聊聊Laravel的生命周期一起来聊聊Laravel的生命周期Apr 25, 2022 pm 12:04 PM

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于Laravel的生命周期相关问题,Laravel 的生命周期从public\index.php开始,从public\index.php结束,希望对大家有帮助。

laravel中guard是什么laravel中guard是什么Jun 02, 2022 pm 05:54 PM

在laravel中,guard是一个用于用户认证的插件;guard的作用就是处理认证判断每一个请求,从数据库中读取数据和用户输入的对比,调用是否登录过或者允许通过的,并且Guard能非常灵活的构建一套自己的认证体系。

laravel中asset()方法怎么用laravel中asset()方法怎么用Jun 02, 2022 pm 04:55 PM

laravel中asset()方法的用法:1、用于引入静态文件,语法为“src="{{asset(‘需要引入的文件路径’)}}"”;2、用于给当前请求的scheme前端资源生成一个url,语法为“$url = asset('前端资源')”。

实例详解laravel使用中间件记录用户请求日志实例详解laravel使用中间件记录用户请求日志Apr 26, 2022 am 11:53 AM

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于使用中间件记录用户请求日志的相关问题,包括了创建中间件、注册中间件、记录用户访问等等内容,下面一起来看一下,希望对大家有帮助。

laravel中间件基础详解laravel中间件基础详解May 18, 2022 am 11:46 AM

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于中间件的相关问题,包括了什么是中间件、自定义中间件等等,中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制,下面一起来看一下,希望对大家有帮助。

laravel路由文件在哪个目录里laravel路由文件在哪个目录里Apr 28, 2022 pm 01:07 PM

laravel路由文件在“routes”目录里。Laravel中所有的路由文件定义在routes目录下,它里面的内容会自动被框架加载;该目录下默认有四个路由文件用于给不同的入口使用:web.php、api.php、console.php等。

laravel VS thinkphp, 如何决择?laravel VS thinkphp, 如何决择?Jun 01, 2022 am 10:11 AM

ThinkPHP vs Laravel 当下国内最流行的两款PHP框架,孰好孰坏,争议最多!做为初学者,也很纠结,到底学哪个好呢?本文PHP中文网来认真盘点一下,不吹不黑,更不便偏颇哪一方。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.