Qt,PDF查看器,并跳转到特定页面

时间:2012-08-14 17:01:09

标签: qt pdf

我花了几天的时间搜索互联网的内容,找出我的问题的答案,所以既然我找不到答案,我就把它扔给了群众......

在我的Qt应用程序中,我可以使用操作系统默认查看器通过以下命令打开PDF:

QDesktopServices::openUrl(QUrl("file:////C:help.pdf", QUrl::TolerantMode));

这很好用,因为我想要做的就是向用户显示一个帮助文件,但当我尝试在我的URL中添加“#page = 20”参数时,该文档仍然只打开到第一页,而不是第20页。如果我将命令剪切并粘贴到浏览器中,它会正确跳转。

所以 - 我的问题是:

  1. poppler或其他查看工具是否允许我跳转到某个页面?
  2. Qt还有另一种跳转到页面的方法吗?或者可能是另一个打开文件而不是使用QDesktopServices的命令?
  3. 编辑:我尝试使用QProcess,但也没有跳转到页面 - 不是我预期的......

3 个答案:

答案 0 :(得分:4)

QProcessAdobe Reader Command Line Reference中的一个答案一起使用:

<path to Adobe Reader> /A "page=100" "<Path To PDF file>"

答案 1 :(得分:1)

  1. 是。例如,evince会选择--page-index选项,您可以设置页码
  2. 否。 QDesktopServices::openUrl()最终会调用其中一个辅助命令,例如xdg-openkfmclient,而不会有任何参数。
  3. 原因是,您始终可以在应用中使用libpoppler来打开PDF。 Poppler::Document::page()是你的朋友。

答案 2 :(得分:0)

我能够解决的另一个解决方案是将我的PDF转换为HTML,创建QWebView,并在那里显示HTML。然后我向HTML文档添加了一个ID属性,当我将该ID添加到我的URL时,它将加载到属性位置的小部件中...

斯科特