Tuvimos problemas con un problema similar. Necesitábamos imprimir cheques en una impresora de cheques, etiquetas en una impresora de etiquetas y facturas de clientes en una impresora de facturas para la tienda minorista embrasse-moi. Tenemos computadoras falsas, rincones, ipads, iphones sin capacidades de impresión. La impresión de una característica de factura era básicamente una impresión silenciosa. Se escribió un pdf en el servidor y se usó un script de shell localmente para recuperarlo e imprimirlo.
Se utilizó la siguiente para una solución perfecta, con un mínimo de bibliotecas:
uso TCPDF en PHP para crear PDF. Almacene el PDF en el servidor. Ponlo en una carpeta 'Print Queue'. Felicitaciones por TCPDF, un poco difícil de aprender, pero SICK SICK SICK. Tenga en cuenta que estamos imprimiendo 80 etiquetas por página usando avery 5167 con un código de barras con una precisión perfecta. Tenemos una cola de impresión de etiquetas, cheques y facturas. Diferentes carpetas básicamente para diferentes impresoras.
Utilice el script de shell incluido para conectarse al servidor a través de FTP, descargue el PDF, elimine el PDF del servidor, envíe el PDF a la impresora y, nuevamente, elimine el PDF.
Usando una computadora local conectada a la impresora, ejecute la secuencia de comandos en la terminal. obviamente, modifique sus impresoras y rutas.
Como siempre quiere que esto funcione, y porque usa un MAC, cree una 'aplicación' usando el autómata. Inicie el automatizador, coloque el script en un 'ejecutar script de shell' y guárdelo. A continuación, pega esa aplicación en un elemento de inicio de sesión. Vea la secuencia de comandos debajo del script de shell si desea ver la ventana de 'salida' en el MAC.
BAM - works sick.
Aquí está la secuencia de comandos shell
#!/bin/bash
# Get a remote directory Folder
# List the contents every second
# Copy the files to a local folder
# delete the file from server
# send the file to a printer
# delete the file
# compliments of embrasse-moi.com
clear # clear terminal window
echo "##########################################"
echo "Embrasse-Moi's Remote Print Queue Script"
echo "##########################################"
#Local Print Queue Directory
COPY_TO_DIRECTORY=/volumes/DATA/test/
echo "Local Directory: $COPY_TO_DIRECTORY"
#Priter
PRINTER='Brother_MFC_7820N'
echo "Printer Name: $PRINTER"
#FTP Info
USER="user"
PASS="pass"
HOST="ftp.yourserver.com"
#remote path
COPY_REMOTE_DIRECTORY_FILES=/path
echo "Remote Print Queue Directory: $HOST$COPY_REMOTE_DIRECTORY_FILES"
echo 'Entering Repeating Loop'
while true; do
#make the copy to directory if not exist
echo "Making Directory If it Does Not Exist"
mkdir -p $COPY_TO_DIRECTORY
cd $COPY_TO_DIRECTORY
######################### WGET ATTEMPTS ############################################
#NOTE wget will need to be installed
echo "NOT Using wget to retrieve remote files..."
# wget --tries=45 -o log --ftp-user=$USER --ftp-password=$PASS ftp://ftp.yourserver.com$COPY_REMOTE_DIRECTORY_FILES/*.pdf
######################### FTP ATTEMPTS ############################################
echo "NOT Using ftp to retrieve and delete remote files..."
#This seems to fail at mget, plus not sure how to delete file or loop through files
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASS
cd $COPY_REMOTE_DIRECTORY_FILES
ls
prompt
mget *
mdel *
END_SCRIPT
echo "Examining Files in $COPY_TO_DIRECTORY"
for f in $COPY_TO_DIRECTORY/*.pdf
do
# take action on each file. $f store current file name
#print
echo "Printing File: $f To: $PRINTER"
lpr -P $PRINTER $f
# This will remove the file.....
echo "Deleting File: $f"
rm "$f"
done
echo "Script Complete... now repeat until killed..."
sleep 5
done
y el guión automator si desea ver una salida, mantener la aplicación con el guión elegir una opción de ejecución de script de manzana:
on run {input, parameters}
tell application "Finder" to get folder of (path to me) as Unicode text
set workingDir to POSIX path of result
tell application "Terminal"
do script "sh " & "'" & workingDir & "script1.sh" & "'"
end tell
return input
end run
¿Cuál es la solución que funcionó para usted? – noamtm
terminamos con un applet de Java. fue una pesadilla. Normalmente habría sido horrible, pero como esto fue para los Juegos Olímpicos de Beijing 2008, la distancia adicional y las diferencias de idioma lo convirtieron en una pesadilla. Al final, funcionó "suficiente". Pero, de nuevo, pesadilla. No recomendaría ndlo. – Bill
Si ha tropezado aquí solo para descubrir que la ruta del applet de Java ya no funciona muy bien, aquí hay una buena discusión al respecto: http://stackoverflow.com/questions/27057816 – tresf