Как я могу отключить перенос текста (в середине слов) для всей презентации PowerPoint сразу?

13857
Bort

Существует проблема с Microsoft Powerpoint, которая может возникать, когда пользователь с азиатским языком сохраняет файл, а затем пользователь без азиатского языка открывает указанный файл.

Проблема в том, что текст обернут в слова .

Пример:

Быстрая
коричневая лиса прыгает
через
ленивую собаку.

Я знаю решение, но я могу только исправить текст, оборачивая одно текстовое поле за раз! Это нереальное решение для длинных презентаций.

Известное мне решение с одним текстовым полем за раз:

A1) Перейти paragraph settings
A2) Выберите Asian Typographyвкладку *
A3) ОтключитьAllow Latin text to wrap in the middle of a word

* Однако, скорее всего, у неазиатского пользователя не будет Asian Typographyдоступной вкладки (пока).

Чтобы включить Asian Typographyвкладку, необходимо сделать следующее:

B1) Закройте Powerpoint
B2) Перейдите в Пуск, найдите и откройте Microsoft Office Language Preferences
B3) Добавьте японский (или, возможно, другой азиатский язык). Закрыть настройки языка.
B4) Откройте Powerpoint.
B5) Вернитесь к шагу A1 выше.

Опять же, шаги A1-A3 могут занять очень много времени, и оставляет возможность забыть исправить поле.

Есть ли решение, которое исправляет проблему с обертыванием для всего файла powerpoint одновременно ?

0
Я не верю, что есть какой-либо способ сделать это в масштабе всего документа, и настройка, управляющая этим, не раскрывается через объектную модель PPT (то есть, это невозможно исправить с помощью VBA или других языков программирования, работающих на PPT). Однако вы можете написать код для взлома PPTX в виде почтового индекса, выполнить поиск / замену в каждом XML-файле слайда в папке \ Slides и заменить все экземпляры latinLnBrk = "1" на latinLnBrk = "0". Просто быстро проверили это с помощью текстового редактора, и это, кажется, работает. Steve Rindsberg 7 лет назад 0
@SteveRindsberg - я могу разархивировать и изменить значения latinLnBrk, но не могу заставить PowerPoint открыть файл после повторной архивации. ПП спрашивает меня, хочу ли я восстановить файл, но это не помогает. Я пытался использовать `RightClick> Send To> Compressed Folder`, а также 7zip, но безрезультатно. Даже если я оставлю содержимое pptx в покое, я не могу открыть его после повторного архивирования. Какие шаги вы использовали, чтобы повторно застегнуть молнию? Bort 7 лет назад 0
@SteveRindsberg - я заставил это работать сегодня, хотя я не уверен, что я сделал неправильно вчера. Я позволю вам опубликовать ответ, потому что я не хочу красть вашу репутацию. Обязательно включите пошаговые инструкции для тех, кто не знает, как использовать zip-файлы. Bort 7 лет назад 0
Не волнуйтесь о пунктах репутации; если у вас есть способ сделать это программно, пожалуйста, опубликуйте его. В моем случае я открыл PPTX, переименованный в ZIP в 7ZIP, нашел файл slidennn.xml и решил редактировать его из 7ZIP (я установил 7ZIP для открытия XML-файлов в Notepad ++). Вручную отредактировал его, сохранил, а затем разрешил 7ZIP обновить измененный файл. Все очень удобно в качестве доказательства концепции, но вряд ли является решением, поэтому, пожалуйста, оставляйте свои. Steve Rindsberg 7 лет назад 0
О, ты сделал это из "внутри" почтового индекса. Я имел в виду, что я получил его, разархивировав его, выполнив поиск и замену по всему каталогу и разархивировав, поэтому я и оставил вам пункты. Я думаю, что это единственное решение! Если вы не хотите их, я сделаю это. Bort 7 лет назад 0
Очки и кланяется вам, если у вас есть рабочее решение для нас! Благодарю. Steve Rindsberg 7 лет назад 0

2 ответа на вопрос

2
miroxlav

Я удалил код VBA из ответа. Это обновленное заявление:

Даже источник информации, близкий к команде разработчиков PowerPoint, говорит, что они не получили определенного ответа от разработчиков PowerPoint о том, как установить флажок программно с помощью модели документов PowerPoint. На данный момент нет соответствующего свойства для этого параметра.

Таким образом, единственный проверенный способ - удалить latinLnBrk="1"(или заменить его latinLnBrk="0") в файле XML, упакованном в файл PPTX.

Не сработало В коде снят флажок «Использовать азиатские правила для управления первым и последним символами», но оставлено «Разрешить перенос текста на латинице в середине слова». Bort 7 лет назад 0
@ Борт - спасибо за отзыв, каков был реальный эффект кода. Во время моих дальнейших исследований я нашел более-менее авторитетный источник, цитируемый ниже, который подтверждает, что не существует типичного способа VBA. miroxlav 7 лет назад 0
Ответ Джона Уилсона в теме, связанной с выше, включает возможное исправление VBA: используйте метод PickUp, чтобы выбрать форматирование из текстового поля, к которому не применены азиатские разрывы строк, а затем используйте .Apply, чтобы применить форматирование к другому тексту. Вам также придется программно выбрать, а затем применить любое другое форматирование, которое вы хотите сохранить, что может быть довольно сложно, но это, во всяком случае, начало. Steve Rindsberg 7 лет назад 0
@SteveRindsberg - спасибо, да, я уже читал об исправлении ранее, но я решил не идти по этому пути, потому что я думал, что применение * single * формата к каждому текстовому стилю, найденному в презентации (эффективно объединяет все тексты в один стиль) может сделать всю презентацию более непригодной для практических целей. По сравнению с этим потенциальным решением корректировка, выполненная в XML-файлах, прозрачна для стилей форматирования и поэтому очень эффективна для пользователя. Использование метода PickUp может быть полезным только в тех случаях, когда окончательный дизайн презентации не является более важным. miroxlav 7 лет назад 0
2
Erik H

Хотя это не решает проблему напрямую, оно ведет к ее решению. Поскольку первоначальная проблема на самом деле не решена, я думаю, что это следующая лучшая вещь.

Если новые текстовые поля (или те, которые скопированы и вставлены из другой презентации) по умолчанию имеют неправильную упаковку, исправьте латинскую переноску в текстовом поле (используя шаги в исходном вопросе), затем щелкните правой кнопкой мыши границу и «установить как текстовое поле по умолчанию» «. Это решит проблему с новыми текстовыми полями. Также не забудьте отредактировать слайд-мастера. Вы можете исправить все текстовые поля на слайде, щелкнув в любом месте на слайде (не на объекте) и нажав Control-A (выбрать все), затем отредактировав настройки абзаца. К сожалению, PPT не позволит вам выбрать все слайды и сделать то же самое. Вы должны сделать это слайд за слайдом. Обязательно сделайте все это с вашими шаблонами PPT, чтобы избежать повторения этой ужасной проблемы снова и снова.