В даний час прийнята відповідь виконує роботу, але призводить до отримання результатів, які мають більший розмір і страждають від втрати якості.
Не ясно, що ви маєте на увазі під "втратою якості". Це може означати багато різних речей. Чи можете ви розмістити деякі зразки для ілюстрації? Можливо, виріжте той же розділ з неякісних та хорошої якості (як PNG, щоб уникнути подальших втрат якості).
Можливо, вам потрібно скористатися, -density
щоб здійснити конверсію у більш високій точці на дюйм:
convert -density 300 file.pdf page_%04d.jpg
(Ви можете додати -units PixelsPerInch
або -units
PixelsPerCentimeter
за потреби. Моя копія за замовчуванням на ppi.)
Оновлення: Як ви вказали, gscan2pdf
(спосіб, яким ви користуєтесь) - це лише обгортка для pdfimages
(від poppler ). pdfimages
не робить те саме, що convert
робиться, коли вводиться PDF в якості введення.
convert
бере PDF, виводить його з деякою роздільною здатністю і використовує отриману растрову карту як вихідне зображення.
pdfimages
розглядає PDF для вбудованих растрових зображень та експортує кожне у файл. Він просто ігнорує будь-які команди тексту або векторного малюнка в PDF.
Як наслідок, якщо у вас є PDF, який є лише обгорткою навколо ряду растрових зображень, pdfimages
це зробить набагато кращу роботу з їх вилучення, тому що ви отримуєте вихідні дані в оригінальному розмірі. Напевно, ви також хочете скористатись -j
опцією pdfimages
, оскільки PDF може містити необроблені дані JPEG. За замовчуванням pdfimages
перетворює все у формат PNM, а перетворення JPEG> PPM> JPEG - процес втрат.
Отже, спробуйте
pdfimages -j file.pdf page
Можливо, вам не потрібно буде дотримуватися цього кроку convert
до .jpg
кроку (залежно від того, який формат растрової карти використовував PDF).
Я спробував цю команду в PDF-файлі, який я створив із послідовності зображень JPEG. Витягнуті JPEG були байт-байтом, ідентичним вихідним зображенням. Ви не можете отримати більш високої якості від цього.