Сложные времена создают сильных котят, или Как факап заставил меня начать вайбкодитьНедавно со мной случилась довольно волнительная история: я случайно удалила часть архива с нужными документами без возможности восстановления. Осознала это только спустя несколько дней, когда уже успела внести изменения в файловую систему.
Никакие танцы с бубном не помогли. Файлы из недр памяти достать удалось, но они оказались повреждёнными и нерабочими.
Больше всего среди потерянного меня беспокоили несколько исходников, сделанных в InDesign: в будущем они ещё могут понадобиться для редактирования. В архиве сохранились их интерактивные PDF-версии, но приличного инструмента для конвертации PDF обратно в INDD я не нашла.
Горевать не стала, хотя хотелось. Вместо этого решила протестировать Codex и попробовать написать собственный скрипт для конвертации. Тем более что я давно хотела начать осваивать вайбкодинг.
Два вечера общения с нейросеткой — и в итоге у меня получился полноценный скрипт на Python. Оценить качество кода изнутри я не могу, но, судя по тому, как он работает и какой результат выдаёт после конвертации, получилось вполне прилично.
Что умеет скрипт:🧬 анализирует текст и определяет шрифты, начертания и кегль;
🧬 сохраняет расположение элементов и отступы;
🧬 создаёт стили абзацев и символов;
🧬 извлекает и восстанавливает векторную графику;
🧬 конвертирует фотографии во встроенные изображения, сохраняя прозрачность там, где это необходимо;
🧬 создаёт гиперссылки;
🧬 распознаёт таблицы;
🧬 распределяет контент по слоям: текст, графика, изображения и гиперссылки;
🧬 создаёт отдельный слой с исходным PDF, чтобы можно было сразу сравнивать результат с оригиналом, находить неточности и вносить правки.
Какие глюки иногда встречаются*:🔬 скругления плашек распознаются не всегда;
🔬 текст не объединяется в один сквозной текстовый фрейм. Фреймы разделяются по смысловым блокам и не продолжают друг друга. Я пыталась это исправить, но пока не получилось собрать весь текст в единую цепочку, не разрушив исходную компоновку;
🔬 не создаются шаблоны страниц.
Думаю, результат можно сделать лучше, но пока я не умею подключать к нейросетям релевантные навыки. Недавно на
AI Skills Conference я увидела, что некоторые специалисты таким образом ускоряют и улучшают работу своих пайплайнов. Было бы неплохо умудриться разобраться, как устроена эта механика.
При этом даже на моём базовом уровне метод пошаговой доработки работает хорошо. Нейросеть отлично справляется с исправлением или добавлением одного вида функции за раз, не разрушая предыдущий результат. Она часто — хотя и не всегда — понимает, что от неё требуется, а при необходимости позволяет вернуться к любому из предыдущих этапов.
Это рабочий способ решать собственные утилитарные задачи даже человеку, далёкому от программирования.
В сухом остатке: получился не идеальный, но рабочий инструмент для реанимации PDF в InDesign. Он может заметно сэкономить время, когда нужно восстановить документ, повторно использовать его структуру или стилистику. А ещё он позволяет быстро и достаточно качественно извлечь из PDF изображения и графику, если исходники потеряны и макет приходится собирать заново.
В приложении я оставила небольшое демовидео конвертации pdf файла, в комментариях — инструкцию по установке и сам скрипт.
* Скрипт протестирован на трех типах интерактивных PDF-документов. Не исключено, что при конвертации макетов с принципиально другим дизайном обнаружатся новые баги. Их можно исправлять вручную или устранять в следующих итерациях.#нейросети
#вайбкодинг