1

我花了几天时间在互联网的内部寻找我的问题的答案,所以因为我找不到答案,所以我把它扔给大众......

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

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

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

所以——我的问题是:

  1. poppler 或其他查看工具会允许我跳转到页面吗?
  2. Qt 还有另一种跳转页面的方法吗?或者也许是另一个命令来打开文件而不是使用 QDesktopServices?

编辑:我尝试使用 QProcess 并且也没有跳转到页面 - 不是我期望它......

4

3 回答 3

4

QProcessAdob​​e Reader 命令行参考中的答案之一一起使用:

<path to Adobe Reader> /A "page=100" "<Path To PDF file>"
于 2012-08-14T19:28:22.130 回答
1
  1. 是的。 evince,例如,采用--page-index您可以设置页码的选项
  2. QDesktopServices::openUrl(),最终调用辅助命令之一,例如xdg-openor kfmclient,没有任何参数。

当然,您始终可以在您的应用程序中使用libpoppler打开您的 PDF。Poppler::Document::page()是你的朋友。

于 2012-08-14T19:52:57.577 回答
0

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

斯科特

于 2012-08-15T18:37:37.217 回答