Что такое содержимое уровня выполнения в python-docx?

#python-docx

#python-docx

Вопрос:

Я немного смущен концепцией «содержимого уровня выполнения» в python-docx.. Я понимаю, что если я хочу проверить, выделен ли абзац жирным шрифтом или нет, мне нужно проверить run.bold , но что именно это такое? Официальное определение таково: run — это объект, наиболее тесно связанный со встроенным контентом; текст, изображения и другие элементы, которые перемещаются между границами блочных элементов в пределах абзаца.

Итак, это содержимое уровня единственного символа в абзаце? я что-то здесь упускаю?

Ответ №1:

Простой способ понять выполнение в Word — это последовательность символов, которые имеют одинаковое форматирование символов.

Итак, если у вас есть предложение, подобное этому, и вы хотите, чтобы появилось слово, выделенное жирным шрифтом, вы не можете выделить предложение жирным шрифтом (это было бы слишком выделено жирным шрифтом), и вы не хотите выделять жирным шрифтом каждый отдельный символ (это было бы выделено слишком мало за раз).

Итак, вы группируете символы в прогоны и применяете форматирование символов к прогону (и это совершенно правильно :).

Для приведения примера предложения потребуется три прогона. Один перед выделенным жирным шрифтом словом, один для самого выделенного жирным шрифтом слова и один после выделенного жирным шрифтом слова. Средний запуск был бы выделен жирным шрифтом; два других не имели бы специального форматирования.

О запусках следует знать больше, например, о том, что они подчинены абзацу (поэтому один и тот же запуск не может начинаться в одном абзаце и заканчиваться в другом), но это основная суть концепции.

Комментарии:

1. Для меня довольно запутанно сравнивать прогоны с предложением — иногда каждое предложение является прогоном, но иногда прогон может содержать несколько предложений. И не знаю, чего я могу ожидать, просмотрев файл docx в MS Word.

2. Единственное, что гарантировано при запуске, — это то, что весь текст в нем имеет одинаковое форматирование на уровне символов. В частности, нет гарантии, что соседний запуск содержит другое форматирование на уровне символов. Таким образом, запуски могут эффективно разбивать текст абзаца в произвольных местах, даже по одному запуску на символ. Короче говоря, Word не пытается отслеживать предложения; если вы видите прогон, который является предложением, это чистое совпадение. Вам нужно выполнить синтаксический анализ предложения самостоятельно, если вам это нужно, возможно, на основе paragraph.text .