>${PS} echo "40 2 move-6ren">
gpt4 book ai didi

linux - 如何使用 GhostScript 避免标题截断 tiff。选择 于 tiff

转载 作者:太空宇宙 更新时间:2023-11-04 12:13:42 30 4
gpt4 key购买 nike

在本节中,我将头文件添加到 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 script 翻译成 size。

我再次转换 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 提供。我不明白为什么要为此 output.pdf 剪切标题。

您可以看到输出的传真图像如下。 Header 为何被截断?

enter image description here

最佳答案

在我看来,您是先打印“标题”,然后将 TIFF 文件中的图像(在本例中为文本“FAX”)放在上面。

TIFF 文件不是蒙版,因此空白区域不是透明的。当您将 TIFF 文件转换为 PostScript 时,它会将 TIFF 位图图像封装为 PostScript 图像。图像中的空白区域位于“标题”顶部,它会打印在它上面,遮盖部分“标题”。

很难确定发生了什么,我不是 shell 脚本专家,但您似乎首先使用 Ghostscript 将一段 PostScript 渲染为 TIFF。那就是你的“标题”。

然后调用 $(CONVERT),我猜这是 ImageMagick 的转换实用程序,用于合并 header 和一些原始 TIFF 文件。

我怀疑此时是您的问题所在,我猜您需要将两个 tiff 文件按相反的顺序放置,以便标题位于原始文件的“顶部”,而不是“下方”它(以 Z 顺序表示。在调用 $(CONVERT) 时尝试交换 $(f) 和 $(HDR_FILE)。

您当然可以在此时检查 TIFF 文件,大概是为了查看是否一切正常。

然后您获取该 TIFF 文件,使用 tiff2ps(我认为它是 libtiff 的一部分)将图像打包为 PostScript,然后使用 Ghostscript 以不同的(传真)分辨率重新渲染图像。

无论如何,我会说您在最后一步中使用了错误的工具。您已经有了位图,最好使用图像处理应用程序将其下采样到所需的分辨率。虽然您的解决方案无疑有效,但我怀疑像 ImageMagick 这样的解决方案会做得更好。

至少,在通过 tiff2ps 发送之前检查 TIFF 文件应该会告诉您此时结果是否正确。

关于linux - 如何使用 GhostScript 避免标题截断 tiff。选择 于 tiff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48023545/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com