【问题标题】:HTML Help Control and parent application crashes when try to open pdf file linked in CHM尝试打开 CHM 中链接的 pdf 文件时,HTML 帮助控件和父应用程序崩溃
【发布时间】:2016-08-04 11:42:19
【问题描述】:

我有一个 CHM 文件,该文件在目录中包含指向 PDF 的链接。 我尝试使用 Help.ShowHelp() 方法从我的 .NET 应用程序中打开此 CHM。

在 HTML 帮助查看器中打开 CHM 时,我尝试从 TOC 打开 pdf 链接,HTML 帮助控件与父应用程序一起崩溃。

以下是系统和应用的规格:

OS: Server 2012
.NET Version: 4.0
IE: 11.0
Acrobat Reader DC: 15.0

在查看事件查看器时崩溃后发现以下错误:

Faulting application name: ABC.exe, version: 1.0.0.0, time stamp: 0x57061199
Faulting module name: AcroPDFImpl64.dll_unloaded, version: 15.10.20056.36345, time stamp: 0x567400fc
Exception code: 0xc0000005
Fault offset: 0x0000000000046c6c
Faulting process id: 0x6b9c
Faulting application start time: 0x01d19560fb9af8f4
Faulting application path: C:\Program Files\XYZ\PPP\MM\ABC.exe
Faulting module path: AcroPDFImpl64.dll
Report Id: 78e86abc-0154-11e6-8100-000c29d549d9
Faulting package full name: 
Faulting package-relative application ID: 

请提供有关如何克服崩溃的任何指示。

谢谢, PJ

【问题讨论】:

  • 请通过编辑有关 PDF 存储位置的问题提供一些信息。嵌入(意味着编译到 CHM)、非嵌入(意味着安装但在 CHM 之外)或通过 URL 从服务器下载。我们也不知道您是否是有权编译新 CHM 的帮助作者。请注意,我在答案中发布的示例链接包括一种从 HTML 主题文件打开 PDF 的特殊方式。这在示例主题本身中进行了描述。请发布您的编程语言和您的ShowHelp 调用代码。

标签: pdf chm


【解决方案1】:

我从头开始尝试过,但我无法在安装了 Visual Basic 2015、HTMLHelp Workshop 和 FAR HTML 的 Windows10 机器上重现您的错误。它对我有用(见下面的快照)。

我看到的是,您在服务器环境中 - 我不是。您可能知道从服务器下载 CHM 时存在安全问题。

我的目录 (TOC) 是使用以下 *.hhc sn-p 构建的。我稍后尝试的第三个 PDF 链接(未嵌入)(不是在快照中),但这也可以。

  <LI><OBJECT type="text/sitemap">
        <param name="Name" value="PDF Link from TOC">
      </OBJECT>
  <UL>
     <LI><OBJECT type="text/sitemap">
           <param name="Name" value="PDF - Example Help-Info.de">
           <param name="Local" value="pdf/help-info.pdf">
         </OBJECT>
     <LI><OBJECT type="text/sitemap">
           <param name="Name" value="PDF - Example GDI-NI">
           <param name="Local" value="pdf/gdi-ni.pdf">
         </OBJECT>
     <LI><OBJECT type="text/sitemap">
           <param name="Name" value="Link to PDF (NOT embedded - server)">
           <param name="Local" value="http://www.help-info.de/files_download/pdf/example-server.pdf">
           <param name="ImageNumber" value="11">
         </OBJECT>   

第一个和第二个链接指向嵌入式 PDF 意味着 PDF 被编译到 CHM 中。这是通过 CHM 项目文件中的一些附加命令完成的:

[FILES]
svg\*.svg
pdf\*.pdf

如果您不是 CHM 的帮助作者,那么在您的案例中如何编译或链接 PDF 是一个主要问题。请通过双击检查您的 CHM 是否作为独立文件工作。

对于一些额外的测试,您可以从我的网站下载 CHM 示例:

Project with all files and tricky examples

提取 CHM 文件并在您的应用程序中进行测试。请注意,当您来自互联网时,您必须取消阻止 CHM 文件。

当 PDF 内容必须由补丁安装程序更新时,CHM 文件包含 PDF 示例。 PDF 未编译到 CHM 中,但在这种情况下已安装。

【讨论】:

  • 嗨@help-info.de 感谢您的回复。我也对样本进行了同样的尝试,但无法重现它,但它在我的应用程序中始终可以重现。如果能指出可能导致此问题的应用程序中所有可能的嫌疑人,那就太好了。
  • 困难 - 请记住 HTMLHelp 大约有 20 年的历史,并且从目录 (TOC) 链接的 PDF 是 - AFAIK - 不是一个功能。在您编辑并提供更多信息后,我会尝试跟进一些想法(请参阅上面的评论)。
  • 我收到以下错误:Adobe Acrobat/Reader 出现问题。如果它正在运行,请退出并重试。 (103:103) 我在服务器 2012 上使用的 Acrobat 阅读器是 Adob​​e Acrobat Reader DC。当搜索此错误时,必须在启动时关闭保护模式,这已经完成但仍然面临问题。
猜你喜欢
  • 2022-11-15
  • 2017-12-26
  • 2019-01-24
  • 2018-03-12
  • 1970-01-01
  • 2017-03-10
  • 1970-01-01
  • 2010-09-12
相关资源
最近更新 更多