Какие константы WdBreakType универсально безопасны для использования в range.InsertBreak? - PullRequest
2 голосов
/ 05 мая 2011

Я пишу программу C # WinForms с использованием Word 2003 PIA, которая дает пользователям возможность вставлять различные виды разрывов.Я использую метод range.InsertBreak, который принимает аргумент WdBreakType.

Просматривая документацию Microsoft по методу range.InsertBreak, я заметил следующее утверждение:

"Некоторые из констант WdBreakTypeможет быть недоступно для вас, в зависимости от языковой поддержки (например, английского языка США), которую вы выбрали или установили. "

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

public enum WdBreakType
{
    wdSectionBreakNextPage = 2,
    wdSectionBreakContinuous = 3,
    wdSectionBreakEvenPage = 4,
    wdSectionBreakOddPage = 5,
    wdLineBreak = 6,
    wdPageBreak = 7,
    wdColumnBreak = 8,
    wdLineBreakClearLeft = 9,
    wdLineBreakClearRight = 10,
    wdTextWrappingBreak = 11,
}

1 Ответ

1 голос
/ 05 мая 2011

Я тоже ничего не смог найти, но меня поразили две идеи;

1) Ссылка на культуру предполагает, что проблемы возникают при разработке документов, которые используют стиль, очень отличающийся от обычного британского или американского документов; скажем, арабские документы текут справа налево. Это может изменить значение, скажем, wdLineBreakClearLeft. Если вы намерены создавать в своем приложении только знакомые документы слева направо, вам, возможно, вообще не придется беспокоиться об этом аспекте.

2) Поскольку в документации объекта Range указаны пределы, это заставляет меня думать, что существуют определенные разрывы, которые не подходят в определенных диапазонах. Например, разрыв страницы, вероятно, уместен только в основной истории, а не в заголовке.

Вы можете проверить тип истории диапазона примерно так;

if (range.StoryType == WdStoryType.wdMainTextStory)
{

}

Полагаю, вы могли бы написать быстрое приложение, чтобы проверить, какие типы могут использоваться в каких типах историй;

//! Scrappy Code;    
var breakTypes = new [] { WdBreakType.wdColumnBreak, WdBreakType.wdLineBreak };
foreach(var breakType in breakTypes)
{
    foreach(var storyRange in wordDoc.StoryRanges)
    {
        try
        {
            storyRange.InsertBreak(breakType);
            Console.WriteLine("Can insert {0} into {1}", breakType, storyRange.StoryType)
        }
        catch(Expection ex)
        {
            Console.WriteLine("Cannot insert {0} into {1}: {2}", breakType, storyRange.StoryType, ex.Message)
        }
    }
}
...