return $pages;\r
}\r
\r
+ public function appendDocument($book_id, $document_id)\r
+ {\r
+ $r = $core->con->select('SELECT MAX(book_page) AS book_page FROM books WHERE book_id=\'' . $core->con->escape($book_id) . '\'');\r
+ $lastPage = $r->book_page;\r
+ $this->insertDocument($book_id, $lastPage, $document_id);\r
+ }\r
+\r
+ public function removePage($book_id, $book_page)\r
+ {\r
+ // Supprime la page\r
+ $core->con->execute('DELETE FROM book_pages WHERE book_page=\'' . $core->con->escape($book_page) . '\' AND book_id=\'' . $core->con->escape($book_id) . '\'');\r
+ // Décale les pages suivantes vers le haut\r
+ $this->decalePages($book_id, $book_page, -1);\r
+ }\r
+\r
+ public function insertPage($book_id, $after_page, $document_id, $document_page)\r
+ {\r
+ // Décale les pages vers le bas\r
+ $this->decalePages($book_id, $after_page, 1);\r
+ // Insère la page\r
+ $c = $core->con->openCursor('book_pages');\r
+ $c->book_id = $book_id;\r
+ $c->book_page = $after_page + 1;\r
+ $c->document_id = $document_id;\r
+ $c->document_page = $document_page;\r
+ $c->insert();\r
+ }\r
+\r
+ public function insertDocument($book_id, $after_page, $document_id)\r
+ {\r
+ // Obtiens le nombre de pages\r
+ $r = $core->con->select('SELECT pages FROM documents WHERE document_id=\'' . $core->con->escape($document_id) . '\'');\r
+ // Décale les pages vers le bas\r
+ $this->decalePages($book_id, $after_page, $r->pages);\r
+ // Insère les pages\r
+ $c = $core->con->openCursor('book_pages');\r
+ $c->book_id = $book_id;\r
+ $c->document_id = $r->document_id;\r
+ for($i = 1;$i <= $r->pages;$i++) {\r
+ $c->document_page = $i;\r
+ $c->book_page = $after_page + $i;\r
+ $c->insert();\r
+ }\r
+ }\r
+\r
+ protected function decalePages($book_id, $after_page, $decalage)\r
+ {\r
+ $decalage = ($decalage >= 0)?'+' . $decalage:$decalage;\r
+ $core->con->execute('UPDATE book_pages SET book_page=book_page' . $decalage . ' WHERE book_page>' . $core->con->escape($book_page) . ' AND book_id=\'' . $core->con->escape($book_id) . '\'');\r
+ }\r
+\r
public function getListe($orderby = null, $sens = null, $limit = null)\r
{\r
if (!is_null($this->q)) {\r
protected $document_id;\r
protected $file;\r
protected $proprietaire;\r
- protected $pagesNumber;\r
+ protected $pages;\r
protected $trim;\r
protected $date;\r
protected $localInfos;\r
protected $infos;\r
protected $textes;\r
\r
- protected $pages;\r
-\r
public function copyOriginal($tmp_file)\r
{\r
$this->out = ROOT . '/docs/' . $this->document_id . '/';\r
$pdftk->execute();\r
$this->addToLog($pdftk);\r
\r
+ $docInfos = $this->parseInfos($pdfinfo->output . $pdftk->output);\r
+\r
file_put_contents($this->infos, $pdfinfo->output . $pdftk->output);\r
}\r
\r
+ public function parseInfos($data)\r
+ {\r
+ $res = array();\r
+ $lines = explode("\n", $data);\r
+ foreach($lines as $line) {\r
+ $line = trim(cubeText::condenseWhite($line));\r
+ $e = explode(':', $line, 2);\r
+ $k = trim($e[0]);\r
+ $v = trim($e[1]);\r
+ if ($k == 'Pages' || $k == 'NumberOfPages') {\r
+ $res['pages'] = $v;\r
+ } elseif (preg_match('|Page ([0-9]+) (.*)Box: ([0-9.]*) ([0-9.]*) ([0-9.]*) ([0-9.]*)|iu', $line, $m)) {\r
+ $res['page'][$m[1]][strtolower($m[2])] = array($m[3], $m[4], $m[5], $m[6]);\r
+ } elseif (preg_match('|Page ([0-9]+) size: ([0-9.]*)([\sx]+)([0-9.]*)(.*)|iu', $line, $m)) {\r
+ $res['page'][$m[1]]['size'] = array($m[2], $m[4]);\r
+ }\r
+ }\r
+\r
+ return $res;\r
+ }\r
+\r
public function getTexts()\r
{\r
$pdftotext = new cubeCommandLine('pdftotext', null, true);\r