order; $ret = $this->makeA4() ->inline(); if ($order->status_receipt_download_datetime === null) { $order->status_receipt_download_datetime = DateUtil::now(); // イベント登録 DownloadedEvent::dispatch($this->order); } $this->save(); return $ret; } public function getA4File(): A4Receipt { $ret = $this->makeA4() ->output(); $file = new A4Receipt(); $file->put($ret); return $file; } protected function makeA4(): PdfWrapper { $data = $this->getPDFData(); $pdf = PDF::loadView('pdf/receipt_a4', $data); // はがきサイズを指定 $ret = $pdf->setPaper('A4') ->setOption('encoding', 'utf-8'); return $ret; } public function downlaodLetter() { $data = $this->getPDFData(); $pdf = PDF::loadView('pdf/receipt_letter', $data); // はがきサイズを指定 $ret = $pdf->setOption('page-height', 148) ->setOption('page-width', 100) ->setOption('encoding', 'utf-8') ->inline(); return $ret; } protected function getPDFData() { $o = $this->order; $tax = $o->receiptIssuingOrderTaxes->firstOrFail(); return [ ...$this->order->toArray(), ReceiptIssuingOrder::COL_NAME_STATUS_RECEIPT_CONFIRM_DATETIME => $o->status_receipt_confirm_datetime->format('Y/m/d'), ReceiptIssuingOrder::COL_NAME_RECEIPT_USE_DATE => $o->receipt_use_date->format('Y/m/d'), ReceiptIssuingOrder::COL_NAME_RECEIPT_AMOUNT => number_format($o->receipt_amount), 'pref_name' => PrefCode::getName($o->mail_pref_code), ReceiptIssuingOrderTax::COL_NAME_TAX_RATE => data_get($tax, ReceiptIssuingOrderTax::COL_NAME_TAX_RATE, 0), ReceiptIssuingOrderTax::COL_NAME_TAX_AMOUNT => number_format(data_get($tax, ReceiptIssuingOrderTax::COL_NAME_TAX_AMOUNT, 0)), ]; } }