Використовуєте Ghostscript для перетворення багатосторінкового PDF в єдиний JPG?


15

Я знаю, що Ghostscript може конвертувати PDF-файли в JPG, а у випадку з багатосторінковим PDF-файлом можна зірвати кожну сторінку до окремої JPG. Але чи можна їх зірвати в один JPG, щоб сторінки вставили одна під одну, наприклад, верхня половина JPG - це сторінка 1, нижня половина - сторінка 2? Або мені потрібно використовувати іншу програму (і чи може це зробити ImageMagick?), Щоб об'єднати сторінки JPG в одне зображення?

Відповіді:


17

Так, вам доведеться конвертувати кожну сторінку PDF в один файл JPG (Ghostscript може це зробити).

Потім зшийте отримані файли JPG за допомогою іншої програми ( ImageMagick або GraphicsMagic може це зробити за допомогою своїх montageпідкоманд).

Я не знаю жодного програмного забезпечення, яке може це зробити за один раз.

Перетворення PDF в JPG (за допомогою Ghostscript): Ви хочете переконатися, що ви отримаєте найкращий можливий результат. Тому переконайтеся, що ви налаштували параметри командного рядка, щоб вони працювали для вас. Я почав би з цього:

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

Це створить JPG, які називаються pdffile-001.jpeg , pdffile-002.jpg тощо. Параметр * -dJPEGQ = 95 "встановлює" якість JPEG "на 95%. Він використовує роздільну здатність" 600x600 dpi ". Можливо, вам доведеться додатково керуйте розміром сторінки отриманих JPG-файлів у випадку, якщо за замовчуванням ваш Ghostscript не відповідає вашим потребам:

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -dDEVICEWIDTHPOINTS=800 ^
    -dDEVICEHEIGHTPOINTS=600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

або

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -sDEFAULTPAPERSIZE=a4 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

кратно до однієї JPG-шити з montage(ImageMagick або GraphicsMagick):montage команда (яка використовується в цьому прикладі є ImageMagick) дозволяє контролювати зразок плитки. Якщо ви використовуєте, наприклад,-tile 4x3ви отримаєте цей макет накладення:

1  2  3  4    
5  6  7  8    
9 10 11 12    

Ви можете використовувати цю команду, щоб зшити 12 окремих JPG в один:

montage ^
    -border 0  ^
    -tile 4x3  ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg  ^
    c:/path/to/final.jpg

Звичайно, montageє багато десятків додаткових параметрів, які дозволяють визначити фон, інтервал, зміщення, декор, мітки, обертання, обрізання, підпис тощо для введення та отриманого JPG.


EDIT: (Я хотів дати цю підказку вже в оригінальній відповіді, але забув.)montageЗа замовчуванням буде використана плитка розміром 120x120 пікселів. Якщо ви хочете зберегти початкові розміри сторінок для кожної плитки, вам доведеться додати-geometryдо командного рядка. Якщо припустити, щоу вашому PDF-сторінках було сторінки формату A4 (= 595x852 пт), і ви хочете зберегти це, а також додати відстань 11pt до горизонталі та 22 pt до вертикального напрямку плитки (плюс 4pt сильні сірі рамки / рамки ліній навколо кожної плитки), зробіть це:

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg

EDIT 2: (Пропущено ще один важливий натяк.) Якщо ви не хочете втрачати гарну якість зображення під час процесу зшивання / монтажу, який створив ваш перетворення PDF у JPG, тоді також додайте-quality 100параметр у ваш такий командний рядок :

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    -quality 100 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg

Спасибі за вашу відповідь. Я не бачу параметри геометрії в ImageMagick 6.9.9. Крім того, якість зображення комбінованого зображення все ще хитра, я буквально не можу прочитати з нього ні слова.
Geek

2

Оскільки ImageMagick має вбудовану підтримку GhostScript, ви можете зробити все це за один раз:

montage -tile 5 thispdfis25pages.pdf tiledoverview.jpg

яка займе кожну сторінку і створить один довгий jpeg з них в кінці.


1
Але це НЕ надасть вам високої якості JPG, оскільки він буде використовувати Ghostscript зі своїми налаштуваннями за замовчуванням (а це досить ши .. y для виведення JPG). Виконання цього процесу в два етапи (і попередня перевірка сторінок JPG) дає вам оптимальне управління, а також дає досить хороший вихід JPG).
Курт Пфайфл

Ви можете змінити параметри Ghostscript, скориставшись параметром-щільності ImageMagick для PDF та отримати максимально гарні результати. Не стукайте чат, якщо ви не знаєте, як використовувати його параметри.
erjiang

1
К.: Гей, я не стукнув ImageMagick. І я знаю, як використовувати його параметри, навіть із застосуванням кольорових профілів ICC ... Але ви не можете передавати всі параметри Ghostscript для монтажу. Мій коментар стосувався запропонованої вами команди, яка не згадувала -density.
Курт Пфайфл

Між іншим, я читав в іншому місці про те, що ImageMagick внутрішньо перетворюється з PDF в PS, а потім PS в PNG, коли ви викликаєте це таким чином, тож це ще одна причина, щоб цього не робити (дві конверсії => нижча якість і повільніше).
Ібрагім
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.