首页 > 其他分享 >使用laravel-snappy生成pdf

使用laravel-snappy生成pdf

时间:2023-05-11 17:00:42浏览次数:52  
标签:laravel name setOption snappy composer pdf

laravel-snappy基于wkhtmltopdf工具,可以比较完美的将web页面转成pdf格式。

顺便把laravel及laravel-snappy安装过程记录下

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

composer create-project laravel/laravel example-app

composer require barryvdh/laravel-snappy

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

 

config/app.php   'aliases'项加上

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

 

使用

$pdf = PDF::loadView('pdf.invoice', $data);
$pdf->setPaper('a4')->setOption('encoding', 'utf-8')->setOption('margin-left', 0)->setOption('margin-right', 0)
->setOption('javascript-delay', 10000)->setOption('no-stop-slow-scripts', true); $pdf->save($path) //return $pdf->download('invoice.pdf');

 

用于调整生成pdf格式的css属性

 .keep-together {
     page-break-inside: avoid;
}

.break-before {
     page-break-before: always;
}

.break-after {
     page-break-after: always;
}

 

 使用laravel的command定时产出pdf

php artisan make:command pdf
<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use App\Services\PdfService;

class Pdf extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'pdf {name}';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'pdf';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $name = $this->argument('name');
        $service = new PdfService();
        $service->pdf($name);
        $this->info('The command was successful!');
    }
}

 

调试

方法1
use Illuminate\Support\Facades\Artisan;

Route::post('/pdf/{name}', function ($name) {
    $exitCode = Artisan::call('pdf', [
        'name' => $name
    ]);
});

方法2
php artisan pdf 'aa'

 

标签:laravel,name,setOption,snappy,composer,pdf
From: https://www.cnblogs.com/caroline2016/p/17391607.html

相关文章

  • react-html2canvas-jspdf 自动分页导出pdf
    //新建exportPDF.js文件importhtml2canvasfrom'html2canvas';importjsPDFfrom'jspdf';functiongeneratePDF(id,title){ //下载pdf方法 letdemo=document.getElementById(id); demo.style.overflow='visible'; html2canvas(......
  • C# .Net Core 合并PDF文件
    使用PdfSharpCorenuget包代码实现usingMicrosoft.AspNetCore.Razor.TagHelpers;usingPdfSharpCore.Pdf;usingPdfSharpCore.Pdf.IO;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespace......
  • linux下拆分PDF、批量裁剪图片及合并为PDF操作
    好久不碰代码,文件操作啥的快忘光了(你丫本来就没怎么学吧!)我先放两串代码在这QAQ拆分PDFpdftoppm-png?.pdfs批量裁剪图片裁剪图片指令,这个指令是ImageMagick带的一个什么东西,单位电脑能装convertsrc.png-crop长x高+起始像素点横坐标+起始像素低纵坐标dest.png然后......
  • Java使用wkhtmltopdf实现HTML转pdf
    wkhtmltopdf设置全屏:wkhtmltopdf--disable-smart-shrinking--page-sizeA4-B0-L0-R0-T0test.htmloutput.pdf-B-T-R-L是有效果的,$snappy->setOption('margin-top','0mm');$snappy->setOption('margin-left','0mm'......
  • ChatPDF/ChatDOC实现原理解析
    1)把PDF切分成小的文本片段,通过OpenAI的Ada模型创建Embedding放到本地或远程向量数据库。2)把用户的提问也创建成Embedding,用它和之前创建的PDF向量比对,通过语义相似性搜索(余弦算法),找到最相关的文本片段。比关键词搜索好的一点是不要求关键词包含,也能发现文本相关性,比如汽车和公路......
  • 用C#将多个jpg合成一个pdf
    nuget安装iTextSharp:staticvoidMergePDF(stringpicPath,stringpdfPath){string[]picFileNames=Directory.GetFiles(picPath,"*");List<string>fileNames=picFileNames.ToList();fileNames.Sort((l,......
  • laravel框架三级联动,详细代码
    这里运用到省份表中,下面是效果图  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~需要一个省份表,里面的字段要有个pid,name这些字段下面是控制器代码,(Citie,是那个省份表的模型)1//显示页面2publicfunctioncreate(){3$data=Citie::where('pid',0)-......
  • pdfjs分片
    分片加载的实现是基于HTTP-RANGE的,即服务端的文件接口如果实现了HTTP-RANGE,pdf.js会默认去执行分片加载的策略。 也就是第一次请求时,服务器返回200,同时返回响应头Accept-RangesAccept-Ranges:bytes(表明服务器支持分片加载)Content-Length:408244(表明该文件的所有字......
  • Laravel10 Auth 多用户(管理员、用户的区分)
    参考https://learnku.com/docs/laravel/10.x/authenticationmd/14876#retrieving-the-authenticated-user环境软件/系统版本说明windows10php8.1.9-Win32-vs16-x64composer2.5.5laravel10.8.0mysql8.0.28注意如果需要使用密码功能,还需......
  • C#pdf文件转单个图片
    ///<summary>///PDF转图片///</summary>///<paramname="dicomFile">PDF文件路径</param>///<paramname="destJpgFile">保存图片路径</param>///<returns><......