Подтвердить что ты не робот

Преобразование многостраничного PDF в PNG и обратно (Linux)

У меня есть много документов PDF, которые я хочу конвертировать в PNG, редактировать в Gimp, а затем сохранять обратно в многостраничный файл Acrobat. Я заполняю формы и добавляю отсканированную подпись, пытаясь избежать печати, подписи, а затем снова сканировать, с возможностью ввода информации, которую мне нужно ввести.

Я пытаюсь использовать Imagemagick для преобразования в png файлы, которые, похоже, работают нормально. Я использую команду convert -quality 100 -density 300x300 multipage.pdf single%d.png
(Я не уверен, что параметр качества подходит для png).

Но у меня возникают проблемы с возвратом в PDF. Некоторые из файлов имеют неправильный размер страницы, и я пробовал каждую команду и процедуру, которые я могу найти, но всегда есть несколько нечетных размеров. Резолюция, похоже, отличается тем, что она хорошо смотрится на определенном уровне масштабирования, но либо несколько страниц указаны на ширине около 2 дюймов, либо они равны 8.5x11, а остальные около 35 дюймов. Я пробовал убедиться, что у Gimp был правильный размер и разрешение, и сохранить разрешение в файле, но это, похоже, не имеет значения.

Команда, которую я использую для сохранения файлов, convert -page letter -adjoin single*.png multipage.pdf Я пробовал другие параметры, но ни один из них не имел значения.

Если у кого-нибудь есть идеи или альтернативы, я был бы признателен.

4b9b3361

Ответ 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 

Ответ 2

Почему бы просто не использовать Xournal? Это то, что я использую для аннотирования PDF файлов