我正在创建一个报纸创作系统。今天我使用Aspose.Words库生成报纸,使用Docx格式作为输出,基于许多其他文档作为输入。
基本思想是将大量文章文档加载到List中,然后用报纸生成最终的docx。
我们需要在列内获取文本(带图像和表格)的总高度。由于像Aspose.Words这样的库处理像DOM这样的Docx格式,因此无法知道如何在列内部排列文本。然后我无法知道真正的身高。
我们以自己的方式努力获得这个高度。我正在使用System.Drawing.Graphics命名空间中的MeasureString()函数。它返回字符串使用的宽度和高度,我可以估计它将在列中使用多少行(和点或英寸)。
但它非常糟糕,我们需要一个更体面的解决方案。我们正在考虑使用OpenXML SDK来获得这个高度,我们可以吗?
Aspose.Words不支持一种知道它的方法,所有Render类都是库的私有。
你能想出一种获得这个高度的新方法吗?
谢谢你, 丹尼尔科赫
答案 0 :(得分:1)
此属性未在Open XML或SDK(或VBA / VSTO)中公开。高度的计算方法不在任何文档中。可能你正在这样做是一种继续下去的方式。
另一种可能的方法是将TextColumns放在表格列/单元格中并抓住该高度(但如果它是单元格中的两个文本列,则第一个“填充”单元格从上到下,第二个单元格没有“ t,你仍然会遇到无法计算第二个大小的问题。)
答案 1 :(得分: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 ..
此致
布鲁诺
答案 2 :(得分:0)
感谢大家的回答。
我完成了将Aspose.Words更改为PDFLib。现在,我可以使用Postscript Points控制页面,列或任何内容。
我们仅将Aspose.Words保留在内容导入中,但并不表示打印简报。