1

私は自分の質問に対する答えを見つけるためにインターネットの腸を検索するのに数日を費やしたので、答えが見つからないので、大衆に投げ出しています...

Qt アプリケーション内で、次のコマンドを使用して OS のデフォルト ビューアーを使用して PDF を開くことができます。

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

ユーザーにヘルプ ファイルを表示したいだけなので、これは問題なく動作しますが、「#page=20」パラメーターを URL に追加しようとすると、ドキュメントはページではなく最初のページにしか開かれません。 20. コマンドを切り取ってブラウザーに貼り付けると、正しくジャンプします。

だから - 私の質問は次のとおりです。

  1. poppler やその他の表示ツールを使用すると、ページにジャンプできますか?
  2. Qtでページにジャンプする別の方法はありますか? それとも、QDesktopServices の代わりにファイルを開く別のコマンドでしょうか?

編集: QProcess を試してみましたが、それもページにジャンプしません-期待していたわけではありません...

4

3 に答える 3

4

Adobe Reader Command Line ReferenceQProcessからの回答の 1 つと共に使用します。

<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-openkfmclient

もちろん、いつでもアプリでlibpopplerを使用して PDF を開くことができます。Poppler::Document::page()あなたの友達です。

于 2012-08-14T19:52:57.577 に答える
0

私が解決できた別の解決策は、PDF を HTML に変換し、QWebView を作成して、そこに HTML を表示することでした。次に、ID 属性を HTML ドキュメントに追加し、その ID を URL に追加すると、属性の場所でウィジェットに読み込まれました...

スコット

于 2012-08-15T18:37:37.217 に答える