Как документ XML перевести в PDF: три строки описи
Как документ XML перевести в PDF через настольный Excel: учебная опись, импорт повторяющихся записей, проверка кириллицы и полей перед сохранением читаемой копии.
Ольга
Основатель малого бизнеса, партнёр
8 мин чтения
В описи пробных отпечатков всего три позиции: 12, 8 и 5 листов. Получателю нужен список для сверки, а ему прислали текст с тегами. Решая, как документ XML перевести в PDF, я хочу сохранить эти записи и их названия, а не напечатать служебную разметку. На маленькой описи хорошо видно, где конвертация заканчивается, а проверка содержания только начинается.
Здесь показан маршрут для простого XML с повторяющимися записями через настольный Excel Microsoft 365 для Windows. Он создаёт читаемое табличное представление данных. Макет документа из неизвестной системы этим способом не восстанавливаем.
Три позиции в исходнике, а не готовый бланк
Расширение XML само по себе не объясняет устройство документа. Внутри может быть список данных. Word 2003 XML описывает офисный документ. У выгрузки конкретной системы будут свои правила представления. Я сначала выясняю, откуда файл и что получателю нужно увидеть.
Для документа конкретной системы проверь, есть ли в программе-источнике просмотр готового документа и сохранение или печать его читаемого вида. Если такая возможность предусмотрена, она лучше объясняет, где должны находиться поля и таблицы. Самостоятельно разбирать сложную вложенность в Excel ради внешне похожего бланка я бы не стала.
Word 2003 XML — отдельный формат офисного документа. Его существование не означает, что Word превратит любой XML в исходный бланк. Наш пример вообще не содержит указаний о шрифтах, страницах и расположении подписей: в нём только сведения об отпечатках.
Исходный XML не редактируй. Для импорта возьми копию и сохрани рядом сведения о том, чем она создана. Если к файлу прилагаются схема или другие служебные файлы, не выбрасывай их. При спорном результате по одной читаемой копии уже трудно понять, какие сведения были в источнике.
Я собрала такую учебную опись без имён заказчиков и настоящих заказов. Её можно набрать в текстовом редакторе и сохранить как `proby.xml` в UTF-8. Проверь полное имя: оно должно оканчиваться на `.xml`, без дополнительного `.txt`.
Здесь три одинаково устроенных элемента `proof`, у каждого три поля. `code` обозначает позицию, `name` — название, `sheets` — число листов. Это и задаёт ожидаемую таблицу. Знак `&` внутри названия записан как `&`: для XML это представление символа, а не дополнительные слова в названии.
Как документ XML перевести в PDF через таблицу Excel
Открой настольный Excel. Мы используем команду открытия файла внутри программы, чтобы выбрать способ импорта, а не полагаемся на приложение, назначенное для двойного щелчка по XML.
Выбери «Файл» → «Открыть» и найди рабочую копию `proby.xml`. При необходимости выбери в диалоге тип файлов XML.
Нажми «Открыть». Для такого XML без ссылок на таблицы стилей Excel предлагает варианты открытия.
Выбери вариант «Как XML-таблицу» — As an XML table в английском интерфейсе.
Если появится сообщение об отсутствии схемы, прочитай его. Для этого учебного файла отдельной XSD-схемы нет: Excel может построить схему по данным. Подтверждай именно это действие для нашего примера.
Такой путь описан Microsoft для импорта XML в новую книгу. XML-сопоставление относится к настольному Excel для Windows; ту же последовательность нельзя переносить на Mac или веб-версию.
На листе найди имена полей. Не угадывай буквы столбцов. Нужны код, название и количество листов для каждой из трёх позиций. Я не считаю открывшийся лист успешным результатом только потому, что Excel не показал ошибку.
Заголовки могут остаться английскими. В исходнике стоят `code`, `name`, `sheets`; русские подписи в контрольной таблице ниже поясняют их смысл, а не показывают автоматический перевод Excel. Если захочешь переименовать заголовки в рабочей книге, сначала запиши соответствие между исходными именами и новыми подписями. Иначе при сверке придётся вспоминать, какое поле стало «Тиражом» и действительно ли в нём количество листов.
Если вместо трёх записей появились несколько вложенных таблиц, часть полей пропала или программа сообщает об ошибке разбора, остановись на импорте. Для чужой сложной структуры нужен её разбор либо представление из программы-источника. Не переноси вручную только понятные строки, выдавая их за полный документ.
Я проверила бы кириллицу. Начни со слова «Ёлка». Затем сравни коды и амперсанд во второй позиции. Надпись о UTF-8 в первой строке должна соответствовать реальной кодировке файла. Если буквы испорчены уже при чтении исходника, сохранение PDF не восстановит их. Вернись к копии XML и уточни кодировку у источника.
Не меняй декларацию наугад. Замена надписи `UTF-8` не перекодирует сохранённые байты. В учебном примере достаточно изначально сохранить текст в указанной кодировке; для полученного извне файла нужно выяснить, как он был записан, прежде чем пытаться чинить буквы.
25 листов должны поместиться вместе с названиями
До оформления я сделала два условия приёмки: все три позиции видны целиком, а количества связаны с правильными названиями. Контрольная опись выглядит так:
Код · Название для чтения · Листов
Э-01 — Ёлка и кедр — 12
Э-02 — Сосна & лиственница — 8
Э-03 — Пихта — 5
Сумма — 25 листов. Это дополнительная проверка. Можно поменять местами 12 и 8, сохранив тот же итог. Поэтому я сначала сопоставляю код с названием и количеством, затем проверяю общую сумму.
Если количество потребуется считать формулой, убедись, что импорт дал числа, а не текст. Microsoft отмечает, что при импорте некоторые типы данных могут превратиться в текст. Для дальнейших расчётов пригодится разбор ошибок формул Excel; для проверки трёх учебных значений достаточно отдельно сложить 12 + 8 + 5.
Теперь подготовь лист к выводу:
Раскрой названия целиком. Ширину столбца можно увеличить перетаскиванием правой границы его заголовка.
Выдели весь нужный блок вместе с заголовками. Команда «Задать область печати» назначит его выводимым фрагментом; её найдёшь в меню «Область печати» на вкладке «Разметка страницы».
Открой «Файл» → «Печать» для предварительного просмотра. Убедись, что последний столбец и последняя запись вошли в вывод, а название второй позиции не обрезано.
Я не стараюсь любой ценой уменьшить всё до одной страницы. В этой маленькой описи важнее прочитать название и количество рядом. Если предпросмотр показывает разрыв, поправь размещение до создания PDF. Удалять часть данных ради аккуратного листа нельзя.
Сохрани отдельную книгу XLSX. К оформлению можно будет вернуться. Для PDF выбери «Файл» → «Сохранить как» либо «Сохранить копию», в списке «Тип файла» укажи PDF (*.pdf). Назови выходной файл, например `proby-dlya-sverki.pdf`. Через «Параметры» проверь диапазон публикуемых страниц, затем нажми «Сохранить».
Сверка, которую не заменяет новый формат
Открой сохранённый PDF отдельно. Проверь в нём три кода, все названия и количества. Во второй строке должен читаться обычный знак `&`, а не буквальная последовательность `&`. В первой нужна именно «Ёлка». Не доверяй памяти. Сравни с исходным XML.
Если на листе Excel всё было видно, а в PDF исчез край, ищи проблему в области вывода и размещении. Если поля потерялись ещё при импорте, исправляй импорт. У этих ошибок разные причины. Повторное сохранение того же листа не возвращает отсутствующую запись.
Если устройство чужого XML непонятно, открой LibraChat и попробуй обсудить небольшой обезличенный фрагмент. Для нашего примера подойдёт задание:
Есть XML с корнем proofs и повторяющимися proof. В каждой записи code, name, sheets. Нужно получить PDF-опись для чтения через Excel. Предложи перечень проверок в пределах 100 слов: полнота записей, связь полей, кириллица, амперсанд и область вывода. Не придумывай отсутствующие данные и не объявляй импорт успешным без просмотра результата.
Это предлагаемый запрос о проверках, а не показ полученного ответа или файла. Для повторяющейся работы с такими описаниями заранее сопоставь свои задачи с условиями тарифов LibraChat.
Полученный PDF служит читаемым представлением выбранных данных. Простое сохранение не устанавливает юридическую равнозначность исходнику и не проверяет электронную подпись. Если получатель требует XML и файлы подписи, уточни состав передачи; PDF не следует считать их заменой.
Для пробы измени в учебной копии количество второй позиции с 8 на 9. Новый итог станет 26, но ещё нужно увидеть девятку рядом с Э-02 и её названием. Такая проверка показывает, что ты переносишь содержание, а не просто получаешь файл с другим расширением.