Преобразование изображения в PDF с компрессией и функциональностью многостраничного PDF в PHP

Я пытался использовать fpdf,fpdi, tcpdf, htlm2pdf для создания PDF-файлов из файлов изображений. Я могу заставить их всех работать, но проблема в том, что я не могу заставить их сжать файл с помощью сжатия PDF. Если у меня есть изображение размером 5 МБ и я использую любое из вышеперечисленного для создания PDF, я получаю файл PDF 5 МБ. Если я создаю изображение с использованием Adobe, я могу получить PDF до 700 КБ без заметного снижения четкости изображения. Я пробовал API Convertapi, и это также дает мне сжатый PDF-файл, который я хочу, но он может делать только отдельные страницы. Мне также нужно иметь возможность конвертировать несколько изображений в один многостраничный PDF. Любые другие идеи будут высоко оценены.

1 ответ

Если вы хотите уменьшить размер PDF-файлов, лучше всего использовать Ghostscript:

 exec('gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook  -dNOPAUSE  -dBATCH -sOutputFile='.$output_file.' '.$file.' ',$output, $return_var);

Если вы хотите, чтобы каждая страница была в разных файлах:

exec('convert -density 300 -trim "'.$file.'" -resize 1000 -quality 85 -colorspace RGB -background white  "'.$destination.'" &', $output, $return_var);

Будьте осторожны с символом & в конце $ destination, он назовет ваш файл "mypdf.pdf" с 5 страницами в "mypdf-0.pdf, mypdf-1.pdf..." для каждой страницы.

Другие вопросы по тегам