2010-01-28 1 views
5

Я создаю систему создания газет. Сегодня я использую библиотеку Aspose.Words для создания газеты с использованием формата Docx в качестве вывода, основанного на множестве других документов в качестве входных данных.Получить высоту визуализированного текста и изображений в MS Word

Основная идея состоит в том, чтобы загружать множество статей в список, а затем генерировать окончательный документ с газетой.

Нам нужно получить общую высоту текста (с изображениями и таблицами) внутри столбцов. Поскольку такие библиотеки, как Aspose.Words, имеют дело с форматом Docx, например DOM, нет способа узнать, как текст будет размещаться внутри столбцов. Тогда я не могу знать настоящую высоту.

Мы работали по-своему, чтобы получить эту высоту. Я использую функцию MeasureString() из пространства имен System.Drawing.Graphics. Он возвращает ширину и высоту, используемые строкой, и я могу оценить, сколько строк (и точек или дюймов) будет использоваться внутри столбца.

Но это очень плохо, и нам нужно более достойное решение. Мы думаем использовать OpenXML SDK для получения этой высоты, не так ли?

Aspose.Words не поддерживает способ узнать его, и все классы Render являются приватными для библиотеки.

Можете ли вы подумать о новом способе получения этой высоты?

Спасибо, Daniel Koch

+1

Они добавили функцию, так как этот вопрос был опубликован, в Aspose.Words - теперь он предоставляет некоторые из механизмов компоновки и многое другое из материала рендеринга. Вы можете получить номера страниц и визуализировать графические объекты, изображения и прочее. Не уверен, как получить высоту объекта, хотя. – BrainSlugs83

ответ

0

Спасибо всем за ответ.

Я закончил смену Aspose.Words в PDFLib. Теперь я могу управлять страницами, столбцами или чем угодно, используя точки Postscript.

Мы сохраняем Aspose.Words только для импорта контента, но это не означает печать бюллетеня.

1

Это свойство не подвергается в Open XML или SDK (или VBA/VSTO по этому вопросу). Как точно рассчитана высота не в какой-либо документации. Возможно, способ, которым вы это делаете, - это способ продолжения.

Другой возможный способ заключается в том, чтобы поместить ваши текстовые столбцы в столбец таблицы/ячейку и захватить эту высоту (но если это два текстовых столбца в ячейке, а первый «заполняет» ячейку сверху вниз, а второй - 't, у вас все еще будет проблема неспособности рассчитать размер второго).

0

У меня есть почти та же проблема, что и у вас .. Но в моем случае я имею дело с вопросами внутри экзамена по тестированию. Ну в настоящее время мы используем RTF для создания вопросов и RichTextBox для измерения высоты .. Точно так же (http://blogs.technet.com/david_bennett/archive/2005/04/06/403402.aspx).И я хочу перейти на DOCX .. Но до сих пор не повезло, как измерить вопрос со столами и изображениями .. :-( Сейчас я изучаю участников документа (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word._document_members.aspx), чтобы попытаться сделать с Word Automation ..

с уважением,

Бруно

+0

Aspose.Words работает также с RTF. – BrainSlugs83

Смежные вопросы