首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dbus-发送如何从zathura获得页数?

Dbus-发送如何从zathura获得页数?
EN

Stack Overflow用户
提问于 2022-04-15 13:14:41
回答 2查看 140关注 0票数 0

我正在尝试使用dbus-send从zathura获取页面总数(Zathura是一个PDF查看器)(见下图)。我不熟悉DBus (无论我如何努力学习它,我总是放弃)。

当我双击这个属性时,我可以使用一个GUI程序来查看numberofpages页面的总数量。

但是,我正在尝试使用dbus-send获取相同的信息。我在终端上试了以下几种方法:

代码语言:javascript
复制
dbus-send --session --dest=org.pwmt.zathura.PID-1057698 \
 --print-reply org.pwmt.zathura.Properties.numberofpages

上面的命令无效。

请告诉我如何构造一个dbus命令来获得numberofpages值吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-15 14:45:58

这可能更容易使用busctl而不是dbus-send。无论哪种方式,对于大多数D总线情况,您都需要知道四位信息。

org.pwmt.zathura.PID-1057698

  • Path:/org/pwmt/zathura

  • Interface:org.pwmt.zathura

  • Property:numberofpages

  1. 总线名称:

我希望你的情况是:

代码语言:javascript
复制
busctl --user get-property org.pwmt.zathura.PID-1057698 /org/pwmt/zathura org.pwmt.zathura numberofpages 

若要在大多数机器上运行的服务上尝试此操作,请执行以下操作:

org.freedesktop.systemd1

  • Path:/org/freedesktop/systemd1

  • Interface:org.freedesktop.systemd1.Manager

  • Property:Architecture

  1. 总线名称:

并在这两个实用程序中运行它:

dbus-发送

代码语言:javascript
复制
$ dbus-send --session --print-reply --dest=org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.DBus.Properties.Get string:"org.freedesktop.systemd1.Manager" string:"Architecture"
method return time=1650033765.273653 sender=:1.0 -> destination=:1.176 serial=2677 reply_serial=2
   variant       string "x86-64"

busctl

代码语言:javascript
复制
$ busctl --user get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager Architecture 
s "x86-64"
票数 1
EN

Stack Overflow用户

发布于 2022-04-15 14:15:37

在使用dbus-send命令之后,我终于找到了正确的语法:

代码语言:javascript
复制
dbus-send --session  --print-reply \
 --dest=org.pwmt.zathura.PID-1057698\ 
 /org/pwmt/zathura \
 org.freedesktop.DBus.Properties.Get \
 string:org.pwmt.zathura string:numberofpages

该命令的输出是:

代码语言:javascript
复制
method return time=1650032068.076028 sender=:1.2273 -> destination=:1.2408 serial=79 reply_serial=2
   variant       uint32 46

我可以使用grep来获得值46 (在我的例子中是PDF文档中的总页数)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71884503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档