在本节中,我将头文件添加到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
可以在任何尺寸的页面找到我。所以我首先将tiff post脚本翻译成大小。
我再次转换tiff。可以看到如下代码:
# 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
输出tiff给Radisys。我不明白为什么标题为此输出剪切.pdf。
您可以看到输出传真图像,如下所示。为什么Header会被削减?
答案 0 :(得分:0)
在我看来,您首先打印'标题',然后将TIFF文件中的图像(在本例中为文本'传真')放在其上。
TIFF文件不是蒙版,因此空白区域不透明。将TIFF文件转换为PostScript时,它会将TIFF位图图像封装为PostScript图像。如果图像中的空白区域位于“标题”的顶部,则会在其上方打印,遮挡部分“标题”。
有点难以确定发生了什么,我不是shell脚本专家,但看起来你首先使用Ghostscript将一段PostScript呈现给TIFF。这是你的'标题'。
然后你调用$(CONVERT),我猜是ImageMagick的转换实用程序,用于组合标题和一些原始的TIFF文件。
我怀疑此时你的问题出现了,我猜你需要以相反的顺序放置两个tiff文件,以便将标题放在原始文件的“顶部”,而不是“在...之下”它(以Z顺序表示。在你的$(CONVERT)调用中尝试交换$(f)和$(HDR_FILE)。
当然,您可以检查TIFF文件,看看是否一切都很好。
然后你获取该TIFF文件,使用tiff2ps(我认为是libtiff的一部分)将图像包装为PostScript,然后使用Ghostscript以不同的(传真)分辨率重新渲染图像。
我会说你最后一步使用了错误的工具。你已经有了一个位图,你最好使用图像处理应用程序将其下采样到所需的分辨率。虽然你的解决方案无疑是有效的,但我怀疑ImageMagick会做得更好。
至少,在通过tiff2ps发送之前检查TIFF文件应该告诉你当时结果是否正确。