首页 文章

MigraDoc PDF报告在2台机器上呈现不同

提问于
浏览
2

我正在使用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,所以我对此感到困惑 .

1 回答

  • 0

    相同的装配,不同的结果? MigraDoc加载图像和字体 . 您在某些计算机上收到“未找到图像”错误消息,因此可能是用户权限的问题(我知道图像是使用Paint编辑器加载的 - 可能是一个简单的MigraDoc错误,并为具有读/写访问权限的用户加载图像但对于具有读访问权限的用户来说却不是吗?只是猜测......) .

    由于权限不足,MigraDoc有时会使用它应该使用的字体的指标,但不能嵌入该字体 . 这通常会导致单词之间或重叠单词之间存在较大差距 .
    您可以在PDF文件的文档属性中检查字体列表(在Adobe Reader中) .

    仅疯狂猜测 . 使用相同数据生成的正确和错误的PDF文件更容易分析 .

相关问题