Автоматическое разделение заголовка документа WordC#

Место общения программистов C#
Anonymous
Автоматическое разделение заголовка документа Word

Сообщение Anonymous »

Я создаю документ Word, используя C# и Word Interop плюс шаблон слов по умолчанию. Однако в некоторых случаях код должен создать заголовок документа, содержащий длинное слово (имя файла другого файла, в котором не содержатся пробелы), и мне нужно регулировать шрифт заголовка, чтобы слово не было разделено на две строки. Я прочитал слово Interop, не имеет средств для измерения ширины диапазона в документе, и трюк заключается в создании текстовой бокса, добавлении текста и сообщите форме автофиту, чтобы соответствовать форме. Затем я могу проверить ширину формы по максимальной ширине страницы и уменьшить размер шрифта, пока не будет подходит. Код, который у меня есть: < /p>
var Heading = Document.Sections[1];

var PageWidth = Heading.PageSetup.PageWidth - Application.CentimetersToPoints(2); // 2 cm margin
var FontSize = Heading.Range.Font.Size;

while (FontSize >= 10)
{
var TempShape = Document.Shapes.AddTextbox(
Orientation: MsoTextOrientation.msoTextOrientationHorizontal,
Left: 0, Top: 0, Width: 10, Height: 10);

TempShape.TextFrame.AutoSize = 1;

TempShape.TextFrame.TextRange.Text = Document.Sections[1].Range.Text;
TempShape.TextFrame.TextRange.Font.Size = FontSize;

// Set margins to zero to avoid extra padding
TempShape.TextFrame.MarginLeft = 0;
TempShape.TextFrame.MarginRight = 0;
TempShape.TextFrame.MarginTop = 0;
TempShape.TextFrame.MarginBottom = 0;

var ShapeWidth = TempShape.Width;
TempShape.Delete();

if (ShapeWidth
Однако ширина формы все еще 10, когда я выполняю тест по размеру страницы. Есть идеи, что я делаю не так, или это не правильный подход?
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/797 ... d-document

Вернуться в «C#»