我使用MigraDoc(v1.32.3885)为我的.NET 4.0应用程序呈现部分报告,部分是VB.NET和C#。主用户界面是VB.NET,但这无关紧要。该系统有许多不同的报告。
一位用户错误地显示这些报告时出现问题。所有报告似乎都适用于其他用户。我不知道为什么,也不知道在哪里可以找到一些信息。
通常,报表不对齐,公司徽标永远不会显示 - 显示未找到图像 - 即使有问题的用户可以将徽标正常加载到绘图编辑器中。
应用程序由来自UNC共享的用户运行,其中所有DLL也被复制。所有用户PC都运行相同的平台 - 安装了.NET4的Microsoft Windows NT 5.1.2600 Service Pack 3(32位) - 即XP。我拼凑了一个屏幕,我将应用程序用户的所有文件记录在列表视图中,然后复制到剪贴板进行分析:
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
所有记录的文件和版本都使用相同的引用程序集 - 相同的框架,相同的文件版本(来自上面)。
用户使用Adobe Reader查看生成的PDF报告,但即使我使用MigraDoc.Rendering.Forms.DocumentPreview,也会出现与Adobe相同的错误呈现报告。
MigraDoc和PDF Sharp似乎没有任何外部依赖 - 只是.NET Framework,所以我对此感到困惑。
答案 0 :(得分:0)
相同的装配,不同的结果? MigraDoc加载图像和字体。您在某些计算机上收到“未找到图像”错误消息,因此可能是用户权限的问题(我知道图像使用Paint编辑器加载 - 可能是一个简单的MigraDoc错误,并为具有读/写访问权限的用户加载图像但对于具有读访问权限的用户来说却不是吗?只是猜测......)。
如果权利不足,MigraDoc有时会使用应该使用的字体指标,但不能嵌入该字体。这通常会导致单词之间或重叠单词之间存在较大差距 您可以在PDF文件的文档属性中检查字体列表(在Adobe Reader中)。
只是疯狂猜测。使用相同数据生成的正确和错误的PDF文件更容易分析。