Обновление движка: текст встаёт туда, куда его ставит Publisher
Ещё одна неделя работы над движком уже в работе. Метод не меняется: мы сравниваем наш вывод с тем, что сам Publisher выдаёт на реальных документах, и исправляем различия. Вот что изменилось.
Первые строки теперь встают туда, куда их сажает Publisher. Мы неправильно считывали параметры шрифта для многих распространённых гарнитур, включая Gill Sans MT и полужирный Times New Roman. Первая строка могла начинаться примерно на пункт выше, чем нужно, и каждая строка ниже наследовала эту ошибку, так что смещение росло вниз по странице. Отступ над абзацем в верхней части блока тоже был неправильным. На измеренных нами файлах этот разрыв обычно составлял 4.67 пункта. Теперь он составляет 0.53.
Ячейки таблиц держат текст так же, как Publisher. Отступ между границей ячейки и текстом внутри неё был нашей догадкой, а не настройкой Publisher. Доля ячеек, попадающих в пределах половины пункта от Publisher, выросла с менее чем 2 из 100 до 89 из 100. Символы маркеров внутри ячеек раньше пропадали; на 142 файлах теперь показываются 765 из 780 ячеек с маркерами.
Строки переносятся в тех же местах. Publisher даёт себе окно в 18 пунктов у правого поля, прежде чем перенести слово. Наш движок теперь использует то же окно, поэтому абзацы переносятся так же, как в Publisher.
Буклеты и открытки со сгибом выходят в правильном порядке. Настройка печати, сохранённая в файле, буклет со скреплением скобой, открытка со сгибом или обычная страница, теперь считывается прямо из документа. Страницы приходят в том порядке, который задаёт им Publisher.
Фигуры поверх белых областей теперь укладываются в правильном порядке. Фигура, нарисованная поверх белого текстового блока, раньше могла пропадать или закрывать не то, что нужно. Улучшился и 3D WordArt: экструдированные боковые грани получают свои настоящие цвета, включая золотые, металлические и красные стены, буквы висят и разворачиваются так же, как в Publisher, а заливки с текстурой сохраняют свою непрозрачность.
Мелкие исправления, реальные файлы. Тончайшие линии без высоты теперь отрисовываются. Исчезла призрачная замена на Helvetica. Optima сопоставляется с Calibri, ровно как это делает Publisher. PNG с повреждёнными метаданными больше не останавливают завершение PDF. Под капотом ядро парсера из 90,000 строк разбито на сфокусированные модули с одним местом для настройки каждой опции, так что исправления доходят быстрее и ломают меньше. На несколько сотен файлов больше теперь попадает в нашу верхнюю полосу точности, чем неделю назад.
Каждое исправление оценивалось против вывода самого Publisher на тысячах реальных файлов и выпускалось только тогда, когда выигрывало. Если какой-то ваш файл вышел неправильно одним из этих способов, прогоните его ещё раз.