оптимизация pdf

Dec 26, 2013 05:04



Восхотел я как то книжку в pdf на старом девайсе почитать, понимаю, читать вредно и не благоугодно, от сего всякие мысли заводятся....
но дерзнув на подвиг сей и воздрузив книгу сию пдэфную получил полнейший облом, ибо промыслительно девайс был старых устоев и не каждые пэдээфки читал.
заглянуть
Исполнившись лютой злобы от такого покушения на моё право читать аз курить начал маны и обрёл тучу разных советов, убив изрядно времени жития своего и порушив душевное умиротворение, низпал с высоты ангелского бесстрастия во глубины демонския страстей лютых ибо советы были всякия... и некоторые угробили мою книжку, благо я её промыслительно скопировал, святая копипаста спасла
а такой

gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r150 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dMaxStripSize=8192 -sOutputFile=%02d.jpg input.pdf

вкупе с этим

convert -limit memory 32mb -limit map 64mb *.jpg input_web.pdf
(или вообще -limit memory 0 -limit map 0 )

оказался полезен, несмотря на то что ImageMagick при сборке подвесил систему и вылетел с ошибкой

libgomp: Thread creation failed: Pecypc вpeмeннo нeдocтyпeн

победа же далась только опосля установки пакета graphicsmagick-imagemagick-compat удалившего ImageMagick
токмо книжица собралась неправильно, на беду мою там тыща страниц было....и опосля десятой сразу сотая шествовала, а затем и тысячная....
я ринулся было сие дело править командами Патрикоугодными:

rename 's/^/000/' *.jpg # добавить префикс '000' у *.jpg
rename 's/000//' *.jpg # убрать префис '000' у *.jpg
но осознал, что не туда путь держу, ибо в обезьянье царство заводит...
и методом тыка научного прознал таки я о значении циферки в конце формулы волшебной %02d.jpg не простая она, 02 - это два нолика впереди и годится до сотни страничек, а для тыщи 04 надо писать )
чтож, собрал всё я заново ... однако книжица стала гораздо увесистей и опечалился я зело, но дух унылый кости сушит, а кручина до добра не доводит, и посему обратился вновь ко всемирному разуму...

Опосля же всех перипетий, встретившихся на моем скорбном пути, укурившись как следует манами я наткнулся на дивное:

ps2pdf -dUseFlatCompression=true test.pdf

и просветление настигло меня, ибо сие был истинный юниксвэй )))

WARNING детям до 18 разворачивать lj-cut низя: был использован боярский язык

find . -name "*.pdf.pdf" -exec cp {} tmp/ \; cd tmp/; rename 's/.pdf.pdf/.pdf/g' *.pdf.pdf; pdftk *.pdf cat output книжка.pdf

ещё годный способ (главное не перепутать входной и выходной файлы):
http://milan.kupcevic.net/ghostscript-ps-pdf/

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
параметры
PDF optimization level selection options
-dPDFSETTINGS=/screen (screen-view-only quality, 72 dpi images)
-dPDFSETTINGS=/ebook (low quality, 150 dpi images)
-dPDFSETTINGS=/printer (high quality, 300 dpi images)
-dPDFSETTINGS=/prepress (high quality, color preserving, 300 dpi imgs)
-dPDFSETTINGS=/default (almost identical to /screen)

Paper size selection options
-sPAPERSIZE=letter
-sPAPERSIZE=a4
-dDEVICEWIDTHPOINTS=w -dDEVICEHEIGHTPOINTS=h (point=1/72 of an inch)
-dFIXEDMEDIA (force paper size over the PostScript defined size)

Other options
-dEmbedAllFonts=true
-dSubsetFonts=false
-dFirstPage=pagenumber
-dLastPage=pagenumber
-dAutoRotatePages=/PageByPage
-dAutoRotatePages=/All
-dAutoRotatePages=/None
-r1200 (resolution for pattern fills and fonts converted to bitmaps)
-sPDFPassword=password

пара способов отсюда

convert -density 300x300 -quality 100 mine1.pdf mine2.pdf merged.pdf

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=merged.pdf mine1.pdf mine2.pdf

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages -dCompressFonts=true -r150 -sOutputFile=output.pdf input.pdf

https://www.linuxuprising.com/2018/09/easily-compress-pdf-files-in-linux-with.html

ps2pdf -dUseFlateCompression=true -dOptimize=true -dProcessColorModel=/DeviceRGB -dUseCIEColor=true -r72 -dDownsampleGrayImages=true -dAutoFilterColorImages=false -dDownsampleColorImages=true -dDownsampleMonoImages=true -dGrayImageDownsampleType=/Bicubic input.pdf

Очень длинная команда:

gs -q -dNOPAUSE -dBATCH -dSAFER -dPDFA=2 -dPDFACompatibilityPolicy=1 -dSimulateOverprint=true -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dPDFSETTINGS=/screen -dEmbedAllFonts=true -dSubsetFonts=true -dAutoRotatePages=/None -dColorImageDownsampleType=/Bicubic -dColorImageResolution=150 -dGrayImageDownsampleType=/Bicubic -dGrayImageResolution=150 -dMonoImageDownsampleType=/Bicubic -dMonoImageResolution=150 -sOutputFile=output.pdf input.pdf

Самый простой способ:
convert -compress Zip -density 150x150 input.pdf output.pdf

Довольно простой и эффективный способ:
convert -density 150x150 -quality 70 -compress jpeg -resize 80% input.pdf output.pdf

Посмотреть сколько картинок в файле pdf
pdfimages -list input.pdf

PS
если картинки недожало, то:

mogrify -resize 1175x825 *.jpg

find . -name "*.jpg" -size +1000k -exec convert -resize 3508 -quality 85% {} {} \;

расчёт листа А4
"""
Размер листа А4 составляет 297(мм) х 210(мм) или 11.75(дюйма) х 8.25(дюйма) . Исходя из разрешения в 72 дпи (точек на дюйм) , лист формата А4 будет эквивалентен 846(пикселей) х 594(пикселя) :
11.75(дюйма) х 72(дпи) = 846 (пикселей)
8.25(дюйма) х 72(дпи) = 594 (пикселя)
"""
расчёт качества
"""
- 4961х7016 пикселов при разрешении 600 дпи
- 2480х3508 пикселов при разрешении 300 дпи (рекомендую для печати)
- 1240х1754 пикселов при разрешении 150 дпи
- 595х842 пикселов при разрешении 72 дпи (для просмотра с экрана)
"""

форматнуть djvu в pdf

sudo apt install djvulibre-bin
ddjvu -format=pdf Книга.{djvu,pdf}

форматнуть кучу html в pdf и собрать книжку

libreoffice --headless --convert-to pdf:writer_pdf_Export --outdir $HOME/tmp/convert *.html
rename 's/^/00/' *.pdf
apt-get install pdftk
pdftk *.pdf cat output newfile.pdf
но почему то pdftk начал с 10й и в конце с 1 по 9ю, сколько бы ноликов впереди не ставил (( только pdfchain нормально собрал
apt-get install pdfchain

PS pdftk и pdfchain нет в новой убунте, поэтому
pdfunite *.pdf out.pdf
qpdf --empty --pages *.pdf -- out.pdf

Массовое переименование файлов
С помощью bash:

for i in *.c; do
mv $i `echo $i | sed 's/\.c$/.bak/'`
done
С помощью Perl:

$ rename 's/\.c\.orig$/.c/' *.c # переименовать все *.c.orig в *.c
$ rename 'y/A-Z/a-z/' *.JPG # имена фотографий маленькими буквами
$ rename 's/\U/\u/g' *.JPG # тоже самое
$ rename '$_=lc' * # тоже самое, но для всех файлов
$ rename 's/deftones-//' *.mp3 # убрать префис 'deftones-' у *.mp3
$ rename 's/^/jerk-/' *.swf # добавить префикс 'jerk-' у *.swf
$ rename 's/ /_/g' * # пробелы в именах файлах заменить на '_'

Снятие ограничений с PDF документа
qpdf --decrypt restricted-input.pdf unrestricted-output.pdf

Как удалить пароль из PDF в Linux

Как просмотреть или отредактировать метаданные pdf или изображениях из командной строки Linux
https://exiftool.org/

https://www.ghostscript.com/doc/Use.htm
http://www.linux.org.ru/forum/desktop/4487423#comment-4489125
Уменьшить размер PDF файла
Работа с PDF в Linux
Как объединить и разбить PDF в Linux подручными средствами
Пакетное изменение размера изображений
Как записать формат А4 в пикселях(ширина, высота)?
Сколько пикселей в бумаге А4? Нужен размер бумаги в пикселях для фотошопа!
ImageMagick - консольный графический редактор
Как уменьшить размер JPG без потери качества в Ubuntu
Большая поваренная книга программиста. / → *nix → ImageMagick
Оптимизация изображений для сайта
Работаем с PDF в Linux - «Хакер»
Руководство пользователя ImageMagick v. 7.1.0 [Иван Титаренко] (fb2)

команды, сортировка, утилита, конвертация, linux, скрипты, graphics, pdf, консоль

Previous post Next post
Up