LINUX.ORG.RU

img2pdf: Склеить *.jpg в один PDF. Проблема с именами файлов

 ,


0

1

В общем, засылаю вам сюда имена файлов:

PXL_20240222_084434309.jpg
PXL_20240222_083451145.jpg
PXL_20240222_081748908.jpg
PXL_20240222_081218902.jpg
PXL_20240222_081152152.jpg
PXL_20240222_081137976.jpg
PXL_20240222_081109753.jpg
PXL_20240222_080905354.jpg
original_d592ad61-a37d-4732-a4c6-fa143f1ea8df_PXL_20240222_084407778.jpg
original_cb990de1-75b3-4fce-8741-7bd400defb5a_PXL_20240222_084633169.jpg
original_cabb655b-47bb-46a5-9912-9bc0b209104c_PXL_20240222_084639649.jpg
original_a82e6d99-c2a7-4dac-a153-7ec860eab36e_PXL_20240222_084002053.jpg
original_a8b18fb2-6f78-4cd3-a486-cfc008710667_PXL_20240222_085854865.jpg
original_759404de-032f-4b31-a7b7-9c0a5e1c1030_PXL_20240222_085805460.jpg
original_30139a05-9ba7-4444-9d6f-e06972fcdcf0_PXL_20240222_084839401.jpg
original_912e5ccc-c9c6-4980-a6f0-29cfb92cef33_PXL_20240222_082803549.jpg
original_839a729c-06ec-4e9d-a2b2-85a67012bd7a_PXL_20240222_085407281.jpg
original_705d4be7-9f27-49bc-abc8-367547888bb2_PXL_20240222_083924954.jpg
original_0502f196-b184-4e70-84ab-5302dd8a72f0_PXL_20240222_084023550.jpg
original_79a3f89b-8c55-4d32-9d7a-95f4a4e8296b_PXL_20240222_083947734.jpg
original_12a8e969-de25-4c5f-87c7-e5029bc92246_PXL_20240222_084455430.jpg
original_7fafd481-7aa5-438e-8369-f818e309acf1_PXL_20240222_084046204.jpg
original_7e71dd0a-d778-47cd-8409-ce3b8bdaab54_PXL_20240222_082740234.jpg
original_7dcd6c5b-5f2b-4376-9fdc-ecb56f08de8b_PXL_20240222_082718622.jpg
original_7a60f2fa-7749-4110-a10f-571b8933e79c_PXL_20240222_080807586.jpg
original_1fa81101-f581-4791-b068-bfd9515e5bc2_PXL_20240222_081438004.jpg
original_0dd0000e-db70-4a5c-b1a6-9f2dfdcd8a88_PXL_20240222_083936361.jpg

В чем соль: они были изменены в телефоне, и поэтому имена поменялись на original_*_PXL*.
Но мне нужно их сцепить в один PDF по дате съемки, а не по дате изменения.

Как сцепляю:

img2pdf --output out.pdf *.jpg # https://manpages.debian.org/bookworm/img2pdf/img2pdf.1.en.html#EXAMPLES

По возможности, не хотелось бы переименовывать исходные фотографии.



Последнее исправление: SerW (всего исправлений: 2)

Ответ на: комментарий от firkax

Слеши убрал.
Проблема в том, что часть файлов была переименована телефоном. Но даже в новом имени есть правильная дата съемки. Я бы хотел чтобы документ ПДФ делался по дате съемки фотографии, от старой к самой свежей.

SerW
() автор топика
Ответ на: комментарий от Anoxemian

Проблема в том, что ни PXL_20240222_084434309.jpg, ни original_d592ad61-a37d-4732-a4c6-fa143f1ea8df_PXL_20240222_084407778.jpg сейчас – не первые страницы в документе.

Казалось бы, именно они при нынешнем именовании должны были быть первой страницей, но это не так.

Я хочу, чтобы первая сделанная фотография была первой в ПДФ-документе.

На дату изменения в моей задаче программе не нужно смотреть.

Как она сейчас склеивает – сам не понял…

SerW
() автор топика
Ответ на: комментарий от Anoxemian

Ой, блин, я так и знал, что Юникс-вэй – он такой.
Я так не хочу. Я так не умею.
Я могу в Calc состряпать соответствие имен.
А как потом это соответствие в виде текстового или .ods-файла подсунуть скрипту по переименованию файлов? ))

SerW
() автор топика
Ответ на: комментарий от SerW

Сделай символьные ссылки, например на /tmp/ создай директорию и в неё помести символьные ссылки на jpg файлы, в именах ссылок используй дату YYYYMMDD_HHmmss.jpg.

В команде генерации PDF указывай символьные ссылки.

anonymous
()
Ответ на: комментарий от firkax

Списка нет, потому что приставка типа original_839a729c-06ec-4e9d-a2b2-85a67012bd7a_ попортила всю малину.
Или чего, расчехлять Calc? ))

UPD: Сделал с помошью одной формулы и авто-фильтра в Calc, огромное спасибо @firfax за подсказку.

Под ночь уже не соображаю.

Итоговый результат:

img2pdf --output out.pdf original_7a60f2fa-7749-4110-a10f-571b8933e79c_PXL_20240222_080807586.jpg PXL_20240222_080905354.jpg PXL_20240222_081109753.jpg PXL_20240222_081137976.jpg PXL_20240222_081152152.jpg PXL_20240222_081218902.jpg original_1fa81101-f581-4791-b068-bfd9515e5bc2_PXL_20240222_081438004.jpg PXL_20240222_081748908.jpg original_7dcd6c5b-5f2b-4376-9fdc-ecb56f08de8b_PXL_20240222_082718622.jpg original_7e71dd0a-d778-47cd-8409-ce3b8bdaab54_PXL_20240222_082740234.jpg original_912e5ccc-c9c6-4980-a6f0-29cfb92cef33_PXL_20240222_082803549.jpg PXL_20240222_083451145.jpg original_705d4be7-9f27-49bc-abc8-367547888bb2_PXL_20240222_083924954.jpg original_0dd0000e-db70-4a5c-b1a6-9f2dfdcd8a88_PXL_20240222_083936361.jpg original_79a3f89b-8c55-4d32-9d7a-95f4a4e8296b_PXL_20240222_083947734.jpg original_a82e6d99-c2a7-4dac-a153-7ec860eab36e_PXL_20240222_084002053.jpg original_0502f196-b184-4e70-84ab-5302dd8a72f0_PXL_20240222_084023550.jpg original_7fafd481-7aa5-438e-8369-f818e309acf1_PXL_20240222_084046204.jpg original_d592ad61-a37d-4732-a4c6-fa143f1ea8df_PXL_20240222_084407778.jpg PXL_20240222_084434309.jpg original_12a8e969-de25-4c5f-87c7-e5029bc92246_PXL_20240222_084455430.jpg original_cb990de1-75b3-4fce-8741-7bd400defb5a_PXL_20240222_084633169.jpg original_cabb655b-47bb-46a5-9912-9bc0b209104c_PXL_20240222_084639649.jpg original_30139a05-9ba7-4444-9d6f-e06972fcdcf0_PXL_20240222_084839401.jpg original_839a729c-06ec-4e9d-a2b2-85a67012bd7a_PXL_20240222_085407281.jpg original_759404de-032f-4b31-a7b7-9c0a5e1c1030_PXL_20240222_085805460.jpg original_a8b18fb2-6f78-4cd3-a486-cfc008710667_PXL_20240222_085854865.jpg #https://www.linux.org.ru/forum/multimedia/17546703
SerW
() автор топика
Ответ на: комментарий от SerW

Мог и так сделать:

mkdir /tmp/images
cd /tmp/images/
find ~/images/ -type f -iname "*.jpg" | while read FN ; do NFN=`basename $FN | sed -e 's/.*PXL_\(.*\)/\1/'` ; ln -s $FN $NFN ; done
img2pdf --output out.pdf *.jpg

Подразумевается, что в ~/images/ - директория с исходными файлами. В /tmp/images будут созданы символьные ссылки и в ней же будет собран PDF файл, в команде по сборке уже укажешь просто *.jpg, т.к. символьные ссылки будут вида:

20240222_084455430.jpg
20240222_084639649.jpg

Т.е. уже отсортированы по дате.

anonymous
()
Ответ на: комментарий от SerW

Списка нет, потому что приставка типа original_839a729c-06ec-4e9d-a2b2-85a67012bd7a_ попортила всю малину.
Или чего, расчехлять Calc? ))

Их вручную в текстовом редакторе расставить в нужном порядке максимум одна минута.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ну, я например про sort -t -k не знал. И скорее всего скоро забуду. А чтоб даже прочитать ман (зная что оно там есть, но не помня точный синтаксис) - времени потребуется больше, чем руками переставить эти 20 строчек.

firkax ★★★★★
()