我花了几天的时间搜索互联网的内容,找出我的问题的答案,所以既然我找不到答案,我就把它扔给了群众......
在我的Qt应用程序中,我可以使用操作系统默认查看器通过以下命令打开PDF:
QDesktopServices::openUrl(QUrl("file:////C:help.pdf", QUrl::TolerantMode));
这很好用,因为我想要做的就是向用户显示一个帮助文件,但当我尝试在我的URL中添加“#page = 20”参数时,该文档仍然只打开到第一页,而不是第20页。如果我将命令剪切并粘贴到浏览器中,它会正确跳转。
所以 - 我的问题是:
编辑:我尝试使用QProcess,但也没有跳转到页面 - 不是我预期的......
答案 0 :(得分:4)
将QProcess
与Adobe Reader Command Line Reference中的一个答案一起使用:
<path to Adobe Reader> /A "page=100" "<Path To PDF file>"
答案 1 :(得分:1)
evince
会选择--page-index
选项,您可以设置页码QDesktopServices::openUrl()
最终会调用其中一个辅助命令,例如xdg-open
或kfmclient
,而不会有任何参数。原因是,您始终可以在应用中使用libpoppler来打开PDF。 Poppler::Document::page()
是你的朋友。
答案 2 :(得分:0)
我能够解决的另一个解决方案是将我的PDF转换为HTML,创建QWebView,并在那里显示HTML。然后我向HTML文档添加了一个ID属性,当我将该ID添加到我的URL时,它将加载到属性位置的小部件中...
斯科特