ImpressiveでPDFスライドを自動再生

先日開催された「鹿児島Linux勉強会 2026.10」の発表で「SBC再利用でディジタルサイネージを作る」というものがありました。
余っている古めのSBC(シングルボードコンピューター)をイベントの展示で利用するデジタルサイネージ取りて活用する話でした。
発表後デモ用のスライドを自動再生させたいという話に。

そういえば以前 #koedolug で @hatochan@mstdn.maud.io からhtmlでのプレゼンテーションツールのReveal.jsで同じようなことできないかなという話が出たときにAsciidoc Reveal.js で以下のようなスライドを試していました。

しかし今回はSBCでウェブブラウザは重いのでPDFスライドを自動再生させたいということで少し探してみました。

手元の端末に入っているいくつかのPDFプレゼンテーションツールのmanを見るとImpressiveにそれらしいオプションがあります。

-a <seconds> or --auto <seconds>
       Automatically advance to the next page after the given number of seconds. Together with the -w option (described below), this can be used to create automatic slideshows.
       Note that this option will not interrupt video playback: If a video is longer than the interval specified with --auto, it will be played until the end, but Impressive will change to the next page directly after that.
— man impressive
-w or --wrap
       If this option is set, Impressive will "wrap" over to the first page after the last page. In other words, advancing to the next page at the end of the presentation will restart the whole presentation.
— man impressive

この --auto と --wrap を使って実現できました.
ただ、ページ遷移時のトランジションがランダムでちょっと鬱陶しいようなということでトランジションのオプションも。

-t <trans1[,trans2...]> or --transition <trans1[,trans2...]>
       Using this switch, the set of transitions Impressive will randomly draw at page changes can be specified. If only one transition class is specified, this class will be used for all pages that do not have another transition ex‐
       plicitly assigned in their page properties. Multiple transitions have to be separated by commas; they will be used in random order. The -l option can be used to get a list of available transitions.
— man impressive

-l でトランジションの一覧が表示できます。これを -t , --transition に指定することでトランジションを指定できました。

$ impressive -l 2>/dev/null
Available transitions:
  Crossfade       - simple crossfade
  FadeOutFadeIn   - fade out to black and fade in again
  None            - no transition
  PagePeel        - an unrealistic, but nice page peel effect
  SlideDown       - slide downwards
  SlideLeft       - slide to the left
  SlideRight      - slide to the right
  SlideUp         - slide upwards
  SqueezeDown     - squeeze downwards
  SqueezeLeft     - squeeze to the left
  SqueezeRight    - squeeze to the right
  SqueezeUp       - squeeze upwards
* WipeBlobs       - wipe using nice "blob"-like patterns
  WipeBrightness1 - wipe based on the current slide's brightness
  WipeBrightness2 - wipe based on the next slide's brightness
  WipeCenterIn    - wipe from the corners inwards
* WipeCenterOut   - wipe from the center outwards
  WipeClouds      - wipe using cloud-like patterns
* WipeDown        - wipe downwards
  WipeDownLeft    - wipe from the upper-right to the lower-left corner
* WipeDownRight   - wipe from the upper-left to the lower-right corner
  WipeLeft        - wipe from right to left
* WipeRight       - wipe from left to right
  WipeUp          - wipe upwards
  WipeUpLeft      - wipe from the lower-right to the upper-left corner
  WipeUpRight     - wipe from the lower-left to the upper-right corner
(transitions with * are enabled by default)

ということで合わせてこんな感じで。

$ impressive \
  --auto 30 \ (1)
  --wrap \ (2)
  --transition None \ (3)
  slide.pdf (4)
  1. 30秒でページ送り

  2. 最終ページから最初のページに遷移

  3. トランジションを None に(カンマ区切りで複数指定可能)

  4. スライドPDF

Reposts

  • uwabami
  • matoken :fox:

Likes

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

Your post must include a link to this post.

How does this work?
Write a response on your own website and include a link to this post. Then submit your response’s URL here. Your response may appear here after moderation. To update or remove it, edit or delete your original post and submit the same URL again. Learn more about Webmentions.