From 8f01e4b89e065f08d483c8492b2ee6aa5ecb1b4f Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Mon, 19 Oct 2020 10:45:09 +0000 Subject: [PATCH] wait #3966 @1 --- inc/ws/Controlleur/class.ws.flash.php | 2 +- inc/ws/Metier/class.ws.document.php | 10 ++++++++-- inc/ws/Util/class.ws.pdf.convert.php | 26 +++++++++++++++++++++++++- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/inc/ws/Controlleur/class.ws.flash.php b/inc/ws/Controlleur/class.ws.flash.php index 20ae31f7a..82ac6761b 100644 --- a/inc/ws/Controlleur/class.ws.flash.php +++ b/inc/ws/Controlleur/class.ws.flash.php @@ -369,7 +369,7 @@ class wsFlash extends cubeFlashGateway $docs = array(); $defaultNum = array(); foreach ($pages as $page => $info) { - $book->getFile($page, 'jpg', 150, true, true); + $book->getFile($page, 'swf', 150); $file = WS_DOCS . '/' . $info['document_id'] . '/p' . $info['document_page'] . '.jpg'; if (!file_exists($file)) { $info['resolution'] = 150; diff --git a/inc/ws/Metier/class.ws.document.php b/inc/ws/Metier/class.ws.document.php index 21981f9a9..828838a95 100644 --- a/inc/ws/Metier/class.ws.document.php +++ b/inc/ws/Metier/class.ws.document.php @@ -391,6 +391,8 @@ class wsDocument extends cubeMetier } if ($format === 'svg') { $version = 'html'; + } else if ($format === 'swf') { + $version = ''; } if ($resolution === 'thumb') { @@ -418,11 +420,13 @@ class wsDocument extends cubeMetier $file = $dir . $prefix . $page . '-' . $resolution . '.' . $format; $alt = $dir . $prefix . $resolution . '-' . $page . '.' . $format; } + } else if ($format === 'swf') { + $file = $dir . 'p' . $page . '.' . $format; } $do = false; if (!file_exists($file)) { - if (isset($alt) && file_exists($alt) && filesize($alt)>$minsize) { + if (isset($alt) && file_exists($alt) && filesize($alt) > $minsize) { rename($alt, $file); $do = false; } else { @@ -464,6 +468,8 @@ class wsDocument extends cubeMetier $rr = $version === 'html' ? $this->getResolutionRatio() : $this->getMobileFirstRatio(); wsPDFConvert::makeShotPNM($this->getSplittedPDFPage($page), $file, 1, '', $resolution * $rr, 85, 4, $withText, null, null, $format); } + } else if ($format === 'swf') { + wsPDFConvert::makeSWF($this->getSplittedPDFPage($page), $file, 1, $resolution, 80); } unlink($lock); } @@ -497,7 +503,7 @@ class wsDocument extends cubeMetier // Thumb for composition panel $this->makeMiniShot($page); // Image for link editor - $this->getFile($page, 'jpg', 150, true, true); + $this->getFile($page,'swf'); // Make SVG base file $this->makeSVGFile($page, false); } diff --git a/inc/ws/Util/class.ws.pdf.convert.php b/inc/ws/Util/class.ws.pdf.convert.php index c88871bd9..03f763fa6 100644 --- a/inc/ws/Util/class.ws.pdf.convert.php +++ b/inc/ws/Util/class.ws.pdf.convert.php @@ -26,6 +26,29 @@ class wsPDFConvert self::makeShot($in, $out, $page, $prefix, null, $quality, $antialiasing, $method, -1, $h, $format); } + public static function makeSWF($in, $out, $page, $resolution = 150, $quality = 90) + { + + $pdf2swf = new CubeIT_CommandLine('/usr/local/swftools/latest/bin/pdf2swf', null, true); + $pdf2swf->setPath(CONVERTER_PATH); + $pdf2swf->setArg('p', $page); + $pdf2swf->setArg('set poly2bitmap'); + $pdf2swf->setArg('set multiply', 1); + $pdf2swf->setArg('T', 10); + $pdf2swf->setArg('set reordertags', '0'); + $pdf2swf->setArg('fonts'); + $pdf2swf->setArg('set storeallcharacters'); + $pdf2swf->setArg('set subpixels', $resolution / 72); + $pdf2swf->setArg('set jpegquality', $quality); + $pdf2swf->setArg('set disablelinks'); + $pdf2swf->setArg('set dots'); + $pdf2swf->setArg(null, $in); + $pdf2swf->setArg('output', $out); + $pdf2swf->execute(); + $pdf2swf->debug(); + } + + public static function makeBaseSVGFile($in, $out, $page) { $pdftocairo = new CubeIT_CommandLine('pdftocairo'); @@ -40,7 +63,8 @@ class wsPDFConvert $pdftocairo->execute(); } - public static function makeTextSVGFile($in,$out){ + public static function makeTextSVGFile($in, $out) + { $svg = new DOMDocument(); $svg->preserveWhiteSpace = false; $svg->load($in, LIBXML_PARSEHUGE); -- 2.39.5