2

我正在使用MigraDoc (v1.32.3885) 为我的 .NET 4.0 应用程序呈现一些报告,该应用程序部分是 VB.NET 和 C#。主 UI 是 VB.NET,但这无关紧要。该系统有许多不同的报告。

一位用户在显示这些报告时遇到问题。所有报告似乎都适用于其他用户。我不知道为什么,也不知道还能去哪里获取一些信息。

通常报告表格未对齐并且公司徽标从不显示 - 显示未找到图像 - 即使有问题的用户可以正常将徽标加载到绘图编辑器中。

该应用程序由用户从一个 UNC 共享中运行,所有 DLL 都在该共享中被复制。所有用户 PC 都运行相同的平台——Microsoft Windows NT 5.1.2600 Service Pack 3(32 位)——即 XP——安装了 .NET4。我拼凑了一个屏幕,在其中记录了应用程序用户的所有文件,这些文件存储在列表视图中,然后复制到剪贴板进行分析:

Dim assembly = Reflection.Assembly.GetExecutingAssembly()
Dim loadedAssemblies = assembly.GetReferencedAssemblies()

For Each an In loadedAssemblies
        Dim a = Reflection.Assembly.Load(an.FullName)
        Dim fvi = FileVersionInfo.GetVersionInfo(a.Location)
        Dim lvi As New ListViewItem
        Me.FileVersionsListView.Items.Add(lvi)
        lvi.Text = fvi.FileName
        lvi.SubItems.Add(fvi.FileVersion)
Next

所有记录的文件和版本都使用相同的引用程序集 - 相同的框架,相同的文件版本(来自上述)。

用户使用 Adob​​e Reader 来查看生成的 PDF 报告,但即使我使用 MigraDoc.Rendering.Forms.DocumentPreview - 对于这个用户,在 Adob​​e 中也会出现相同的严重渲染报告。

MigraDoc 和 PDF Sharp 似乎没有任何外部依赖项——只有 .NET Framework,所以我对此感到困惑。

4

1 回答 1

0

相同的组件,不同的结果?MigraDoc 加载图像和字体。您在某些计算机上收到“找不到图像”错误消息,因此可能是用户权限问题(我知道图像是使用 Paint 编辑器加载的 - 也许这是一个简单的 MigraDoc 错误,并且对于具有读/写访问权限的用户而言,图像加载但不适用于具有读取权限的用户?只是一个疯狂的猜测......)。

由于权限不足,MigraDoc 有时会使用它应该使用的字体的度量,但不能嵌入该字体。这通常会导致单词之间的间隙很大或单词重叠。
您可以在 PDF 文件的文档属性中检查字体列表(在 Adob​​e Reader 中)。

只能胡乱猜测。使用相同数据生成正确和不正确的 PDF 文件会更容易分析。

于 2013-10-16T08:29:10.700 回答