}
$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);
}