Aspose::Words::Document::JoinRunsWithSameFormatting method

Document::JoinRunsWithSameFormatting method

Объединяет последовательности с одинаковым форматированием во всех абзацах документа.

int32_t Aspose::Words::Document::JoinRunsWithSameFormatting()

ReturnValue

Количество выполненных объединений. Когда объединяются N соседних участков, они считаются как N - 1 объединений.

Примечания

Это метод оптимизации. Некоторые документы содержат соседние участки с одинаковым форматированием. Обычно это происходит, если документ интенсивно редактировался вручную. Вы можете уменьшить размер документа и ускорить последующую обработку, объединив эти участки.

Операция проверяет каждый узел Paragraph в документе на наличие соседних узлов Run с идентичными свойствами. Она игнорирует уникальные идентификаторы, используемые для отслеживания сеансов редактирования создания и изменения участков. Первый участок в каждой последовательности объединения собирает весь текст. Оставшиеся участки удаляются из документа.

Примеры

Показывает, как объединять участки в документе, чтобы уменьшить количество ненужных участков.

// Откройте документ, содержащий соседние участки текста с одинаковым форматированием,
// что обычно происходит, если мы редактируем один и тот же абзац несколько раз в Microsoft Word.
auto doc = System::MakeObject<Aspose::Words::Document>(get_MyDir() + u"Rendering.docx");

// Если любое количество этих участков находятся рядом с одинаковым форматированием,
// то документ может быть упрощён.
ASSERT_EQ(317, doc->GetChildNodes(Aspose::Words::NodeType::Run, true)->get_Count());

// Объедините такие участки с помощью этого метода и проверьте количество объединений, которые произойдут.
ASSERT_EQ(121, doc->JoinRunsWithSameFormatting());

// Количество объединений и количество участков, которые у нас будут после объединения
// должны в сумме соответствовать количеству участков, которое было изначально.
ASSERT_EQ(196, doc->GetChildNodes(Aspose::Words::NodeType::Run, true)->get_Count());

См. также