entityRepo = $entityRepo; $this->exportService = $exportService; parent::__construct(); } /** * Exports a chapter to pdf . * @param string $bookSlug * @param string $chapterSlug * @return Response * @throws NotFoundException * @throws Throwable */ public function pdf(string $bookSlug, string $chapterSlug) { $chapter = $this->entityRepo->getEntityBySlug('chapter', $chapterSlug, $bookSlug); $pdfContent = $this->exportService->chapterToPdf($chapter); return $this->downloadResponse($pdfContent, $chapterSlug . '.pdf'); } /** * Export a chapter to a self-contained HTML file. * @param string $bookSlug * @param string $chapterSlug * @return Response * @throws NotFoundException * @throws Throwable */ public function html(string $bookSlug, string $chapterSlug) { $chapter = $this->entityRepo->getEntityBySlug('chapter', $chapterSlug, $bookSlug); $containedHtml = $this->exportService->chapterToContainedHtml($chapter); return $this->downloadResponse($containedHtml, $chapterSlug . '.html'); } /** * Export a chapter to a simple plaintext .txt file. * @param string $bookSlug * @param string $chapterSlug * @return Response * @throws NotFoundException */ public function plainText(string $bookSlug, string $chapterSlug) { $chapter = $this->entityRepo->getEntityBySlug('chapter', $chapterSlug, $bookSlug); $chapterText = $this->exportService->chapterToPlainText($chapter); return $this->downloadResponse($chapterText, $chapterSlug . '.txt'); } }