Laravel8縺ァPDF繧貞コ蜉帙☆繧具シlaravel-dompdfシ

laravel縺ァPDF繝輔ぃ繧、繝ォ繧貞コ蜉

laravel迺ー蠅縺ァPDF蜃コ蜉帙☆繧区。井サカ縺後≠繧翫∪縺励◆縺ョ縺ァ縲∝ッセ蠢懈婿豕輔r縺皮エケ莉

荳願ィ倥ッLaravel-admin縺ョ逕サ髱「縺ァ縺吶′縲√b縺。繧阪s譎ョ騾壹↓Laravel縺ァ蛻ゥ逕ィ縺ァ縺阪∪縺吶

遒コ隱肴ク医∩縺ョLaravel縺ョ繝舌シ繧ク繝ァ繝ウ縺ッ8.X縺ァ縺吶
6.X莉・髯阪〒縺ゅl縺ー蝠城。後↑縺丞虚菴懊☆繧九ッ縺壹〒縺吶

Laravel縺ァPDF蜃コ蜉帙☆繧区婿豕

繝代ャ繧ア繝シ繧ク縺御ク逡ェ謇九▲蜿悶j譌ゥ縺縲よ怏蜷阪←縺薙m縺ァ縺ッ荳玖ィ倥ョシ偵▽

  • laravel-dompdf
  • Snappy

縺ッ縺倥a縺ッSnappy縺ァ蜿悶j邨繧薙〒縺縺溘ョ縺ァ縺吶′縲∽ク驛ィ縺縺セ縺上>縺九↑縺驛ィ蛻縺後≠縺」縺溘ョ縺ァlaravel-dompdf縺ク譁ケ驥晁サ「謠

縺昴l繧峨r豈碑シ縺吶k縺ィ縺薙s縺ェ諢溘§

larave-dompdfsnappy
繧、繝ウ繧ケ繝医シ繝ォ縺ョ謇矩俣
讖溯ス笆ウ
譌・譛ャ隱槫ッセ蠢

snappy縺ョ譁ケ縺碁ォ俶ゥ溯ス縲√i縺励>縲ゅ>縺セ縺ョ縺ィ縺薙mlarava-dompdf縺ァ繧ゆク肴コ縺区─縺倥∪縺帙s縲

縺ゥ縺。繧峨b豬キ螟悶励Λ繧ー繧、繝ウ縺ョ縺溘a譌・譛ャ隱槫喧縺吶k縺ョ縺ッ繝代ャ繧ア繝シ繧ク繧、繝ウ繧ケ繝医シ繝ォ莉・螟悶↓菴懈・ュ縺悟ソ隕√〒縺吶ゅ%繧後′髱「蛟偵ゅ〒繧ょ、ァ莠九↑菴懈・ュ縺ェ縺ョ縺ァ縺後s縺ー繧翫∪縺励g縺縲

Laravel-dompdf縺ョ繧、繝ウ繧ケ繝医シ繝ォ

繧ウ繝槭Φ繝峨%縺ョ騾壹j

$ composer require barryvdh/laravel-dompdf
Using version ^0.8.5 for barryvdh/laravel-dompdf

繧、繝ウ繧ケ繝医シ繝ォ縺悟ョ御コ縺励◆繧峨√し繝シ繝薙せ繝励Ο繝舌う繝縺ィ繧ィ繧、繝ェ繧「繧ケ縺ォ逋サ骭イ縺吶k蠢隕√′縺ゅj縺セ縺吶

荳。譁ケ縺ィ繧ゅ慶onfig/app.php 縲阪ヵ繧。繧、繝ォ縺ォ霑ス險倥@縺ヲ縺縺阪∪縺吶

縺セ縺壹ッ繧オ繝シ繝薙せ繝励Ο繝舌う繝驛ィ蛻

    'providers' => [
縲繝サ
縲繝サ
縲繝サ
        Illuminate\Validation\ValidationServiceProvider::class,
        Illuminate\View\ViewServiceProvider::class,
        Barryvdh\DomPDF\ServiceProvider::class,


谺。縺ォ繧ィ繧、繝ェ繧「繧ケ驛ィ蛻

 
  'aliases' => [
縲繝サ
縲繝サ
縲繝サ
        Illuminate\View\ViewServiceProvider::class,
        'Validator' => Illuminate\Support\Facades\Validator::class,
        'View' => Illuminate\Support\Facades\View::class,
        'PDF' => Barryvdh\DomPDF\Facade::class,


縺薙l縺ァ繧、繝ウ繧ケ繝医シ繝ォ縺ィ貅門y縺悟ョ御コ縺励∪縺励◆縲

PDF縺ョ蜻シ縺ウ蜃コ縺

蜻シ縺ウ蜃コ縺玲婿縺ッblade繝繝ウ繝励Ξ繝シ繝医r蜻シ縺ウ蜃コ縺呎婿豕輔→縺サ縺ィ繧薙←蜷後§縺ァ縺吶

route險ュ螳

縺セ縺壹ッroute.php縺ォ繝代せ縺ィ繧ウ繝ウ繝医Ο繝シ繝ゥ縺ョ險ュ螳壹r險倩ソー縺励∪縺吶ゆサ雁屓縺ッ鬘ァ螳「豌丞錐縺ェ縺ゥ繧単DF縺ォ蜃コ蜉帙☆繧句ソ隕√′縺ゅ▲縺溘ョ縺ァ縲√ヱ繝ゥ繝。繝シ繧ソ縺ィ縺励※customer_id繧呈ク。縺励※縺縺セ縺吶

荳玖ィ倥ョ繧オ繝ウ繝励Ν縺ッlarave-admin蛛エ縺ォ繧ウ繝ウ繝医Ο繝シ繝ゥ繧定ィュ螳壹☆繧区婿豕輔↓縺ェ繧翫∪縺吶ゅヱ繧ケ縺ォ縺疲ウィ諢上¥縺縺輔>縲

    $router->get('/pdf/dl/{customer_id}', 'PdfController@index')->name('pdf.dl');
    $router->get('/pdf/view/{customer_id}', 'PdfController@view')->name('pdf.view');

繧ウ繝ウ繝医Ο繝シ繝ゥ險ュ螳

namespace App\Admin\Controllers;

use App\Http\Controllers\Controller;
use App\Models\Customer;
use Barryvdh\DomPDF\Facade as PDF;
use Carbon\Carbon;
use Encore\Admin\Layout\Content;


class PdfController extends Controller
{
    public function index($customer_id)
    {
        $customer = Customer::whereId($customer_id)->first();
        $date = new Carbon();

        $pdf=PDF::loadView('admin.nouhin',compact('customer','date'));
        return $pdf->download('邏榊刀譖ク.pdf'); //縺薙■繧峨′繝繧ヲ繝ウ繝ュ繝シ繝臥畑讖溯ス
    }

    public function view($customer_id)
    {
        $customer = Customer::whereId($customer_id)->first();
        $date = new Carbon();

        return view('admin.nouhin',compact('customer','date')); //縺薙■繧峨′繝悶Λ繧ヲ繧カ陦ィ遉コ逕ィ讖溯ス
    }
}

index縺訓DF繧偵ム繧ヲ繝ウ繝ュ繝シ繝峨☆繧区ゥ溯ス縲」iew縺後ヶ繝ゥ繧ヲ繧カ荳翫↓縺昴ョ縺セ縺セPDF繧帝幕縺乗ゥ溯ス縺ィ縺励※縺縺セ縺吶

Using $this when not in object context縲繧ィ繝ゥ繝シ

豕ィ諢丈コ矩縺ィ縺縺繧医j遘√′縺ッ縺セ縺」縺溘%縺ィ縲

IDE陬懷ョ梧ゥ溯ス縺ァ縲訓DF縲阪ョ螳」險縺ォ蟇セ縺吶k繧、繝ウ繝昴シ繝医ruse螳」險縺励※縺縺溘ョ縺ァ縺吶′縲∵ー嶺サ倥°縺ャ縺縺。縺ォ荳玖ィ倥↓縺ェ縺」縺ヲ縺縺セ縺励◆縲

use Barryvdh\DomPDF\PDF;

豁」縺励¥縺ッ荳翫ョ繧オ繝ウ繝励Ν縺ォ繧ゅ≠繧矩壹j縲:acade繧貞茜逕ィ縺吶k蠢隕√′縺ゅj縺セ縺吶

use Barryvdh\DomPDF\Facade as PDF;

縺薙l縺ォ豌嶺サ倥°縺壽焚譎る俣辟。鬧縺ォ縺励∪縺励◆縲√

縲殺rror Using $this when not in object context縲上→縺縺繧ィ繝ゥ繝シ縺ォ驕ュ驕縺励◆繧峨う繝ウ繝昴シ繝亥ョ」險繧定ヲ狗峩縺励※縺ソ縺ヲ縺上□縺輔>縲

use Barryvdh\DomPDF\PDF
縺ァ縺ッ縺ェ縺
use Barryvdh\DomPDF\Facade as PDF;
縺ァ縺呻シシ

laravel-dompdf譌・譛ャ隱槫喧

縺薙%縺セ縺ァ縺ァPDF縺ョ蜃コ蜉帙ッ螳御コ縺励◆縺九→諤昴>縺セ縺吶ゅ@縺九@縲∝コ蜉帙&繧後◆PDF繧定ヲ九k縺ィ

シ滂シ滂シ滂シ滂シ

縺ョ繧医≧縺ォ譁蟄怜喧縺代@縺ヲ縺繧九ッ縺壹〒縺吶よオキ螟冶」ス繝励Λ繧ー繧、繝ウ縺ェ縺ョ縺ァ縺昴ョ縺セ縺セ縺ァ縺ッ譌・譛ャ隱槭′陦ィ遉コ縺ァ縺阪∪縺帙s縲

荳玖ィ倥ョ謇矩縺ァ譌・譛ャ隱槫ッセ蠢懊′蠢隕√〒縺吶

load_font.php繝繧ヲ繝ウ繝ュ繝シ繝

IPA繝輔か繝ウ繝医r繝繧ヲ繝ウ繝ュ繝シ繝峨@縺セ縺吶

IPA繝輔か繝ウ繝医ム繧ヲ繝ウ繝ュ繝シ繝

譏取悃縺ィ繧エ繧キ繝繧ッ2縺、縺ョ譖ク菴薙′縺ゅj縺セ縺吶2譖ク菴薙ヱ繝繧ッ繧偵ム繧ヲ繝ウ繝ュ繝シ繝峨@縺ヲ縺翫>縺滓婿縺悟セ後〒謇矩俣縺後↑縺縺九→諤昴>縺セ縺吶

繝繧ヲ繝ウ繝ュ繝シ繝峨@縺溘iLaravel繧偵う繝ウ繧ケ繝医シ繝ォ縺励◆繝繧」繝ャ繧ッ繝医Μ逶エ荳九↓temp縺ェ縺ゥ縺ョ驕ゥ蠖薙↑繝繧」繝ャ繧ッ繝医Μ繧剃ス懈舌@菫晏ュ倥@縺セ縺吶

laravel-dompdf逕ィtemp繝輔か繝ォ繝繧剃ス懈

繝輔か繝ウ繝医ヵ繧。繧、繝ォ繧、繝ウ繧ケ繝医シ繝ォ

$ php load_font.php ipaexg temp/ipaexg.ttf

繧エ繧キ繝繧ッ繝輔か繝ウ繝医r繧、繝ウ繧ケ繝医シ繝ォ縺吶k蝣エ蜷医ッ縲景paexg縲阪ョ2縺区園繧偵景paexm縲阪↓譖ク縺肴鋤縺医※縺上□縺輔>縲

繝輔か繝ウ繝医ョ繧ウ繝斐シ

load_font.php繧貞ョ溯。後@縺ヲvendor/dompdf/dompdf/lib/fonts繝繧」繝ャ繧ッ繝医Μ縺ォ菴懈舌&繧後◆縲(pagexf.ttf, ipagexg.ufm, dompdf_font_family_cache.php繧痴torage/fonts縺ォ繧ウ繝斐シ縺励∪縺吶

Blade繝繝ウ繝励Ξ繝シ繝医〒繝輔か繝ウ繝医r謖螳

險ュ螳壹′螳御コ縺励◆繧臼DF蜃コ蜉帷畑縺ョ繝繝ウ繝励Ξ繝シ繝医r菫ョ豁」縺励※縺縺阪∪縺吶ゅ%縺ョBlade繝繝ウ繝励Ξ繝シ繝医〒繧、繝ウ繧ケ繝医シ繝ォ縺励◆繝輔か繝ウ繝医rCSS縺ァ謖螳壹@縺セ縺吶

<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>PDF</title>
<style>
body {
font-family: ipaexg;
}
</style>
</head>
<body>
    <h1>PDF繝繧ケ繝&amp;lt;/h1>
</div>
</body>
</html>

縺薙l縺ァ譌・譛ャ隱槭ョPDF縺悟コ蜉帙&繧後k繧医≧縺ォ縺ェ繧翫∪縺励◆縲

Undefined offset: 12239縲繧ィ繝ゥ繝シ縺悟コ蜉帙&繧後k蝣エ蜷

繝輔か繝ウ繝医ヵ繧。繧、繝ォ縺ョ逶ク諤ァ縺ェ縺ョ縺九√お繝ゥ繝シ縺悟コ繧句エ蜷医′縺ゅj縺セ縺吶ゅヵ繧ゥ繝ウ繝医ヵ繧。繧、繝ォ繧貞、画峩縺励※縺ソ縺セ縺励g縺縲

遘√ッMigMix縺ィ縺縺繝輔か繝ウ繝医r蛻ゥ逕ィ縺輔○縺ヲ鬆ゅ″隗」豸医@縺セ縺励◆縲

MigMix繝繧ヲ繝ウ繝ュ繝シ繝

laravel-dompdf蟆上ロ繧ソ

PDF縺ァQR繧ウ繝シ繝峨r陦ィ遉コ縺吶k蝣エ蜷医ョ險倩ソー

<img src="data:image/png;base64, {{ base64_encode(QrCode::format('png')->size(100)->generate('Make me into an QrCode!')) }} ">

laravel-dompdf縺セ縺ィ繧

Laravel縺九iPDF蜃コ蜉帙☆繧句エ蜷医↓縺ッlarave-dompdf繧貞茜逕ィ縺吶k縺薙→縺ァ蟇セ蠢懊〒縺阪k縺セ縺励◆縲よ律譛ャ隱槫喧縺悟ー代@謇矩俣縺ァ縺吶′縲∽ク蠎ヲ諷」繧後※縺励∪縺医ー螟ァ荳亥、ォ縺昴≧縺ァ縺吶

HTML縺ョ繝繝ウ繝励Ξ繝シ繝医r繝吶シ繧ケ縺ォ謇玖サス縺ォPDF蜃コ蜉帙〒縺阪k縺ョ縺ァ縲√●縺イ蛻ゥ逕ィ縺励※縺ソ縺ヲ縺上□縺輔>縲

繧ウ繝。繝ウ繝医r谿九☆