<?php namespace BookStack\Services;
-
use BookStack\Page;
class ExportService
{
$cssContent = file_get_contents(public_path('/css/export-styles.css'));
$pageHtml = view('pages/pdf', ['page' => $page, 'css' => $cssContent])->render();
+ $useWKHTML = config('snappy.pdf.binary') !== false;
$containedHtml = $this->containHtml($pageHtml);
- $pdf = \PDF::loadHTML($containedHtml);
+ if ($useWKHTML) {
+ $pdf = \SnappyPDF::loadHTML($containedHtml);
+ } else {
+ $pdf = \PDF::loadHTML($containedHtml);
+ }
return $pdf->output();
}
foreach ($imageTagsOutput[0] as $index => $imgMatch) {
$oldImgString = $imgMatch;
$srcString = $imageTagsOutput[2][$index];
- if (strpos(trim($srcString), 'http') !== 0) {
- $pathString = public_path($srcString);
+ $isLocal = strpos(trim($srcString), 'http') !== 0;
+ if ($isLocal) {
+ $pathString = public_path(trim($srcString, '/'));
} else {
$pathString = $srcString;
}
+ if ($isLocal && !file_exists($pathString)) continue;
$imageContent = file_get_contents($pathString);
$imageEncoded = 'data:image/' . pathinfo($pathString, PATHINFO_EXTENSION) . ';base64,' . base64_encode($imageContent);
$newImageString = str_replace($srcString, $imageEncoded, $oldImgString);