如何解决用"adobe pdf"打印Djvu文件出现横线或横条的问题

来源:互联网 发布:苹果mac重做系统 编辑:程序博客网 时间:2024/04/29 08:01

Djvu文件直接打印成pdf格式后,每页的图片会分割成许多条,这样用打印机打印出现横线(黑色横道), 在正式打印前可以先转换成png等图片

看是否会出现横线(黑色横道),如果有,那正式打印时也可能会有。
     解决的办法是先不用“Adobe PDF”打印机,而用其他设备打印而,如office Document Image Writer,在属性里选择
高级,输出格式选择MDI(如果选TIFF的话,其最高分辨率为300DPI,对于照片打印效果会很差)。然后再用“Adobe PDF”打印机
转成PDF文件,不过此时每页还是被分割成很多条,但是在save as为png时不会出现黑色横线,然后再将每页的png文件合成pdf文件,
这样每页就是一个图了,生成的png文件可以通过属性看其位深度,因为往往从png转成pdf时,原来看似单色的图会采用jpeg压缩而导致
黑白不分明,有虚影。解决的办法是在Acrobat中的preferences设置"Convert To PDF",将PNG对应的Color Compression方法由JPEG改为
zip,当然也可把Grayscal Compression改成zip,这样对于看似单色的位深度为24的png图像转成pdf时就不会有虚影,而是黑白分明了。

     还有一种方法是利用linux下的打印机将djvu打印成ps或pdf文件,这时的ps或pdf中的每页就不是一条一条的了,可以用acrobat菜单中的tool->advanced editing->touchUp object tool检验。

     另外,对于生成的图形文件,可以用matlab中的imread,imwrite进行处理,将过大的页边距裁减掉,以适于打印。算法很简单,就是分别从矩阵行、列首尾(对应四边)开始向中心移动,当某行(列)出现黑色时(小于某一阀值,如200(位深度为8),或等于0(位深度为1))认定到达文字区,记录行(列)值,取原始矩阵的文字区就把页边距调整为零了,当然可以适当增加页边距。用matlab处理的好处是对于几百页的书可以批量处理。