PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cups zusaetzlich als pdf/jpg speichern



sam600
05.08.12, 19:02
Hallo

wie kann ich cups dazu bewegen, jeden ausdruck zusaetzlich als pdf/jpg abzuspeichern.

hat jemand eine einfache loesung?

danke

muell200
07.08.12, 08:28
wie kann ich cups dazu bewegen, jeden ausdruck zusaetzlich als pdf/jpg abzuspeichern.


ich habe dazu ein neues backend fuer cups erstellt.

mit dem backend steure ich dann den ausdruck:

- erstellen einer pdf datei
- drucken der datei an einen bestimmten drucker ( zeitabhaengig )
- pdf per email versenden ( auftragsbestaetigung per email )
- fax versenden, wenn faxnummer angeben ist

wenn du noch fragen hast, dann melde dich einfach nochmal...

sam600
07.08.12, 20:58
wenn du noch fragen hast, dann melde dich einfach nochmal...

dann frage mal frech nach:

hast du das noch etwas genauer?
was ist ein backend unter cups?

quinte17
09.08.12, 08:16
1. treffer von tante google
http://www.lug-kr.de/wiki/EigenesCupsBackend

CUPS
28.08.18, 10:00
Da brauche ich ebenfalls Hilfe

CUPS
28.08.18, 10:02
ich habe dazu ein neues backend fuer cups erstellt.

mit dem backend steure ich dann den ausdruck:

- erstellen einer pdf datei
- drucken der datei an einen bestimmten drucker ( zeitabhaengig )
- pdf per email versenden ( auftragsbestaetigung per email )
- fax versenden, wenn faxnummer angeben ist

wenn du noch fragen hast, dann melde dich einfach nochmal...
CUPS: Heute 10:00

Hallo sam600,
ich weiß, dass dein Beitrag schon ziemlich lange her ist, aber nun sitze ich an einem backend, welches gleichzeitig einen Ausdruck aus einem physikalischen Drucker und eine PDF ertellen soll, und komme nicht weiter... Würdest du mich bei der Lösung noch unterstützen wollen?
mein backend sieht bis her so aus:
#!/bin/bash

JOBID=$1 ;
USER=$2 ;
TITLE=$3 ;
COPIES=$4 ;
OPTIONS=$5 ;
FILE=$6 ;

lpr -P $(echo ${DEVICE_URI} | cut -d '/' -f 2 | cut -d '.' -f 1) -# $4 -o collate=true ${FILE} ;
lpr -P Cups-pdf ${FILE} ;

exit 0 ;



Was mache ich denn falsch?
LG

Ginsengelf
28.08.18, 14:42
Was mache ich denn falsch?

Was passiert denn?
Wird das Skript überhaupt aufgerufen?
Funktioniert jeder einzelne lpr Aufruf?

Ginsengelf

CUPS
28.08.18, 16:59
Was passiert denn?
Wird das Skript überhaupt aufgerufen?
Funktioniert jeder einzelne lpr Aufruf?

Ginsengelf

Hallo Ginselgelf,

schon mal vielen Dank für deine Antwort.

Habe noch was hinzugefügt:

NAME=dp_${PRINTER}_${TIMESTAMP}_${PID}_${JOBID} ;

RAW=/tmp/${NAME}.ps; export RAW ;
cat ${FILE} > ${RAW} ;

________________


das Skrip wird aufgerufen, wenn ich einen Druck über CUPS an einem "richtigen" Drucker starte, wird mitlerweile auch eine Datei erstellt, allerdings PS. WIe änder ich das backend genau ab, damit zusätzlich auch eine PDF erzeugt wird?

muell200
28.08.18, 17:39
... damit zusätzlich auch eine PDF erzeugt wird?

habe gerade mal in einem backup geschaut, ob ich das backend noch finde...

so hat das backend ausgesehen...



#!/usr/bin/perl -w

#

$scheme = "printpdf";

if (@ARGV == 0)
{

print "file $scheme "Unknown" "Printing to any command via pipe"\n";
exit 0;
}


# in case of wrong number of arguments: print usage hint
if (@ARGV != 5 && @ARGV != 6)
{
print STDERR "
Usage: pipe job-id user title copies options [file]
example for device-URI: 'pipe:/path/to/targetcommand'

Install a printqueue with 'lpadmin -p <pipe-printer-name>
-v pipe:/</path/to/targetcommand> -E

";
exit 1;
}


if (defined ($ARGV[5]))
{
$file = $ARGV[5];
}
else
{
$file = "-";
}

# get file to which the job is "printed" from device URI, so
# so that you can use this backend multiple times, for various
# "pipe" printers...
$uri = $ENV{"DEVICE_URI"};

$arg = $uri;
$arg =~ s/$scheme:(.*)/$1/;

$user = $ARGV[1];

$fdt = `/bin/date +%y%m%d%H%M%S%N `;
$fdt1 = join ".", "/tmp/printpdf", $user, $fdt;

$cmdln = "/bin/cp $file $fdt1";
$cmdln1 = "$arg $fdt1 $user";
system ( "echo "$cmdln" > /opt/printpdf/cmdln.txt" );

if ($> == 0)
{
$cmdln = "su -c "$cmdln " lp";
}
$cmdln = "$cmdln >&2";
$cmdln1 = "$cmdln1 >&2";

my $exit = system ($cmdln);
if ($exit != 0)
{
print STDERR "ERROR: Error occurred while executing $cmdln";
}

my $exit1 = system ($cmdln1);

if ($exit1 != 0)
{
print STDERR "ERROR: Error occurred while executing $cmdln1";
}
exit $exit;

CUPS
29.08.18, 09:18
Danke dir, allerding habe ich beim Ausführen noch folgende Fehlermeldungen:

Bareword found where operator expected at /usr/lib/cups/backend/brit line 10, near ""file $scheme "Unknown"
(Missing operator before Unknown?)
String found where operator expected at /usr/lib/cups/backend/brit line 10, near "Unknown" ""
Bareword found where operator expected at /usr/lib/cups/backend/brit line 10, near "" "Printing"
(Missing operator before Printing?)
Unquoted string "via" may clash with future reserved word at /usr/lib/cups/backend/brit line 10.
Scalar found where operator expected at /usr/lib/cups/backend/brit line 54, near ""echo "$cmdln"
(Missing operator before $cmdln?)
String found where operator expected at /usr/lib/cups/backend/brit line 54, near "$cmdln" > /opt/printpdf/cmdln.txt""
(Missing operator before " > /opt/printpdf/cmdln.txt"?)
Scalar found where operator expected at /usr/lib/cups/backend/brit line 58, near ""su -c "$cmdln"
(Missing operator before $cmdln?)
String found where operator expected at /usr/lib/cups/backend/brit line 58, near "$cmdln " lp""
(Missing operator before " lp"?)
syntax error at /usr/lib/cups/backend/brit line 10, near ""file $scheme "Unknown"
syntax error at /usr/lib/cups/backend/brit line 54, near ""echo "$cmdln"
syntax error at /usr/lib/cups/backend/brit line 58, near ""su -c "$cmdln "
Execution of /usr/lib/cups/backend/brit aborted due to compilation errors.

Ginsengelf
29.08.18, 13:25
Bin jetzt kein perl-Kenner, aber mein C-Gefühl sagt mir, dass da ein paar " escaped werden müssten.

Ginsengelf

CUPS
29.08.18, 13:38
Ja, das habe ich mir auch gedacht, nun spuckt

sudo perl /usr/lib/cups/backend/brit

folgendes aus:
file printpdf
Und über CUPS, wenn ich einen Druckauftrag starte, bekomme ich auch nur
angehalten seit
Wed Aug 29 11:33:56 2018

Bin auch kein perl-Kenner...