2017-12-29 10 views
0

In diesem Abschnitt füge ich die Header-Datei an den Anfang der TIFF-Datei.Wie vermeidet man Header-Kürzung auf dem Tiff mit GhostScript. Konvertieren von ps nach tiff

echo "/CourierLatin1 findfont 8 scalefont setfont" >>${PS} 
echo "40 2 moveto (${DATE}) show" >>${PS} 
echo "200 2 moveto (${NAME}) show" >>${PS} 
echo "400 2 moveto (${FROM}) show" >>${PS} 
echo "510 2 moveto (${PAGEINFO}) show showpage" >>${PS} 

${BIN}/gs -dQUIET -dNOPAUSE -dBATCH -dSAFER -sDEVICE=tiffg4 -sOutputFile=${HDR_FILE} \ 
    -dDEVICEWITHPOINTS=612 -dDEVICEHEIGHTPOINTS=11 ${PS} >>${LOG_FILE} 
if [ $? -ne 0 ] ; then 
    cleanup 
    echo "${BIN}/gs failed" >>${LOG_FILE} 
    exit 1 
fi 

# Overlay the header onto the tiff page 
SIZE=`${BIN}/tiffinfo ${f} | grep "Image Width:" | sed -e "s/Image Width//" | sed -e "s/Image Length//" | sed -e "s/ //g"` 
WIDTH=`echo ${SIZE} | cut -d: -f2` 
LENGTH=`echo ${SIZE} | cut -d: -f3` 
OFFSET=`expr ${LENGTH} - 2156` 
# no shifting of header line up or down is needed 
OFFSET=0 
if [ ${OFFSET} -lt 0 ] ; then 
    OFFSET=0 
fi 
echo "Adding ${HDR_FILE} to ${f} ${WIDTH}x${LENGTH} at 0,${OFFSET}" >>${LOG_FILE} 
${CONVERT} tiff:${f} -draw "image over 0,${OFFSET} 0,0 'tiff:${HDR_FILE}'" -compress Group4 -flatten +matte tiff:${f} >>${LOG_FILE} 
if [ $? -ne 0 ] ; then 
    cleanup 
    echo "${CONVERT} failed" >>${LOG_FILE} 
    exit 1 
fi 

Kann zu mir in jeder möglicher Größe Seite kommen. Also übersetze ich zuerst Tiff Post Script auf Größe.

Ich konvertiere tiff wieder. Kann den Code wie folgt sehen:

# Nasty compromise - Have to convert the tiff file to ps file so that I can turn around 
# and create a 'faxable' tiff file (one that Radisys will accept) 
${BIN}/tiff2ps -a -h11.0 -w8.5 ${LOCAL_FILE} >${PS_FILE} 
if [ $? -ne 0 ] ; then 
    cleanup 
    echo "${BIN}/tiff2ps failed" >>${LOG_FILE} 
    exit 1 
fi 

# Part 2 of compromise 
${BIN}/gs -dQUIET -dNOPAUSE -dBATCH -dSAFER -sDEVICE=tiffg4 -sPAPERSIZE=letter -r204x196 -sOutputFile=${LOCAL_FILE} ${PS_FILE} >>${LOG_FILE} 2>&1 
if [ $? -ne 0 ] ; then 
    cp ${BKUP_FILE} ${ORIG_FILE} 
    cleanup 
    echo "${BIN}/gs ps2tiff failed" >>${LOG_FILE} 
    exit 1 
fi 

Ausgang tiff ist die Radisys gegeben. Ich verstehe nicht warum Header für diese Ausgabe.pdf geschnitten.

Sie können das Ausgabefaxbild wie folgt sehen. Warum ist Header geschnitten?

enter image description here

Antwort

0

ich Sieht aus wie Sie die ‚Header‘ drucken zuerst, dann das Bild aus der TIFF-Datei setzen (in diesem Fall der Text ‚FAX‘) oben drauf.

TIFF-Dateien sind keine Masken, daher ist der Leerraum nicht transparent. Wenn Sie eine TIFF-Datei in PostScript umwandeln, kapselt sie das TIFF-Bitmap-Bild als PostScript-Bild ein. Wenn der weiße Bereich im Bild über dem "Header" liegt, wird er darüber gedruckt, wodurch ein Teil des "Headers" verdeckt wird.

Es ist ein wenig schwierig, sicher zu sein, was los ist, ich bin kein Shell-Skript-Experte, aber es scheint, dass Sie zunächst Ghostscript verwenden, um ein Stück PostScript nach TIFF zu rendern. Das ist deine Kopfzeile.

Sie rufen dann $ (CONVERT), die ich rate, ist ImageMagick Convert-Dienstprogramm, um die Kopfzeile und einige Original-TIFF-Datei zu kombinieren.

Ich vermute an dieser Stelle ist, wo Ihr Problem auftritt, ich vermute, dass Sie die beiden Tiff-Dateien in der umgekehrten Reihenfolge, so dass die Kopfzeile 'oben' des Originals statt 'unter setzen müssen (in Z-Reihenfolge Begriffe. In Ihrem Aufruf von $ (CONVERT) versuchen, $ (f) und $ (HDR_FILE) zu tauschen.

Sie können natürlich überprüfen Sie die TIFF-Datei an diesem Punkt, um zu sehen, ob

Dann nimmst du diese TIFF-Datei, benutze tiff2ps (was ich denke, ist Teil von libtiff), um das Bild als PostScript zu verpacken, und benutze dann Ghostscript, um das Bild an einem anderen (Fax) neu zu rendern Auflösung

Ich würde sagen, dass Sie sowieso das falsche Werkzeug für diesen letzten Schritt verwenden. Sie haben bereits eine Bitmap, Sie sollten eine Bildbearbeitungssoftware verwenden, um die Auflösung auf die gewünschte Auflösung zu reduzieren. Während Ihre Lösung zweifellos funktioniert, würde ich vermuten, dass etwas wie ImageMagick einen besseren Job machen würde.

Zumindest sollte die Überprüfung der TIFF-Datei, bevor Sie es über tiff2ps senden, Ihnen sagen, ob das Ergebnis zu diesem Zeitpunkt korrekt ist.

+0

Ja, Ihre Vermutung ist richtig. Ich versuche "In Ihrem Aufruf von $ (CONVERT) versuchen Sie, $ (f) und $ (HDR_FILE) zu vertauschen.". aber es ist keine Arbeit. Ich benutze nur um den Header dieser Datei hinzuzufügen. Die TIFF-Datei am Ende der Datei ist korrekt. aber ich gebe die tiff-Datei an radisys, dann gibt es mir ein gebrochenes. und ich weiß nicht, warum ich verdorben wurde. @KenS – oxxxo

+0

Nun, wie reduziere ich die Pixelgröße meiner Faxdatei? @KenS – oxxxo

+0

Verwenden Sie ImageMagick vielleicht? – KenS

Verwandte Themen