В даний час прийнята відповідь виконує роботу, але призводить до отримання результатів, які мають більший розмір і страждають від втрати якості.
Не ясно, що ви маєте на увазі під "втратою якості". Це може означати багато різних речей. Чи можете ви розмістити деякі зразки для ілюстрації? Можливо, виріжте той же розділ з неякісних та хорошої якості (як 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 були байт-байтом, ідентичним вихідним зображенням. Ви не можете отримати більш високої якості від цього.