add pdfserver
This commit is contained in:
72
app/routes/pdfserver.php
Normal file
72
app/routes/pdfserver.php
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
|
||||
function pdfs_filename($pdf){
|
||||
return basename($source, ".pdf");
|
||||
}
|
||||
|
||||
|
||||
function pdfs_count($pdf){
|
||||
|
||||
$result = exec("pdftk $pdf dump_data | grep NumberOfPages");
|
||||
return trim(str_replace("NumberOfPages:", '', $result));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function pdfs_cachefile($pdf){
|
||||
|
||||
$basefile = basename($pdf);
|
||||
$cachefile = PDFDIR.$basefile;
|
||||
$cacheurl = PDFURL.$basefile;
|
||||
|
||||
if (!file_exists($cachefile)) {
|
||||
if (copy($pdf, $cachefile))
|
||||
return $cacheurl;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
return $cacheurl;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function pdfs_init($source, $page = 1){
|
||||
|
||||
$result = array();
|
||||
|
||||
if (!file_exists($source))
|
||||
return false;
|
||||
|
||||
$result['count'] = pdfs_count($source); // количество страниц
|
||||
$result['pdfurl'] = pdfs_cachefile($source); //полный файл на скачку
|
||||
|
||||
|
||||
$name = basename($source, ".pdf");
|
||||
$cachedir = PGDIR.$name.'/';
|
||||
$cachefile = $name.'-'.$page.'.pdf';
|
||||
$fullcachefile = $cachedir.$cachefile;
|
||||
|
||||
if (!file_exists($fullcachefile)){
|
||||
|
||||
if (!is_dir($cachedir))
|
||||
mkdir($cachedir);
|
||||
|
||||
$cmd = "pdftk $source cat 1 output $fullcachefile";
|
||||
shell_exec($cmd);
|
||||
|
||||
}
|
||||
|
||||
if (file_exists($fullcachefile))
|
||||
$result['pdfpgurl'] = PGURL.$name.'/'.$cachefile;
|
||||
else
|
||||
return false;
|
||||
|
||||
return $result;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user