【问题标题】:Getting dynamic header height from PDF从 PDF 获取动态标题高度
【发布时间】:2016-06-02 16:29:28
【问题描述】:

我们正在使用 Migradoc 生成包含标题部分的 PDF,以便标题显示在每个页面上。

但标题中内容的高度可能会有所不同。我正在使用document.DefaultPageSetup.TopMargin 设置正文内容的位置。然而,这目前是一个固定的“最佳猜测”值。有时内容较大,导致重叠。

我需要一种方法来计算标题的高度,以便我可以适当地设置document.DefaultPageSetup.TopMargin 值。

我假设为此,我必须分两次完成 - 例如。生成 PDF,检查呈现的标题高度,然后再次生成 PDF,设置 document.DefaultPageSetup.TopMargin

不过,在我第一次渲染 PDF 后,我看不到检查标题高度的方法。我注意到DocumentRenderer 中有一个名为GetRenderInfoFromPage() 的方法。这看起来像我想要的,只是它似乎不包含标题数据。如果在第一个 PDF 生成中,我只是在第一页上呈现标题而没有内容,则 GetRenderInfoFromPage(1) 返回一个空数组。如果我在 1 以外的任何其他页面上调用它,它会返回 null

我们还使用PdfSharp 作为最后一道添加水印。因此,如果我可以使用它来查询标题高度,那可能也可以吗?不过我也找不到这样做的方法。

有人知道是否可以查询渲染的标题高度吗?

【问题讨论】:

    标签: c# pdf pdf-generation pdfsharp migradoc


    【解决方案1】:

    我使用我在问题中提到的方法完成了这项工作,除了第一遍,我将标题内容渲染到正文而不是标题区域。这意味着DocumentRenderer.GetRenderInfoFromPage() 然后起作用了。无论如何,此通道仅用于计算标题内容高度。然后对于第二遍,它像往常一样将标题内容呈现到标题中。

    【讨论】:

      猜你喜欢
      • 2012-09-27
      • 2018-08-16
      • 1970-01-01
      • 2020-03-04
      • 2017-01-17
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 1970-01-01
      相关资源
      最近更新 更多