Я создаю документ 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
Автоматическое разделение заголовка документа Word ⇐ C#
Место общения программистов C#
-
Anonymous
1753629208
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, когда я выполняю тест по размеру страницы. Есть идеи, что я делаю не так, или это не правильный подход?
Спасибо
Подробнее здесь: [url]https://stackoverflow.com/questions/79716487/auto-sizing-the-heading-of-a-word-document[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия