PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Powerpoint auf Pi umwandeln?



Rabenauge
28.07.2023, 16:02
Hallöle.
Für unser Museum suche ich nach einer Lösung..und hoffe, dass mir jemand weiter helfen kann.
Mit dem Office-Gedöns hab ich es ja nun gar nicht...

Folgendes Szenario:
Es gibt nen hübschen, grossen Fernseher mit Touch-Funktion.
Der wird von nem Pi (krieg ich noch raus, was für einer, momentan weiss ich es nicht) angesteuert:
auf dem Bildschirm erscheinen mehrere "Bilder"- Besucher können die antippen und dann wird dazu ein Video abgespielt.
Das läuft auch....

Wir wollen nun aber die Geschichte aufbohren: die Stadt gibt täglich "Tages-News" raus. Infos für Touristen halt...normalerweise kriegt man da ein PDF als Download aufgedrückt.
Erstellt wird das Ganze aber mit Powerpoint.
Der Plan ist, in den Zeiten, wo niemand Videos schaut, eben diese Tages-News auf den Bildschirm zu werfen. Quasi ne Slideshow (das können schonmal 15 Seiten sein, das kriegt man nich vernünftig auf einmal auf den Screen).
Tippt jetzt jemand den Bildschirm an, kommt dann die Video-Auswahl...

Der Pi müsste also jeden Morgen:
-sich das PDF runterladen und in einzelne Seiten zerlegen (geht das überhaupt?) ODER
-das ppt müsste auch auf den Server (dazu krieg ich die Mädels von der Tourist-Info möglicherweise grade noch überredet). der Pi holt es sich, exportiert jede Folie als JPG und setzt daraus ne Slideshow zusammen.

Den Rest krieg ich schon hin, denke ich: nen GUI schreiben, und ne Art Bildschirmschoner basteln, der dann die Slideshow ausführt.
Aber wie krieg ich (automatisiert, wir haben _nicht_ die Zeit, das manuell zu machen) entweder aus der ppt oder aus der pdf die Seiten einzeln raus, als Bilddateien?

Hat da jemand ne Idee?
Die ppt kann ich mit Linux (Impress) öffnen, das klappt schonmal.
Aber wie weiter?

inka
28.07.2023, 17:27
hier (http://www.print-driver.de/how-to/powerpoint-nach-jpeg-konvertieren) steht was von " automatischer konvertierung von powerpoint zu jpg"...

Andree-HB
29.07.2023, 14:58
...ich hatte mal vor Jahren für eine Makerfaire einen "Powerpoint-Player" gebaut (bzw. Libre-Office Impress Player), der die einzelnen Slides (über verschiedene Vereinsprojekte) abspielt - das ging ganz gut, die PPT lag dabei auf `nem USB-Stick und wurde von dort abgerufen, sogar einige Übergangsanimationen konnten ruckelfrei abgespielt werden.

jmoors
30.07.2023, 11:20
Kann man die PPTX nicht mit OpenOffice laden und dann im gewünschten Format abspeichern? OpenOffice sollte auch auf einem Pi laufen und PPTX, usw., als Diashow darstellen können.

Rabenauge
31.07.2023, 14:05
Hm, Powerpoint (oder Impress) und ich...

Aktuell teste ich, ob man nicht direkt das PDF als Slideshow laufen lassen kann.
Das wäre eigentlich sogar der Einfachste weg, da die Touri-Mädels das PDF sowieso jeden Morgen auf den Server werfen.
Da kann es der Raspi automatisiert abholen..noch einfacher gehts nicht.

Mal sehen, ob das klappen wird.

Rabenauge
31.07.2023, 23:03
Es tut sich ne Lösung auf, namens Okular.
Das ist eigentlich sowas wie ein E-Book-Reader, der aber neben vielem anderen auch nen Kiosk-Modus kann.
Und_ er ist über die Konsole steuerbar...ich glaube, damit kann man was anfangen.
Aufm Laptop funktioniert es schonmal prima.

Jetzt muss ich mir überlegen, wie ich ein Interface bauen könnte, was Okular dann beendet, wenn jemand auf den Bildschirm tappst- und dann die Videoauswahl anzeigt. Und, wenn kein Video läuft, nach einer Weile die Okular-Show neu startet.
Das wird auch noch ein riesiger Spass...

morob
01.08.2023, 13:41
Ich würde das PDF in PNG wandeln auf der Linux Konsole mit

pdftoppm {input.pdf} {output.file} -png

Gruß
Stephan

Rabenauge
02.08.2023, 09:55
Hm, wenn es so einfach ist...werd ich es ausprobieren.

Gestern hab ich mal ein bisschen herumgespielt, und ein Python -Progrämmchen gebastelt (15 Zeilen oder so, kaum der Rede wert) was automatisch das "gestrige" pdf in nem Festgelegten Verzeichnis löscht, das "heutige" dorthin runter lädt, und dann über die Konsole Okular im Präsentationsmodus startet.
Wenn Okular entsprechend vorher konfiguriert ist (Dauerschleife usw) läuft das prima.
So weit, so einfach..

Der Haken: ich habs nicht geschafft, ein Tkinter-Widget _vor_ die Präsentation zu kriegen, was aber nötig wäre, um die Präsentation zu stoppen oder wenigstens den Videoplayer nach vorne zu kriegen.
Blöderweise hab ich auch noch keinen Weg gefunden, den Kiosk-Modus von Okular _nicht_ fullscreen, sondern einfach nur in der Breite einer Seite laufen zu lassen (vermutlich auch nicht möglich).

Insofern wären die Einzelseiten als png ein anderer, möglicher Weg- die kann ich easy als Widget ausgeben..
Ich guck mir das die Tage mal an.

Rabenauge
02.08.2023, 20:59
@morob: Grosser Dank!
Das funktioniert ja prima, auf die Weise wird das pdf.. in einzelne Seiten zerlegt und jede Seite separat gespeichert. Das ist perfekt, da ich die Bilder nun ganz easy in nem TKinter-Interface zu ner Slideshow zusammensetzen kann.
Da hab ich dann alle Möglichkeiten, die ich brauche...

morob
03.08.2023, 07:52
Ich brauche eigentlich immer den anderen Weg, Scan zu PDF machen bzw. PDF zusammenfassen :)

Gruß
Stephan

Rabenauge
03.08.2023, 21:05
Aus Bildern PDF machen, hm, so auf die Schnelle weiss ich da nix, aber PDF zusammenführen scheint mit den Poppler-utils (https://manpages.debian.org/testing/poppler-utils/pdfunite.1.en.html) auch zu gehen.

morob
04.08.2023, 08:20
img2pdf oder img2pdf-gui :D

inka
04.08.2023, 08:54
pdftoppm {input.pdf} {output.file} -png

ist die zeile nach dem ersetzen des "inputs" durch den namen der echten pdf datei so komplett? Im verzeichnis der zu bearbeitenden datei in der konsole ausgeführt, passiert bei mir nichts, ausser, dass die liste mit den ganzen optionen ausgegeben wird. Aber die kommandozeile war noch nie meine stärke :-(

morob
04.08.2023, 10:15
pdftoppm testinput.pdf seiten -png

testinput.pdf ist die Eingabe
seiten ist die Ausgabe mit der Endung der Grafikformat und Seitenzahl

seiten-[1..9].png

Gruß
Stephan

Rabenauge
04.08.2023, 19:27
Funktionierendes Beispiel:


pdftoppm /home/ichselber/Python-Programme/download/news.pdf /home/ichselber/Python-Programme/download/news -png

Die PDF wird hier zu Einzelseiten (als png) zerlegt, unabhängig von ihrer Seitenzahl.
Die landen im selben Verzeichnis (sollte sich aber problemlos auf ein anderes Verzeichnis umbiegen lassen).
Es gibt weitere Optionen, z.b. kann man die Auflösung der Seiten angeben, oder auch nur einzelne Seiten extrahieren.
Wenn man nicht genau weiss, ob die Seitenanzahl immer die selbe ist, sollte man aber vorher aufräumen.

Rabenauge
15.08.2023, 22:41
Soweit läufts:


https://youtu.be/kqSFWwpWnQc

Momentan passiert da schon recht viel: zuerst wird die PDF herunter geladen, danach wird sie in Einzelseiten zerlegt. Damit die Slideshow nicht zu lang wird, werden nur die Seiten 1-5 als *.png gespeichert (normalerweise hat die PDF so um die 15 Seiten).
Dann wird die PDF wieder gelöscht- die wird nicht mehr gebraucht.
Vor dem Erzeugen der Einzelbilder wird die aktuelle Bildschirmgrösse ermittelt, und die erzeugten Bilder auf ungefähr 2/3 der Bildschirmbreite skaliert.
Das Ganze passiert nach jedem Start (man könnte da noch ne Datums-Abfrage einbauen, aber da das Ding gewöhnlich kurz vor dem Öffnen des Museums ein- und kurz nach dem Schliessen ausgeschalten wird, ist das nicht wirklich nötig).
Auf die Weise kann ich den Kram später einfach in den Autostart packen.
Aus denen wird nun, mittels Tkinter-Canvas-Widget, die Slideshow erzeugt.
Da ich momentan keine andere Möglichkeit sehe, einen Timer zu schreiben, wirft sie beim Beenden ne Fehlermeldung (blöde Idee, eine Funktion sich selbst aufrufen zu lassen, ich weiss), das wird später gelöst, wenn Datum und Uhrzeit ins Spiel kommen.

2/3 des Bildschirms benutze ich nur deswegen, weil da noch weiteres kommen soll: oben ein Info-Text (der später irgendwann von nem MQTT-Server kommen soll, erst mal wird er schlichtweg nach der Uhrzeit erzeugt (sowas wie "nächste Führung um...XX:YY"), rechts an die Seite sollen Thumbnails, die eine Videoauswahl bieten....vielleicht bau ich da auch noch ne kleine Wetteranzeige ein oder sowas.

Die MQTT-Geschichte wird notwendig, weil wir zwar feste Zeiten für die Führungen haben, das aber oft nicht hin haut- daher bau ich dann später ein kleines Gerätchen, wo man diese Uhrzeit leicht verändern kann (kleines Display, ein Drehgeber und ein ESP8266, mehr brauchts ja gar nicht).
Dazu muss aber noch geklärt werden, wer den ganzen Krempel eigentlich bezahlt, hehe. Es gibt nämlich zusätzlich ne (defekte....) Aussenanzeige für die Führungszeiten. Die würde dann nen weiteren kleinen Rechner und ein Display erfordern, kann aber ebenfalls leicht in den MQTT-Kram eingebunden werden.
Daher wird das auf "später" vertagt...