PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Denkfehler?



Beatkiller
01-06-2006, 22:20
Hallo Leute,

ich steh grad vor nem Problem, bei dem ich nicht so recht weiß, ob sich das so realisieren lässt.

Ich habe mir vorgenommen, die Usability für Linux zu verbessern, wo mir was auffällt und ich denke, das ich das mit meinem Kenntnisstand erreichen kann. Also hole ich mir den Quelltext von cups-pdf (http://www.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/) und versuche einen Speichern-Unter-Dialog einzubauen. Es handelt sich um ein CUPS-Backend, welches PDFs erzeugt. Das tut es auch recht zuverlässig, nur leider gibts die Unschönheit, das man dem User vorgeben muss, wo seine PDFs abgelegt werden. Sinnigerweise stellt man das Home-Verzeichnis ein, weil sonst zu lange gesucht werden muss.

Nun möchte ich aber schon beim Speichern also nach dem Drucken gefragt werden, wo ich das PDF ablegen möchte. Also hole ich mir Zenity und implementiere mir Code-Teile davon in cups-pdf. Der Dialog scheint auch aufzugehen, ich kann ihn nur nicht sehen. Das Backend selbst muss als root laufen, deswegen wird gleich am Anfang des Programms ein setuid(0) gemacht.

Der Dialog ist nicht zu sehen, aber der Print-Prozess läuft im Hintergrund ewig weiter, bis ich den Auftrag aus der Queue lösche.

Hat jemand ne Idee, was ich falsch gemacht hab, bzw. ob das auf diese Art und Weise überhaupt zu bewerkstelligen ist?

Wäre schön, obwohl, ich hab jetzt schon ne Menge dabei gelernt.

Schönen Abend noch

Beat

panzi
01-06-2006, 22:33
Wenn ich das richtig verstehe handelt es sich hier um einen Virtuelen Drucker? Da hat ein Dialog soweiso nix zu suchen. Noch dazu wenn das Ding als root läuft. Ein Dialog solte ein Frontent haben, welches mit dem Ding spricht. Also einen Kompfortablen PDF-Drucker gibts unter meinen KDE, und KDE zeigt auch die Optionen zum "Speichern unter" sehr userfriendly an.

Beatkiller
02-06-2006, 06:36
Ok, soweit so gut, da ich kein KDE nutzen will, fällt die Variante für mich flach. Mir gehts ja auch ums Lernen und Verständnis.

Allerdings wenn KDE einen Druckertreiber hat, der einen Dialog anbietet, und ein Dialog bei einem Druckertreiber nichts verloren hat, dann würde KDE ja gegen das Prinzip verstoßen und zeigen, das es grundsätzlich möglich ist. Versteh mich nicht falsch, grundsätzlich ist diese Variante ein Sicherheitsproblem, darüber bin ich mir im Klaren. Mir gehts nur darum, obs generell möglich ist.

SeeksTheMoon
03-06-2006, 08:22
jetzt werft ihr Sachen durcheinander. KDE hat einen Druckertreiber, aber der Dialog (kprinter) ist eine GUI, die ein Druckkommando wie lpr ersetzt (bzw es anspricht) und deshalb für alle im System installierten Drucker arbeitet.

cups-pdf benutze ich übrigens zusätzlich. Dein "speichern unter" Dialog müsste also sowas wie kprinter werden und Ersatz für lpr werden.
Oder Du sorgst dafür, dass das lpr-Kommando einen Zielpfad akzeptiert (Parameter oder Umgebungsvariable; natürlich nur bei cups-pdf nutzbar), oder Du schaffst es vielleicht mit einem Druckfilter, der sowas kann.
Dann hast Du allerdings keine GUI mehr.