Was ist "In Datei drucken" und kann es über die Befehlszeile verwendet werden?

12

Wenn Sie in einem Gnome-Druckdialog "In Datei drucken" auswählen (nicht Cups-PDF):

Ausgabe in Datei

... was ist der eigentliche Befehl, der ausgeführt wird? (Ich interessiere mich für die Postscript-Variante, wie auf dem Bild)

Auf der anderen Seite - vielleicht gibt es keinen Befehlsaufruf; Vielleicht ist es gtk_print_operation_set_export_filenamevon der neuen Gtk + Printing API ?

Auf jeden Fall - gibt es eine Möglichkeit für mich, diesen bestimmten Code über die Befehlszeile zu verwenden (nicht pdf2psund dergleichen)? Sagen wir, indem Sie lpr"In Datei drucken" in eine Postscript-Datei verwenden - als ob ich den obigen Dialog verwenden würde?

sdaau
quelle
3
AFAIK, dies ist eine Funktion des Subsystems, das von einigen GNOME- und GTK + -Anwendungen zum Drucken von Inhalten verwendet wird (einige davon verwenden Kairo). lprinteragiert cupsdirekt mit, die Option "In Datei drucken" umgeht den Druckserver vollständig. Es ruft wahrscheinlich keinen Befehl auf, sondern ruft die Cairo-Rendering-Funktion nur auf andere Weise auf, sodass eine PDF-, Postscript- oder SVG-Ausgabe in eine Datei generiert wird.
NJSG
Ah, es ist das Kairo-Backend dort! Gibt es Ideen, wenn eine vergleichbare Befehlszeile verfügbar ist, die diese Renderfunktion auf dieselbe Weise aufrufen kann wie der Druckdialog? Vielen Dank für den Kommentar, @njsg - Prost!
Sdaau
3
Möglicherweise gibt es ein Cairo-Befehlszeilentool (ich weiß es wirklich nicht), aber ich denke, es ist etwas schwierig, da viele Anwendungen Cairo verwenden, um ihre eigenen Dokumente zu drucken, und diese Anwendung ist diejenige, die es verstehen kann das Dateiformat kann . Kairo kann keine zufälligen Dateiformate lesen. Am nächsten können Sie überprüfen, ob das Programm mit dem Dialogfeld über eine Befehlszeilenoption verfügt, um eine Datei zu drucken, ohne die GUI zu öffnen.
NJSG
Vielen Dank für die Erklärung, dass @njsg - der obige Screenshot aus dem Druckdialog stammt evince. Leider kann ich keine Befehlszeilenschalter sehen evince, die so etwas bewirken würden. Prost!
Sdaau
Dies ist nur eine UI-Konvention. Jedes Programm kann im Prinzip das tun, was es möchte, wenn "In Datei drucken" ausgewählt ist.
vonbrand

Antworten:

4

Sie können das cups-pdfPaket als eine von gnome unabhängige Lösung verwenden. Fügen Sie nach der Installation des Pakets den PDF-Drucker über das Cup-Webinterface http://localhost:631wie hier beschrieben hinzu (' Allgemein' als Druckerhersteller, CUPS-PDF als Treiber ).

Ändern Sie für Ihre Bequemlichkeit das Ausgabeverzeichnis mit der Option Outin /etc/cups/cups-pdf.conf, like ${HOME}oder was auch immer Sie wollen. Führen Sie dann die von @ Noam vorgeschlagenen Schritte aus , um in eine Datei zu drucken.

J. Katzwinkel
quelle
2
lpr -P "Print_to_PDF" file_to_print

Führen Sie aus, um die Liste der aktuell konfigurierten Drucker abzurufen lpstat -p -d.

Noam Kremen
quelle
mmm, -P "Print_to_PDF" gibt mir den Fehler "lpr: Der Drucker oder die Klasse existiert nicht."
Aubrey
0

Sie können auch den Befehl lp print verwenden, um eine Datei auf dem Standarddrucker (oder nur auf dem System) des Systems zu drucken:

lp filename

oder an einen bestimmten Drucker

lp -d printer filename
Andriy Simonov
quelle
0

Print-to-File sendet das Dokument nicht an den Drucker, sondern an ein PDF-Dokument.

Gleiches gilt für das Cup-Drucksystem, das Ihre Anwendungen beim Senden von Druckbefehlen verwenden.

Verwenden Sie das Tassenfilter-Werkzeug. Es konvertiert effektiv ein Dokument. Es wird standardmäßig in PDF konvertiert.

$ cupsfilter inputfilename > outputfilename.pdf

Wie hier beschrieben .

Markierung
quelle