Ответ 1
"Я не уверен, что параметр качества подходит для PNG".
Для вывода PNG настройка -quality
очень отличается от настройки качества JPEG (которая просто является целым числом от 0
до 100
).
Для PNG он состоит из двух отдельных цифр:
-
Первая цифра (десятки) (в значительной степени) уровня сжатия zlib, и она может идти от
0
до9
.
(Однако настройка0
имеет особое значение: при ее использовании вы получите сжатие Хаффмана, а не уровень сжатия zlib 0. Это часто бывает лучше... странно, но верно.) -
Вторая цифра - это тип фильтра кодирования данных PNG (перед сжатием):
- 0 нет,
- 1 является "sub",
- 2 "вверх",
- 3 является "средним",
- 4 - "Paeth" и
- 5 является "адаптивным".
В практическом плане это означает:
- Для иллюстраций с сплошными последовательностями цвета фильтр "none" (
-quality 00
) обычно является наиболее подходящим. - Для фотографий естественных ландшафтов "адаптивная" фильтрация (
-quality 05
), как правило, самая лучшая.
"У меня проблемы с сохранением в PDF. Некоторые из файлов имеют неправильный размер страницы, и я пробовал каждую команду и процедуру, которые я могу найти [...], но либо несколько страниц указаны в около 2", или они 8.5x11, но остальные около 35 "в ширину".
Не имея доступных файлов PNG, я создал несколько простых с разными размерами, чтобы проверить разные команды (поскольку я больше не был уверен в себе). Действительно, тот, который вы использовали:
convert -page letter -adjoin single*.png multipage.pdf
создает все PDF-страницы в одном и том же размере письма, но он всегда помещает мой образец PNG (по-разному) в нижний левый угол страницы PDF. (Если PNG превышает размер страницы PDF, он масштабирует их, чтобы они соответствовали друг другу, - но он не масштабирует меньшие PNG, чтобы заполнить доступное пространство страницы.)
Следующая модификация команды поместит PNG в центр каждой страницы PDF:
convert \
-page letter \
-adjoin \
single*.png \
-gravity center \
multipage.pdf
Если вам это пока недостаточно, вы можете принудительно выполнить (возможно, непропорциональное!) масштабирование, чтобы почти заполнить область письма, добавив параметр -scale '590!x770!'
(это оставит границу по 11 pt на каждом краю страницы):
convert \
-page letter \
-adjoin \
single*.png \
-gravity center \
-scale '590!x770!' \
multipage.pdf
Чтобы оставить дополнительную границу, используйте -scale '612!x792!'
. - Если вы хотите, чтобы при необходимости сохранялось только масштабирование вверх, сохраняя соотношение сторон PNG, используйте -scale '590<x770<'
:
convert \
-page letter \
-adjoin \
single*.png \
-gravity center \
-scale '590<x770<' \
multipage.pdf