代码之家  ›  专栏  ›  技术社区  ›  masfenix

在c应用程序中托管PDF

  •  5
  • masfenix  · 技术社区  · 16 年前

    我正在为一个朋友写一本电子书。他有word(docx)的内容,所以我有几个问题。我在前面创建了一个关于如何处理这个问题的线程,最好的回应是用它创建PDF。主要的一点是我们可以有可插入的文本框,链接和目录。

    现在我想知道是否可以在我的应用程序中托管PDF。我想做一个“adobe阅读器”。有没有图书馆可以这样做?我可以使用已安装的COM/DLL来执行此操作吗?

    谢谢你们。

    5 回复  |  直到 16 年前
        1
  •  6
  •   Darin Dimitrov    16 年前

    制作 自定义PDF浏览器 控制可能是一项极具挑战性的任务。您可以在应用程序中使用真正的Adobe Reader,因为它是作为COM控件提供的,可以托管在任何Windows应用程序中。步骤如下:

    1. 启动新的WinForms应用程序
    2. 使Acrobat控件在工具箱中可用(工具->添加/删除工具箱项:在COM组件选项卡中打开“Adobe Acrobat 7.0浏览器文档”。在点击COM标签之前,别忘了喝杯咖啡。
    3. 将控件拖动到窗体
    4. 操纵它:

      axAcroPDF1.LoadFile("mypdf.pdf");
      axAcroPDF1.Show();
      
        2
  •  1
  •   David    16 年前

    创建自己的PDF阅读器是一个非常糟糕的主意,因为:

    1. 你不能控制何时使用Adobe 更改规格
    2. 免费阅读,大多数 用户已经安装了它。
    3. 鉴于前两种说法,你为什么要花那么多时间重新发明轮子?当你可以改进它时,重新发明轮子是有意义的,但当你只是复制免费提供的功能时,就没有意义了。

    最好找到一种方法来使用他们已经设计好的Acrobat阅读器,并免费分发。

        3
  •  1
  •   Tyler Jensen    16 年前

    我有很好的工作经验 Aspose

        4
  •  1
  •   Incognito    16 年前

    您可以通过与读卡器一起安装在计算机上的ActiveX组件将Adobe Reader嵌入到应用程序中。您可以从COM组件选项卡将其添加到VS工具箱中。任何安装了AbobeReader的人都可以使用你的应用程序查看PDF文档。 请注意,如果没有安装Adobe Reader,您的程序将无法工作,或者您需要以某种方式为应用程序提供lib。 如果你想要一些不需要adobereader的东西,那么你可以查看 iText#

        5
  •  0
  •   Ben Schwehn    16 年前

    使用Adobe ActiveX/com组件的一个潜在问题是,用户必须安装Adobe Reader才能正常工作(我认为您不能和/或只能重新分发ActiveX控件,也不想强制我的用户安装Adobe Reader)。因此,对于更严肃的工作,我将尝试使用一个Pdf库,您可以将其与代码一起分发,例如为开放源代码库编写一个(可能非常小的)P/Invoke包装器 http://ccxvii.net/mupdf/ 或者如果你能/想买得起的话,去一些商业图书馆。