|
本帖最后由 cne53102 于 2021-7-30 22:14 编辑
这个标题起的不太好,但暂时没想到更好的描述方法。
看到站长的这个帖子:https://www.amobbs.com/thread-5753274-1-1.html
我这个方法站长大概用不上,因为站长很可能用的不是linux,而且我这个方法只确认到打印pdf完美,对word和excel的支持很可能不完美。
另外我并不是什么linux高端玩家,是真菜鸟,这个是照葫芦画飘出来的,好使是肯定好使,但可能是笨方法,发出来也省得自己日后忘记,如果有更好地方法,务必分享一下。
具体环境如下:
NAS服务器运行lubuntu系统(如果是ubuntu也一样的)(没错我装的就是桌面版)
通过/etc/fstab开机自动挂载硬盘和一个1GB的ramdisk(tmpfs)
然后用samba共享他们,可以在windows里映射网络驱动器访问他们,手机的文件管理器的网络存储里(三星)也可以看到他们,电视也可以访问里面的视频。
samba是可以共享插在服务器上的打印机的,然后windows添加网络打印机就可以使用了。
但手机并不能直接使用,安卓的打印功能添加打印机时,似乎只能是专门的支持网络功能的打印机。
(手机似乎有个叫printerShare的软件可以干这种事,但好像不怎么好用)
对于这种情况,可以在服务器端这样做:
在ramdisk中建立一个文件夹“autoprint”(不是非得ramdisk不可,只是这样不损耗硬盘寿命)
然后命令行
sudo apt-get install inoticoming
安装inoticoming,这个inoticoming是用来监视一个目录下有没有新增加的文件的。
然后命令行
mkdir -p ~/bin
在当前用户目录下建立一个bin文件夹
leafpad ~/bin/autoprinter
这个leafpad是文本编辑器,如果是ubuntu,可能应该使用gedit,你喜欢vim也可以(没用过的话不要在这里进行初次尝试)
反正就是新建一个文件“autoprinter”然后打开编辑它,输入下面的内容,然后保存。
#!/usr/bin/env bash
FILE="$1"
if [ "${FILE##*.}" = "pdf" ]
then
lpr "$2/$1" && rm "$2/$1"
fi
if [[ "${FILE##*.}" = "jpg" ]] || [[ "${FILE##*.}" = "png" ]] || [[ "${FILE##*.}" = "bmp" ]]
then
convert "$2/$1" -background -white -page a4 "$2/${FILE%.*}.pdf" && rm "$2/$1"
fi
exit 0
lpr是打印,rm是删除,convert是使用imagemagick吧jpg和png和bmp转换成pdf(这个imagemagick很强大的,研究研究很有意思)
逻辑就是遇到pdf就打印,然后就删掉文件,遇到jpg,png或bmp就转换成pdf,然后删掉文件,下一次就会按照pdf文件打印。
然后命令行
chmod +x ~/bin/autoprinter
让它变成可执行的
然后命令行
sudo inoticoming /你的共享目录/ramdisk/autoprint ~/bin/autoprinter {} /你的共享目录/ramdisk/autoprint \;
这样inoticoming就开始监视"/你的共享目录/ramdisk/autoprintzg"这个文件夹,(一定要用sudo,否则删除文件时会没有权限)
里面出现新文件就会执行刚才写的autoprinter,autoprinter遇到pdf就会打印,遇到图片就转换成pdf,转换成pdf时inoticoming就又会执行autoprinter,这一次就会按照pdf打印,处理后的文件都会删掉。
实际使用起来的效果就是,文件丢入autoprint文件夹后,打印机就开始工作了,然后文件就消失了,然后文件就从打印机吐出来了。
这样手机不能直接使用网络打印机,能访问共享目录即可,只要把要打印的文件复制到autoprint文件夹里,就会开始打印。
前面的inoticoming是手动执行的,如果要开机自动启动,那把那行加入/etc/init.d就可以了。
对于office文件doc, docx, xls, xlsx(是叫xlsx来着?),应该可以使用liberoffice或pandoc转换,但我暂时没有进行尝试。
有兴趣的可以按前面转换图片的方法照葫芦画瓢试试office文件的转换(或者采用比那个IF更优雅的方法…if u can…)
liberoffice或pandoc的命令行参考:
soffice --headless --convert-to pdf filename.doc
pandoc -o output.pdf -f docx input.docx |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|