\r
protected function fillIndexWithWords(&$index, $page, $ipage)\r
{\r
- $words = explode('\n', trim($ipage));\r
+ $twords = explode("\n", trim($ipage));\r
\r
- foreach($words as $worddatas) {\r
- list($word, $count) = explode(',', $worddatas);\r
+ foreach($twords as $woadata) {\r
+ list($woa, $worddata) = explode(',', trim($woadata));\r
+ list($total, $wordslist) = explode("\t", $worddata, 2);\r
\r
- if (!isset($index[$word])) {\r
- $index[$word] = array('total' => 0, 'pages' => array());\r
+ if (!isset($index[$woa])) {\r
+ $index[$woa] = array('total' => 0, 'words' => array());\r
}\r
- if (!isset($index[$word]['pages'][$page])) {\r
- $index[$word]['pages'][$page] = 0;\r
+ $index[$woa]['total'] += $total;\r
+\r
+ $words = explode("\t", $wordslist);\r
+\r
+ foreach($words as $word) {\r
+ list($wordwa, $count) = explode('$', $word, 2);\r
+ if (!isset($index[$woa]['words'][$wordwa])) {\r
+ $index[$woa]['words'][$wordwa] = array('total' => 0, 'pages' => array());\r
+ }\r
+ if (!isset($index[$woa]['words'][$wordwa]['pages'][$page])) {\r
+ $index[$woa]['words'][$wordwa]['pages'][$page] = 0;\r
+ }\r
+ $index[$woa]['words'][$wordwa]['total'] += $count;\r
+ $index[$woa]['words'][$wordwa]['pages'][$page] += $count;\r
}\r
- $index[$word]['total'] += $count;\r
- $index[$word]['pages'][$page] += $count;\r
}\r
}\r
\r
$pages = $this->getPagesOfBook($book_id);\r
}\r
\r
+ public function compilePDF($book_id)\r
+ {\r
+ // Assemblage du pdf final\r
+ $document = $root . '/data/document.pdf';\r
+\r
+ $documents = array_unique($documents);\r
+ if (count($documents) == 1 && !$optimizepdf) {\r
+ copy($droot . '/' . $documents[0] . '/original.pdf', $document);\r
+ } else {\r
+ $liste = array();\r
+ foreach($documents as $doc) {\r
+ $liste[] = $droot . '/' . $doc . '/original.pdf';\r
+ }\r
+ $l = implode(' ', $liste);\r
+ $gs = new cubeCommandLine('gs', null, true);\r
+ $gs->setEnv('PATH', self::$path);\r
+ $gs->setEnv('GS_FONTPATH', '/home/typo/fonts');\r
+ $gs->setArg('-dBATCH');\r
+ $gs->setArg('-dNOPAUSE');\r
+ $gs->setArg('-dNOPROMPT');\r
+ $gs->setArg('-sOutputFile=' . $document);\r
+ $gs->setArg('-sDEVICE=pdfwrite');\r
+ if ($optimizepdf) {\r
+ $gs->setArg('-dPDFSETTINGS=/ebook');\r
+ $gs->setArg('-dColorConversionStrategy=/LeaveColorUnchanged');\r
+ $gs->setArg('-dAutoRotatePages=/None');\r
+ } else {\r
+ $gs->setArg('-dPDFSETTINGS=/default');\r
+ }\r
+ $gs->setArg('f');\r
+ $gs->setManualArg($l);\r
+ $gs->execute();\r
+ // Si l'opération a échoué, on se contente de copier le premier fichier\r
+ if (!file_exists($document) || filesize($document) < 100 * 1024) {\r
+ copy($droot . '/' . $documents[0] . '/doc.pdf', $document);\r
+ }\r
+ }\r
+ }\r
+\r
public function compile($book_id, $version = 3, $complete = false)\r
{\r
if ($version == 3) {\r
}\r
}\r
\r
+ if ($book->parametres->pdf) {\r
+ // Si l'export PDF est activé, on compile le PDF\r
+ $this->compilePDF($book_id);\r
+ }else{\r
+ // Sinon, on l'efface si il est présent\r
+ }\r
+\r
$this->touchCompile($book_id);\r
\r
return $res;\r