|
1 / 1 / 0
Регистрация: 03.12.2019
Сообщений: 23
|
||||||
Очистка содержимого документа Word от <w:rFonts w:hint="eastAsia"/>02.03.2023, 01:05. Показов 10384. Ответов 23
Здравствуйте!
Заранее извиняюсь за "много букв", так как более лаконично описать проблему не хватает времени. Прошу оказать помощь в решении следующей проблемы: При создании своего документа пользователи копируют части текста из разных документов, также созданных в Microsoft Word, в которых есть различные шрифты(как внедряемые так и не внедряемые), которые не всегда имеются на локальной машине пользователя и получить их нет возможности. Когда пользователь копирует текст из чужого файла в свой и при этом шрифт, используемый в чужом файле, отсутствует у пользователя, то Word подменяет шрифт на наиболее подходящий. И вроде бы, какая проблема?! Подменяет и подменяет и что с того. Пользователь спокойно выделяет вставленный кусок текста и меняет шрифт на свой, который он использует в своём документе и вроде бы всё хорошо. Документ подготовлен, всё в редакторе выглядит аккуратно, но как оказалось, проблема кроется внутри файла. Как выяснилось, что при копировании текста с сохранением форматирования из одного документа в другой, при отсутствии используемого шрифта на локальной машине пользователя применяемого в файле-источнике текста Microsoft Word подставляет похожий по виду шрифт и в буквальном смысле "ломает" текст внутри документа дробя целые предложения тегами вида <w:rFonts w:hint="eastAsia"/>. Сразу отмечу, что "Очистка формата" и "Формат по абзацу" не решают проблемы. При этом документ в Microsoft Word выглядит целостным и в нигде нет упоминания о "eastAsia". Проблемы начинаются при конвертации файла в PDF. Из-за того что, внутри файла document.xml текст хаотично разбит выше упоминаемыми тэгами, при конвертации слетает форматирование, и например часть слова может быть перенесена на новую строку с нарушением правил переноса. Поиск дал, что подобная проблема уже ранее встречалась: https://stackoverflow.com/ques... 2#49225232 Однако решения описанной проблемы я так и не нашел. Пока выяснилось следующее: Если извлечь из контейнера docx файл document.xml и в нем по поиску удалить все <w:rFonts w:hint="eastAsia"/>, то при конвертации в PDF проблема с форматированием пропадает. Не могли бы вы подсказать решение описанной проблемы. Если есть возможность макросом VBA в MS Word удалить лишнее было бы прекрасно не "вскрывая" каждый docx Или, всё таки нужно всё нужно создавать программку, которая "обрабатывала" файлы docx удаляя лишнее. Заранее благодарен за ответы. Пример содержимого текста проблемного файла document.xml
0
|
||||||
| 02.03.2023, 01:05 | |
|
Ответы с готовыми решениями:
23
Вывод содержимого документа MS Word в RichTextBox Добавление содержимого документа Word в бд MS Access 2013 На оборотной стороне документа word в правой части документа, текст съезжает за границу документа |
|
Динохромный
1639 / 776 / 288
Регистрация: 22.12.2015
Сообщений: 2,422
|
|||||||
| 07.03.2023, 10:12 | |||||||
|
AlexSwan, убрат
"eastAsia" на предыдущий шрифт в теге: то есть <w:rFonts w:hAnsi="Times New Roman" w:ascii="Times New Roman" w:hint="eastAsia"/> исправить на <w:rFonts w:hAnsi="Times New Roman" w:ascii="Times New Roman" w:hint="Times New Roman"/>.Посмотрите, если есть смысл, код в общем-то написать несложно. Пока из тега удаляется кусок w:hint="eastAsia", плюс первый тег удаляется полностью, как было раньше. Надо на самом деле почитать спецификацию xml, за что эти теги отвечают, когда руки дойдут.
1
|
|||||||
|
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
|
|
| 07.03.2023, 11:23 | |
|
Регулярками же легче....
0
|
|
|
Динохромный
1639 / 776 / 288
Регистрация: 22.12.2015
Сообщений: 2,422
|
|
| 07.03.2023, 11:29 | |
|
Narimanych, оно вроде как да, но у меня проблема - я не знаю как xml разметка в Word работает. По хорошему нужно читать спецификацию, но оно ж времени нет (я вяло полистал и забил, каюсь. Ну дык я и английский так как вы не знаю
, ничего не попишешь).Поэтому костыль - удалять то, что точно мешает, и не трогать все остальное, тут без регулярок вполне себе. Честно говоря, даже не знаю, какой результат дает удаление hint в теге.
1
|
|
|
1 / 1 / 0
Регистрация: 03.12.2019
Сообщений: 23
|
|
| 08.03.2023, 23:26 [ТС] | |
|
Dinoxromniy
Спасибо, задача решена. Всё работает отлично. Про почитать про xml схожие ощущения
0
|
|
| 08.03.2023, 23:26 | |
|
Помогаю со студенческими работами здесь
24
Создание документа Word из другого документа Word Excel Word Delphi 7 поиск содержимого в диапазоне ячеек и перенос в Word
Очистка содержимого Image Очистка содержимого QWidget Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|
|
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности
Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано.
. . .
|
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
|
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива
Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
|
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так?
Да, всё верно. Я — искусственный интеллект.
Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
|