130

XML Читалка: открыть XML в читаемом виде и сохранить в PDF

Мне регулярно присылают документы в XML: материалы по судебным делам, выписки, отчёты, квитанции и выгрузки из рабочих систем. В Блокноте такой файл открывается одной строкой с тегами, а запускать 1С ради просмотра одного документа долго. Поэтому я написал бесплатную «XML Читалку» для Windows: она открывает XML в читаемом виде и сохраняет его в PDF.

Программа работает офлайн, не требует установки и не отправляет документы на сторонний сервер. Это особенно удобно на рабочих местах, где внешние онлайн-конвертеры недоступны или в файле находятся персональные и служебные данные.

В версии 1.2.0 я расширил распознавание российских XML и добавил просмотр ZIP, SIG и P7S. Программа точнее определяет документы Росреестра, ФНС, СФР, Росстата, банковских и государственных систем, но по-прежнему обрабатывает файлы только на компьютере.

Чем открыть XML-файл на Windows

Обычный XML можно открыть браузером, Блокнотом или редактором кода, но это не делает служебный документ удобным для чтения. Вместо названий полей и значений пользователь видит корневой элемент, пространства имён, атрибуты и длинное дерево тегов.

«XML Читалка» разбирает эту структуру локально и собирает PDF. Для неизвестного формата программа показывает название документа, атрибуты и дерево значений с нормальными отступами. Для счетов 1С CommerceML предусмотрена отдельная печатная форма с реквизитами, товарами, НДС и итогом.

Как открыть XML в читаемом виде и сохранить в PDF

  1. Скачайте архив и распакуйте его в отдельную папку.
  2. Запустите XML_Chitalka.exe.
  3. Нажмите «Добавить XML» или перетащите файлы в окно программы.
  4. Выберите папку для результата. Если её не указывать, PDF сохранится рядом с исходным XML.
  5. Нажмите «Создать PDF».

Можно добавить сразу несколько документов. Конвертация идёт в фоне, поэтому окно не зависает. Если PDF с таким именем уже существует, программа создаёт новый файл с окончанием (1), (2) и не затирает предыдущий.

Как открыть XML-выписку ЕГРН или файл Росреестра

Выписки ЕГРН, кадастровые планы территории и другие материалы Росреестра могут приходить в XML или GML. «XML Читалка» открывает корректный файл и выводит его поля в структурированный PDF. Это позволяет найти адрес, кадастровый номер и другие значения без Internet Explorer и старых настроек безопасности браузера.

Здесь есть важное ограничение: текущая версия не восстанавливает официальное оформление выписки, не строит карту КПТ и не рисует межевой план. Она показывает данные, которые находятся внутри XML. Исходный файл и отдельную электронную подпись необходимо сохранить.

Как посмотреть УПД и счёт-фактуру в XML

УПД, счёт-фактура или акт из ЭДО нередко приходят без привычной печатной формы. Word и Excel такой документ нормально не показывают, а загружать бухгалтерский файл в случайный онлайн-сервис я не хочу.

Программа распознаёт семейство документов ФНС и ЭДО, подписывает его в PDF и раскладывает содержимое по структуре XML. Это подходит для просмотра реквизитов и значений. Официальную визуализацию конкретного формата ФНС текущая версия не воспроизводит, поэтому перед отправкой документа я всё равно проверяю его в учётной системе или сервисе оператора ЭДО.

Как посмотреть ЕФС-1, СЗВ и XML СФР

Файлы ЕФС-1, СЗВ, СЭДО и другие сообщения СФР тоже построены на XML. «XML Читалка» помогает открыть такой файл как дерево полей и сохранить результат в PDF для чтения или печати.

Это именно просмотр содержимого. Программа не проверяет контрольные соотношения, актуальность формы и готовность отчёта к отправке. Для такой проверки нужны штатные программы СФР или используемая система отчётности.

Как открыть XML-выгрузку из 1С

Для счетов в формате 1С CommerceML сделан отдельный режим. Программа собирает более привычный документ: показывает продавца и покупателя, позиции, количество, цену, НДС и итоговую сумму.

Остальные выгрузки 1С открываются в универсальном режиме. Их можно прочитать и перевести в PDF, но программа не загружает данные обратно в базу и не заменяет обработку обмена 1С.

Какие ещё XML распознаёт программа

  • требования, квитанции и отчётность ФНС;
  • банковские и казначейские документы;
  • статистическая отчётность Росстата и документы Банка России, включая XBRL;
  • сообщения ГИС ГМП и СМЭВ;
  • выгрузки ЕИС, ГИС ТОРГИ и других государственных систем;
  • ФИАС, КЛАДР и другие справочники;
  • Честный ЗНАК, ЕГАИС, Меркурий и электронные перевозочные документы;
  • ГИС ЖКХ, медицинские и кадровые XML;
  • судебный и исполнительный документооборот;
  • обычные корректные XML неизвестной схемы.

Распознавание семейства используется для понятной подписи в PDF. Оно не означает проверку файла по официальной XSD-схеме. Если формат программе неизвестен, она всё равно попытается показать структуру документа.

Если XML открывается одной строкой или непонятными символами

Одна длинная строка — обычная ситуация для машинного XML: программа, которая сформировала документ, не обязана добавлять отступы для человека. «XML Читалка» разбирает элементы и выводит их по уровням, поэтому вручную форматировать исходный файл не требуется.

Непонятные символы чаще связаны с кодировкой, указанной в заголовке XML. Программа читает корректно объявленную кодировку автоматически. Если заголовок файла повреждён или фактическая кодировка ему не соответствует, преобразование может завершиться ошибкой — исходный документ при этом не изменяется.

Почему я сделал офлайн-конвертер XML в PDF

Документы Росреестра, ФНС, СФР, банков и судов могут содержать персональные данные, реквизиты и служебную информацию. При работе через онлайн-конвертер файл сначала загружается на чужой сервер. В «XML Читалке» обработка выполняется на компьютере, без сетевых запросов и передачи документа в интернет.

Это позволяет пользоваться программой в закрытой сети и не зависеть от регистрации, тарифа или ограничения онлайн-сервиса на размер загрузки. В текущей версии собственное ограничение составляет 20 МБ на один XML. Слишком глубокие или чрезмерно большие структуры программа останавливает, чтобы не занять всю память компьютера.

Как открыть ZIP, SIG и P7S

В версию 1.2.0 я добавил локальный просмотр архивов и файлов подписи. Для ZIP программа составляет PDF со списком файлов и распознаёт находящиеся внутри XML, не распаковывая их в рабочую папку. Архив ограничен 200 записями, общий размер входного файла — 50 МБ.

Для SIG и P7S создаётся информационный отчёт: имя и размер контейнера, его SHA-256 и сведения о сертификатах PKCS#7/CMS, если их удаётся извлечь. Это просмотр метаданных, а не криптографическая проверка электронной подписи.

Что программа пока не делает

  • не проверяет действительность электронной подписи, цепочку доверия, отзыв сертификата и ГОСТ-алгоритмы;
  • не извлекает исходный подписанный документ из любого произвольного контейнера;
  • не проверяет отчёты по контрольным соотношениям ФНС или СФР;
  • не преобразует XML в редактируемую таблицу Excel или документ Word;
  • не заменяет официальную печатную форму ведомственной системы.

Получившийся PDF нужен для чтения и печати. Он не заменяет исходный XML и не подтверждает юридическую значимость документа. Я всегда сохраняю XML вместе с файлами подписи и остальными материалами дела.

На чём написана XML Читалка

Программу я написал на Python 3.12. Интерфейс сделан на Qt for Python — библиотеке PySide6. XML разбирается стандартными средствами Python с дополнительными ограничениями безопасности, PDF создаётся библиотекой ReportLab, а приложение собрано в один EXE через PyInstaller.

  • Версия: 1.2.0.
  • Система: Windows 10 и Windows 11 x64.
  • Установка: не требуется.
  • Размер EXE: 55 783 542 байта.
  • Разработчик: Константин Некрасов.

DTD, ENTITY, внешние сущности и XSLT намеренно не исполняются. Это защищает программу от обращения XML к внешним ресурсам и от части опасных конструкций внутри неизвестного файла.

Проверка скачанного файла

Перед публикацией я проверил сборку Microsoft Defender: угроз не обнаружено. EXE пока не подписан коммерческим сертификатом разработчика, поэтому SmartScreen может показать предупреждение о неизвестном издателе.

SHA-256 файла XML_Chitalka.exe:

B9D62D0E959FEF10DF095A4D56FDB12033ADECA527ABAC1570726223CB21F6C2

Другие мои программы собраны в рубрике «Проекты». Например, там есть InfoPanel для информационных экранов Android TV.

Получилось или остались вопросы?

Поделитесь результатом, дополните инструкцию своим опытом или задайте вопрос. Я читаю комментарии и обновляю статьи по реальным случаям.

Напишите комментарий

Опишите проблему и укажите, какое решение вы уже проверили. Адрес электронной почты на сайте не публикуется.