From 4855107f872c4fb09e5dde3a58b1d5da44bd5f7b Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Fri, 3 Dec 2021 07:57:10 +0000 Subject: [PATCH] wait #4932 @0.75 --- .../html5/master/class.ws.html5.links.php | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/inc/ws/Util/html5/master/class.ws.html5.links.php b/inc/ws/Util/html5/master/class.ws.html5.links.php index 69c06e09f..b5c26ca27 100644 --- a/inc/ws/Util/html5/master/class.ws.html5.links.php +++ b/inc/ws/Util/html5/master/class.ws.html5.links.php @@ -3089,20 +3089,34 @@ class articlePDFLink extends articleLink } $cut = $this->wdir . $name . '.c.pdf'; + $sinfos = $this->wdir . $name . '.s.nfo'; if (true || !file_exists($cut)) { + // Cut the pdf in many pages $ratio = $infos->width / $infos->height; - $nb = max(1, ceil(0.7 / $ratio)); + $nb = max(1, ceil(0.707071 / $ratio)); if ($nb == 1) { copy($pdffile, $cut); } else { `mutool poster -y $nb $pdffile $cut`; } + + // Resize to 210mm width + $size = $this->wdir . $name . '.s.pdf'; + `pdfposter $cut $size`; + + $i = `pdfinfo -f 1 -l 1 -box $size`; + if (preg_match('/Page\s+1\s+size:\s+([0-9\.]+) x ([0-9\.]+)/', $i, $matches)) { + $infos = ['width' => $matches[1], 'height' => $matches[1] / $ratio]; + file_put_contents($sinfos, json_encode($infos)); + } + } else { + $infos = json_decode(file_get_contents($sinfos)); } - $this->copyExternalFile($name . '.c.pdf'); + $this->copyExternalFile($name . '.s.pdf'); $text = file_get_contents($htmlfile); - $this->article = ['page' => $this->page, 'type' => 'pdf', 'id' => $name, 'url' => $name, 'infos' => $infos, 'content' => $name . '.c.pdf', 'textcontent' => $text]; + $this->article = ['page' => $this->page, 'type' => 'pdf', 'id' => $name, 'url' => $name, 'infos' => $infos, 'content' => $name . '.s.pdf', 'textcontent' => $text]; $this->compiler->config->articlesList[] = $this->article; $this->compiler->addSEOArticle('#/article/' . $name, $this->title, $this->description, '', $name, $name . '.html', $text); } -- 2.39.5