在.NET中打开pdf

时间:2009-10-28 02:00:14

标签: .net pdf

在我们正在开发的应用程序中,我们正在尝试实施帮助。我们有一个帮助pdf文档,目前可以接受的是,当用户单击帮助按钮时,它只会打开pdf。该应用程序是一个桌面应用程序,pdf文件需要以某种方式包含在安装中并安装在本地计算机上。

我基本上需要两件事:

  1. 我如何将此pdf添加到 应用程序,以便它可用 安装后在客户端机器上? 我可以把它放在资源中 该项目,或者我可以 它在应用程序文件夹中 客户端安装程序安装程序。

  2. 我如何打开此pdf? 我可以打开这个pdf 启动默认的pdf查看器 文件,或者我可以使用 System.WinForms.WebBrowser工具来 显示它。但是,如果我选择了 第二种选择,我不确定如何 访问存储在中的文件 资源或在安装中找到它 文件夹中。

  3. 如果可以请我提供代码(在VB.Net或C#.Net中),这将是很棒的。

5 个答案:

答案 0 :(得分:3)

我们就是这样做的:

将所有帮助文件夹放在%ApplicationFolder%/Help中。因此,您的pdf将具有路径%ApplicationFolder%/Help/Manual.pdf。您可以创建一个帮助文件夹,并在您的csproject中输入您的pdf文件,并将整个文件附加到csproject,并将其设置为copy always。这样,您可以确保复制到Help文件夹的pdf始终是最新的。

将所有内容(当然,减去pdb文件)从调试文件夹复制到部署文件夹。

然后,单击帮助按钮时,使用System.Diagnostics.Process.Start(pdfPath)启动帮助文件。以下是获取pdfPath的方法:

以下是代码段:

public void Help_Click(object sender, System.EventArgs e)
{
    var appDir = Path.GetDirectoryName(Application.StartupPath);
    var helDir = Path.Combine(appDir, "Help");
    var pdfPath = Path.Combine(helDir, "Manual.pdf");

    System.Diagnostics.Process.Start(pdfPath);
}

您可以在调试模式下测试它。只需按F5(记得将pdf文件复制到调试文件夹),你就可以得到它

答案 1 :(得分:2)

  1. 恕我直言,我最好将你的pdf存储在应用程序文件夹中,因为它更容易访问。帮助文件名可能是硬编码的,因此找到它没有问题。

  2. 我更喜欢在没有WebBrowser的情况下通过ActiveX在.NET中使用pdf。这是一种简单的方法,结果非常实用 - 您将获得完整的Acrobat工具栏和行为,可以轻松地与您的界面集成。为此,您应该创建单独的表单并将AxAcroPDF控件放在其上,然后使用AxAcroPDF.LoadFile。当然,您需要参考AxAcroPDFLib。控制可以像这样初始化:

    var axAcroPDF = new AxAcroPDFLib.AxAcroPDF();
    axAcroPDF.Dock = System.Windows.Forms.DockStyle.Fill;
    axAcroPDF.Enabled = true;
    axAcroPDF.Name = "axAcroPDF1";
    axAcroPDF.LoadFile(fullFilepath);
    axAcroPDF1.Visible = true;
    
  3. ps任何解决方案都需要在客户端计算机上安装Adobe Acrobat。

答案 2 :(得分:1)

对于您的第一个需求,我发现最简单的方法是将PDF添加到Visual Studio项目并将其“复制到输出目录”设置为“如果更新则复制”。至于如何打开文件,我建议使用默认的PDF查看器。使用.NET Process类,您只需使用以下命令启动文件名:

System.Diagnostics.Process.Start(fullFilePath);

答案 3 :(得分:0)

  
      
  1. 如何将此pdf添加到应用程序中,以便在安装后在客户端计算机上可用?我可以把它放在项目的资源中,否则我可以把它放在客户端安装程序安装程序的Application Folder中。
  2.   

我会选择第二个选项,因为它比嵌入式资源更容易操作文件...

  
      
  1. 我该如何打开此pdf?我可以通过启动文件的默认pdf查看器来打开此pdf,或者我可以使用System.WinForms.WebBrowser工具来显示它。但是,如果我选择第二个选项,我不确定如何访问存储在资源中的文件或在安装文件夹中找到它。
  2.   

网页浏览器不是一个很好的选择恕我直言......并非所有的PDF阅读器都提供了一个很好的浏览器插件,无论如何,用户在独立阅读器应用程序中阅读文档可能会更加舒适

答案 4 :(得分:0)

我不是一个非常有经验的程序员,但如果您担心客户端系统是否可能没有默认的PDF查看器,您可能会尝试实施“TRichEditPDF 1.01”,我会建议使用“Thomas”建议的“应用程序文件夹” /“TRichView llPDFLib 1.0”或“PDFsharp 1.30”。不知道它是否非常实用,但它是一种选择。