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

laravel迺ー蠅縺ァPDF蜃コ蜉帙☆繧区。井サカ縺後≠繧翫∪縺励◆縺ョ縺ァ縲∝ッセ蠢懈婿豕輔r縺皮エケ莉
荳願ィ倥ッLaravel-admin縺ョ逕サ髱「縺ァ縺吶′縲√b縺。繧阪s譎ョ騾壹↓Laravel縺ァ蛻ゥ逕ィ縺ァ縺阪∪縺吶
遒コ隱肴ク医∩縺ョLaravel縺ョ繝舌シ繧ク繝ァ繝ウ縺ッ8.X縺ァ縺吶
6.X莉・髯阪〒縺ゅl縺ー蝠城。後↑縺丞虚菴懊☆繧九ッ縺壹〒縺吶
- 1. Laravel縺ァPDF蜃コ蜉帙☆繧区婿豕
- 2. Laravel-dompdf縺ョ繧、繝ウ繧ケ繝医シ繝ォ
- 3. PDF縺ョ蜻シ縺ウ蜃コ縺
- 3.1. route險ュ螳
- 3.2. 繧ウ繝ウ繝医Ο繝シ繝ゥ險ュ螳
- 3.2.1. Using $this when not in object context縲繧ィ繝ゥ繝シ
- 4. 譌・譛ャ隱槫喧
- 4.1. load_font.php繝繧ヲ繝ウ繝ュ繝シ繝
- 4.2. 繝輔か繝ウ繝医ヵ繧。繧、繝ォ繧、繝ウ繧ケ繝医シ繝ォ
- 4.3. 繝輔か繝ウ繝医ョ繧ウ繝斐シ
- 4.4. Blade繝繝ウ繝励Ξ繝シ繝医〒繝輔か繝ウ繝医r謖螳
- 4.5. Undefined offset: 12239縲繧ィ繝ゥ繝シ縺悟コ蜉帙&繧後k蝣エ蜷
- 5. 蟆上ロ繧ソ
- 5.1. PDF縺ァQR繧ウ繝シ繝峨r陦ィ遉コ縺吶k蝣エ蜷医ョ險倩ソー
- 6. 縺セ縺ィ繧
Laravel縺ァPDF蜃コ蜉帙☆繧区婿豕
繝代ャ繧ア繝シ繧ク縺御ク逡ェ謇九▲蜿悶j譌ゥ縺縲よ怏蜷阪←縺薙m縺ァ縺ッ荳玖ィ倥ョシ偵▽
- laravel-dompdf
- Snappy
縺ッ縺倥a縺ッSnappy縺ァ蜿悶j邨繧薙〒縺縺溘ョ縺ァ縺吶′縲∽ク驛ィ縺縺セ縺上>縺九↑縺驛ィ蛻縺後≠縺」縺溘ョ縺ァlaravel-dompdf縺ク譁ケ驥晁サ「謠
縺昴l繧峨r豈碑シ縺吶k縺ィ縺薙s縺ェ諢溘§
| larave-dompdf | snappy | |
| 繧、繝ウ繧ケ繝医シ繝ォ縺ョ謇矩俣 | 笳 | テ |
| 讖溯ス | 笆ウ | 笳 |
| 譌・譛ャ隱槫ッセ蠢 | テ | テ |
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繝繧ヲ繝ウ繝ュ繝シ繝峨@縺セ縺吶
譏取悃縺ィ繧エ繧キ繝繧ッ2縺、縺ョ譖ク菴薙′縺ゅj縺セ縺吶2譖ク菴薙ヱ繝繧ッ繧偵ム繧ヲ繝ウ繝ュ繝シ繝峨@縺ヲ縺翫>縺滓婿縺悟セ後〒謇矩俣縺後↑縺縺九→諤昴>縺セ縺吶
繝繧ヲ繝ウ繝ュ繝シ繝峨@縺溘iLaravel繧偵う繝ウ繧ケ繝医シ繝ォ縺励◆繝繧」繝ャ繧ッ繝医Μ逶エ荳九↓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繝繧ケ繝&lt;/h1>
</div>
</body>
</html>
縺薙l縺ァ譌・譛ャ隱槭ョPDF縺悟コ蜉帙&繧後k繧医≧縺ォ縺ェ繧翫∪縺励◆縲
Undefined offset: 12239縲繧ィ繝ゥ繝シ縺悟コ蜉帙&繧後k蝣エ蜷
繝輔か繝ウ繝医ヵ繧。繧、繝ォ縺ョ逶ク諤ァ縺ェ縺ョ縺九√お繝ゥ繝シ縺悟コ繧句エ蜷医′縺ゅj縺セ縺吶ゅヵ繧ゥ繝ウ繝医ヵ繧。繧、繝ォ繧貞、画峩縺励※縺ソ縺セ縺励g縺縲
遘√ッMigMix縺ィ縺縺繝輔か繝ウ繝医r蛻ゥ逕ィ縺輔○縺ヲ鬆ゅ″隗」豸医@縺セ縺励◆縲
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縺ョ縺ァ縲√●縺イ蛻ゥ逕ィ縺励※縺ソ縺ヲ縺上□縺輔>縲


