Автоматическое разделение заголовка документа 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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