【问题标题】:Is it possible for a PDF produced by a component to match the line wrapping of a WPF TextBlock exactly?组件生成的 PDF 是否可以完全匹配 WPF TextBlock 的换行?
【发布时间】:2010-03-04 15:18:35
【问题描述】:

我们有一个带有打印预览对话框的 WPF 应用程序。当我们创建 PDF 以匹配此打印预览对话框时,我们希望 PDF 显示 100% 匹配。例如,我们有一个 WPF TextBlock,它具有设置的高度和宽度以及一些包含在文本块中的内容。然后,我们希望在 PDF 中准确地重新创建此文本。到目前为止,我们已经尝试了一个 PDF 组件,我们发现在大多数情况下这看起来是正确的,但换行并不总是 100% 匹配。例如,在打印预览 WPF TextBlock 一行显示 7 个单词的情况下,使用 PDF 组件创建的 PDF 可能仅显示 6 个(下一行显示第七个)。

是否有可能在我们的 WPF 文本块和 PDF 文本块之间获得 100% 的匹配?或者这是从 WPF 文本块到 PDF 文本块的限制,任何组件都无法克服?我们真的希望打印预览能够完美匹配以 PDF 格式交付给客户的内容。

【问题讨论】:

    标签: .net wpf pdf-generation


    【解决方案1】:

    您可能想尝试将 WPF 的 RichTextBox 作为只读而不是 TextBlock。

    【讨论】:

    • 我不明白。这对我创建 PDF 有什么帮助?
    【解决方案2】:

    我们使用Tall Components TallPdf 创建 PDF 并发现它非常匹配。要使用TallPDF component 获得接近匹配,我们必须:

    • 使用 MultilineTextShape.LineSpacing 来获得 WPF 文本块和 PDF 之间的匹配
    • 对粗体、斜体等(如timesbd.ttf)使用特定的系统字体文件,而不是片段的Fragment.Bold(或斜体等)属性。
    • 确保字体大小以磅为单位(WPF 文本块的字体大小以像素为单位,宽度或文本块也是如此)。

    考虑到这些项目后,PDF 文本块与 WPF 文本块完全匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多