【问题标题】:Get height of rendered text and images in MS Word获取 MS Word 中渲染文本和图像的高度
【发布时间】:2018-02-28 10:05:33
【问题描述】:

我正在创建一个报纸创作系统。今天我正在使用 Aspose.Words 库来生成报纸,使用 Docx 格式作为输出,基于许多其他文档作为输入。

基本思路是将大量文章文档加载到一个List中,然后生成一个带有报纸的最终docx。

我们需要获取列内文本(包括图像和表格)的总高度。由于像 Aspose.Words 这样的库处理像 DOM 这样的 Docx 格式,因此无法知道文本将如何在列内排列。那我就无法知道真实的高度了。

我们以自己的方式努力达到这个高度。我正在使用 System.Drawing.Graphics 命名空间中的 MeasureString() 函数。它返回字符串使用的宽度和高度,我可以估计它将在列内使用多少行(以及点或英寸)。

但它很差,我们需要一个更体面的解决方案。我们正在考虑使用 OpenXML SDK 来获得这个高度,可以吗?

Aspose.Words 不支持了解它的方法,并且所有 Render 类都是库私有的。

你能想出一种新方法来达到这个高度吗?

谢谢, 丹尼尔·科赫

【问题讨论】:

  • 自此问题发布以来,他们向 Aspose.Words 添加了一项功能——它现在公开了一些布局引擎和更多渲染内容。您可以获取页码并渲染到图形对象和图像等。不过还不确定如何获取对象的高度。

标签: c# .net ms-word aspose


【解决方案1】:

此属性未在 Open XML 或 SDK(或 VBA/VSTO 中)中公开。任何文档中都没有准确计算高度的方法。可能你正在做的方式是一种继续的方式。

另一种可能的方法是将您的 TextColumns 放在表格列/单元格中并抓住该高度(但如果它是单元格中的两个文本列并且第一个从上到下“填充”单元格,而第二个则没有t,你仍然会遇到无法计算第二个大小的问题。

【讨论】:

    【解决方案2】:

    我遇到的问题几乎和你一样。但就我而言,我正在处理测试考试中的问题。 那么现在,我们正在使用 RTF 来构建问题,并使用 RichTextBox 来测量高度.. 就像那样 (http://blogs.technet.com/david_bennett/archive/2005/04/06/403402.aspx).. 而且我想迁移到 DOCX .. 但是在如何用表格和图像衡量问题方面仍然没有运气.. :-( 现在我正在研究 Document Members (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word._document_members.aspx),尝试使用 Word Automation..

    问候,

    布鲁诺

    【讨论】:

      【解决方案3】:

      谢谢大家的回答。

      我完成了将 Aspose.Words 更改为 PDFLib。现在我可以使用 Postscript Points 控制页面、列或任何内容。

      我们保留 Aspose.Words 仅用于内容导入,但不表示打印时事通讯。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-23
        • 2016-08-05
        • 2021-08-07
        • 1970-01-01
        • 2020-06-24
        • 1970-01-01
        • 2010-10-06
        相关资源
        最近更新 更多