📄 00000006.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: wxb1 (ben), 信区: Linux <BR>标 题: [7/8] 网上传真 <BR>发信站: BBS 水木清华站 (Fri Jun 11 14:26:05 1999) <BR> <BR> <BR>以Linux实作 语音/传真/EMAIL/BBC 整合系统 <BR>7.网上传真 <BR> <BR> 看完前面数篇的讨论,请各位看倌想想看,若在您公司或家里架设此一 <BR>Liunx所建构的语音/传真/EMAIL/BBC 整合系统,对您平常的工作或生活有多 <BR>大的帮助呢?以我为例,我在家中架起後,也以专线连外,但除了前面提到的我 <BR>大姐与在美侄女,天天藉此联络外,我自己倒是没啥地方需用到,或许我并非大 <BR>忙人,用传统的电话、传真、EMAIL都可找得到人,并不需借助此种系统,但最 <BR>好玩的是若我要传真给别人,常常是在Windows上用WORD将文件打好後,列印出 <BR>来再用家里的传真机送出,想起来就不是很顺,而『网上传真』即是用来解决此 <BR>一问题,让您网上的Windows家族,一样可以利用此传真伺服器发送传真。 <BR> <BR> 此处所用的方法,简单的说就是在Windows机器上产生PostScript或 <BR>Bitmap档案,在自动上传至Linux上的传真伺服器,转换为传真格式後,拨号送 <BR>出。一般Windows传真软体,大都由列印时,选择"传真方式"的印表机驱动程式 <BR>送出传真文件,此处的操作也类似,但因我实在没心力研究Windows Printer <BR>Driver程式,所以需各位事先在Windows机器上,装上支援PostScript档案格式 <BR>的印表机驱动程式,若您不知那一款支援,就选择Apple LaserWriter,要"传真" <BR>时,选择"列印",待列印视窗出现後,记得勾选"输出至档案"的选项(如下图)(略) <BR> <BR> <BR>按确定後,即会出现存档视窗,此时存成的档案,即为标准的PostScript档,此 <BR>时将此档上传即可转换後送出。 <BR> <BR> Linux端接收上载档案,虽然可以FTP的方式,但此处我是用WWW上载的 <BR>方式来处理,其网页画面类似下图:(略) <BR> <BR> <BR>原始HTML档为: <BR> <BR><HTML><BODY BGCOLOR='#FFFFFF'> <BR><h2>传真档案上载</h2> <BR><hr> <BR><FORM ENCTYPE='multipart/form-data' METHOD=POST ACTION='upload.cgi'> <BR><FONT COLOR='#ff0000'>注意:</FONT> <BR>限用 PostScript(附加档名为 .ps ) 或 8bits 256色的Bitmap <BR>(附加档名为 .bmp)档案 。<P> <BR>档案名称:<INPUT TYPE='file' NAME='imgfile' SIZE=50><P> <BR>传真号码:<input name=faxno value=""><p> <BR><INPUT TYPE='submit' VALUE='开始传送'> <INPUT TYPE='reset' VALUE='清除'> <BR></FORM><HR NOSHADE><P> <BR> 使用说明:<P> <BR>1.一 定 要 是 PostScript 或 256 色 Bitmap 格 式 的 档 案 才 可 传 真!<br> <BR>2.Bitmap 转 成 256 色 工 具 <a href=bmpto8.zip>bmpto8</a><br> <BR>3.传 真 由 桃 园 县 (03) 电 话 发 出 , 其 余 地 区 请 加 "区码" !<br> <BR>4.NETSCAPE 3.0 以 上 或 IE4.0 以 上 版 本 才 能 使 用 。<BR> <BR>5.档 案 名 称 请 尽 量 不 要 使 用 中 文 及 长 档 名 , 以 免 冲 码 。<P> <BR></BODY></HTML> <BR> <BR> <BR>当选好档案,将传真号码填好,按"开始传送"後,背後的CGI程式除了接收档案 <BR>外,也会进行转档的动作,除了将档案转成传真的G3格式外,也会转成GIF档, <BR>方便您透过网页即可直接观看、确认,不过GIF档为彩色,最後送出的传真可是 <BR>黑白的喔!CGI的原始码如下: <BR> <BR>upload.cgi <BR> <BR>#!/usr/bin/perl <BR>#=============================================================== <BR>$path = "/home/fhl/hybj/WWW/fax/"; <BR>#=============================================================== <BR>print "Content-type: text/html","\n\n"; <BR>print "<HTML><body>", "\n"; <BR> <BR>read (STDIN, $string, $ENV{'CONTENT_LENGTH'}); <BR> <BR>@lines = split(/\r\n/, $string); <BR> <BR>$id=0; <BR>$store=0; <BR># $prevLine=""; <BR>foreach $line (@lines) { <BR> $id++; <BR> if ($id == 1) { <BR> $boundary = $line; <BR> }elsif ($store==-1 && $line =~ /name="faxno"/) { <BR> $store=-2; <BR> }elsif ($store==-2 && length($line)>=7) { <BR> $faxno = $line; <BR> last; <BR> }elsif ($store==0 && $line =~ /filename="(.+)"/) { <BR> $file = $1; <BR> $file =~ s/\//\\/g; <BR> if ($file =~ /^(((.*)\\)*)(.+)/) { <BR> $file = "$path$4"; <BR> $nameonly="$4"; <BR> } <BR> }elsif ($store==0 && length($line)<=1) { <BR> $store = 1; <BR> $len = length($line); <BR> open (F, "> $file"); <BR> print "存档 OK!!"; <BR> }elsif ($store>=1) { <BR> if ($line =~ $boundary) { <BR> $store=-1; <BR> }else{ <BR> if ($store>1) { <BR> print F "\r\n"; <BR> } <BR> print F "$line"; <BR> $store++; <BR> } <BR> } <BR>} <BR>close(F); <BR>print "<p>传真号码:$faxno!!<p>\n"; <BR>open(FF, "> ${path}${faxno}_${nameonly}.out"); <BR>print FF "$faxno $nameonly"; <BR>close(FF); <BR>print "<p>转档中....请稍候查看底下传真记录档!!<br><pre>\n"; <BR>system("/home/fhl/hybj/WWW/fax/chkfax_r&"); <BR> <BR>chkfax_r <BR> <BR>#!/bin/bash <BR>FAXPATH="/home/fhl/hybj/WWW/fax" <BR>CUT="/usr/bin/cut" <BR>DATE="/bin/date" <BR>ECHO="/bin/echo" <BR>FIND="/usr/bin/find" <BR>RM="/bin/rm" <BR> <BR>cd $FAXPATH <BR>faxout=`$FIND ./*.out -printf "%p "` <BR>for FILE in $faxout <BR>do <BR> read line < $FILE <BR> faxno=`$ECHO -n $line | cut -d " " -f1,1` <BR> file=`$ECHO -n $line | cut -d " " -f2,2` <BR> ext=`$ECHO -n $file | cut -d "." -f2,2` <BR> if [ "$ext" = "ps" ]; then <BR> ${FAXPATH}/pstofaxg3 $file $faxno <BR> else <BR> if [ "$ext" = "bmp" ]; then <BR> ${FAXPATH}/bmptofaxg3 $file $faxno <BR> else <BR> $ECHO "Out of EXT:$ext" <BR> exit <BR> fi <BR> fi <BR> $RM -f $FILE <BR> $RM -f $file <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -