load($recordNo); } else { $this->receipt = new Receipt(); } } private function load(int $recordNo) { $this->receipt = Receipt::find($recordNo); } public function getReceipt(): Receipt { return $this->receipt; } public function makePdf(): ReceiptReceipt { $pdf = PDF::loadView("pdf/receipt", $this->getPdfData()) // ->setPaper("A4") ->setOption('page-width', 210) ->setOption('page-height', 148) ->setOrientation("Portrait") ->setOption('encoding', 'utf-8'); $file = new ReceiptReceipt(); $file->setAppFileName($this->makeFileName($file)) ->put($pdf->output()); return $file; } private function makeFileName(ReceiptReceipt $file) { return sprintf( "領収証_%s_%s_%s.%s", $this->receipt->receiptNo, $this->receipt->customerName, $this->receipt->receiptPurpose, $file->getFileExtension(), ); } private function getPdfData() { return [ 'receiptDate' => "2023/10/17", 'receiptCustomerName' => $this->receipt->receiptCustomerName, 'receiptTotalAmount' => number_format($this->receipt->receiptTotalAmount), 'taxTotalAmount' => number_format(100), 'receiptPurpose' => $this->receipt->receiptPurpose, ]; } }