Doc to PDF
github.com/Tensionix/doc-to-pdf ↗
Конвертирует документы пачками через сам Microsoft Office, а не сторонний движок: вёрстка, шрифты и подписи остаются на месте. Плюс типовая доработка полученных PDF.
3 загрузки с GitHubAudion Doc to PDF
Содержание
Пакетная конверсия Word, Excel и PowerPoint в PDF — родным экспортом самого Office. Плюс типовая обработка готовых PDF.
Зачем это сделано
PDF из документа Office можно получить десятком способов, и почти все портят результат: сторонние движки теряют шрифты, ломают нумерацию, переносят таблицы не туда. Единственный, кто гарантированно отдаёт то же, что видно на экране, — сам Office.
Но Office не умеет делать это пачкой. Открыть двести файлов и двести раз нажать «Сохранить как PDF» — не работа для человека.
Программа берёт это на себя: экспорт остаётся родным, а пакетность добавляется снаружи.
Принципы
Структура папок сохраняется. Обход рекурсивный, и результат повторяет дерево источника. Двести файлов из двадцати папок не сваливаются в одну.
Готовые PDF тоже обрабатываются. Не всё приходит из Office: часть материала уже в PDF, и ему нужна та же обработка — обрезка под формат, сборка, разбор.
Презентации кадрируются после. Экспорт даёт страницу как есть, а подгонка под 16:9 или A-серию идёт отдельным шагом — так исходный экспорт остаётся неиспорченным.
Что умеет
Рекурсивная конверсия папки с сохранением структуры, конверсия одного файла, кадрирование презентаций под 16:9 или A-серию, типовая обработка готовых PDF.
Дальше
- Руководство — работа по шагам.
Техническая часть
Требование
Установленный Microsoft Office: экспорт делает он, программа только управляет процессом.
Названия в рабочей области
Единый словарь для всех проектов Audion: Источник, Добавить файл…, Назначение, Сбросить, Удалить, Список.
Программа портативная: распакованная папка и есть установленная программа. Реестр не трогается, удаление — удалить папку.
$name = "Audion_Doc_to_PDF_v1.6.2_Full.zip"
Invoke-WebRequest "https://audion.dev/get/doc-to-pdf/1.6.2/Audion_Doc_to_PDF_v1.6.2_Full.zip" -OutFile $name
Invoke-WebRequest "https://audion.dev/get/doc-to-pdf/1.6.2/Audion_Doc_to_PDF_v1.6.2_Full.zip.sha256" -OutFile "$name.sha256"
$want = (Get-Content "$name.sha256").Split(" ")[0]
$have = (Get-FileHash $name -Algorithm SHA256).Hash.ToLower()
if ($want -ne $have) { throw "сумма не сошлась: загрузка повреждена" }
Expand-Archive $name -DestinationPath ".\doc-to-pdf"