Рубрика: Павел
Архив статей и записей написанных Грибовым Павлом
Жизнь замечательных грибов
Архив статей и записей написанных Грибовым Павлом
Сначала хотел городить огород с asort(), но после поисков, нашел что разработчики PHP уже давным давно все придумали до нас. Оказывается есть функция array_multisort. Как работает эта функция:
array_multisort( array &$arr [, array &$arr [, array &$arr… ]] )
Грубо говоря каждый массив будет отсортирован в соответствии с предыдущим массивом. Вот пример:
1 2 3 4 5 6 |
//Сортируемый масив $array_main=array('foo','bar','foobar',); //Определяющий массив $array_id=array(3,1,2,); array_multisort($array_id, $array_main); var_dump($array_main); |
Выведет:
array(4) {[0]=> string(3) «bar»[1]=> string(3) «foobar»[2]=> string(3) «foo»}
А это как раз то что нам надо!
Пример сортировки массива по полю year:
1 2 3 4 5 6 |
$data_year=array(); //Генерируем "определяющий" массив foreach($data as $key=>$arr){ $data_year[$key]=$arr['year']; } array_multisort($data_year, SORT_NUMERIC, $data); |
Пример сортировки массива по полям year и author:
1 2 3 4 5 6 7 8 9 |
$data_author=array(); foreach($data as $key=>$arr){ $data_author[$key]=$arr['author']; } $data_year=array(); foreach($data as $key=>$arr){ $data_year[$key]=$arr['year']; } array_multisort($data_year, SORT_NUMERIC, $data_author, $data); |
Ситуация: бухгалтерия отсканировала кипу документов в 300dpi, чтобы отослать письмом. Файлы получились 20-30мб. Задача: сжать.
Способ 1:
Устанавливаем Ghostscript и pdftk
1 |
sudo apt-get install ghostscript pdftk |
Далее кидаем файлы pdf в какую-то папку,далее создаем и запускаем следующий скрипт:
1 2 3 4 5 6 7 8 |
for file in *.pdf; do ps=".ps"; pdf2ps $file "$file+$ps"; done for file in *.ps; do pdf=".pdf"; pdf2ps $file "$file+$pdf"; done |
В итоге получаем сжатые в несколько раз файлы.
Способ 2:
Воспользуемся ghostscript. Убедимся, что он установлен:
1 |
sudo apt-get install ghostscript |
А затем сожмем PDF:
1 2 3 4 |
for file in *.pdf; do pdf=".pdf"; gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile="$file$pdf" $file done |
-dPDFSETTINGS=configuration
Presets the «distiller parameters» to one of four predefined settings:
/screen selects low-resolution output similar to the Acrobat Distiller «Screen Optimized» setting.
/printer selects output similar to the Acrobat Distiller «Print Optimized» setting.
/prepress selects output similar to Acrobat Distiller «Prepress Optimized» setting.
/default selects output intended to be useful across a wide variety of uses, possibly at the expense of a larger output file.
Вход с системное меню с панели принтера: кнопка системное меню. Пароль/логин по умолчанию на новом принтере 3500/3500 После того как пропишете IP адрес, дальнейшее конкурирование принтера возможно через WEB интерфейс (http://IP:80). Пароль/Логин на вход администратора по умолчанию Admin/Admin. Из прелестей: сканирование с лотка на почтовый ящик, в папку