PALMisLIFE 討論區

標題: 有熟 Linux Shell Script 的朋友可以幫忙看看嗎? [列印本頁]

作者: 阿輝    時間: 2006-10-3 17:20
標題: 有熟 Linux Shell Script 的朋友可以幫忙看看嗎?
有沒有人熟 Linux Shell Script 可以幫忙的

工作關係正在研究修改 HylaFax (一個免費的 Fax Server)
主要是要把本來 FAX to Email 是給 PDF 檔案

現在要修改成給 PDF + JPG,目前 JPG 轉換部份已經 ok

但是看不懂(原來程式用 Shell Script 寫的)怎麼把原先夾一個 PDF 附件改成『多』一個 JPG 附件
作者: 阿輝    時間: 2006-10-3 17:29
標題: Re: 有熟 Linux Shell Script 的朋友可以幫忙看看嗎?
Script 檔案 (以改名成 txt 檔案)

關鍵應該是在 253 行左右

  1.              #$TIFF2PDF -o $FILE.pdf $FILE
  2.              #encode $FILE.pdf
  3.              #$RM -f $FILE.pdf 2>$ERRORSTO
  4.          
  5.             #echo "Content-Type: image/pjpeg; name=\"$FILENAME.jpg\""
  6.             #echo "Content-Description: FAX document"
  7.             #echo "Content-Transfer-Encoding: $ENCODING"
  8.             #echo "Content-Disposition: attachment; filename=\"$FILENAME.jpg\""
  9.             #echo ""
  10.            # $TIFF2PDF -o $FILE.pdf $FILE
  11.           
  12.             encode recvq/$FILENAME.jpg
  13.             $RM -f recvq/$FILENAME.jpg 2>$ERRORSTO
複製代碼

作者: jouston    時間: 2006-10-3 17:47
標題: Re: 有熟 Linux Shell Script 的朋友可以幫忙看看嗎?
阿輝,不要動原本encode的步驟,然後加上

convert $FILE.pdf FAX%04d.jpg 2>>$ERRORSTO

那個FAX%04d.jpg = FAX+0000+.jpg

這樣子就會輸出一大串FAX0000.jpg, FAX0001.jpg...etc.
作者: 阿輝    時間: 2006-10-3 17:51
標題: Re: Re: 有熟 Linux Shell Script 的朋友可以幫忙看看嗎?
原文由 jouston 於 2006-10-3 17:47 發表
阿輝,不要動原本encode的步驟,然後加上

convert $FILE.pdf FAX%04d.jpg 2>>$ERRORSTO

那個FAX%04d.jpg = FAX+0000+.jpg

這樣子就會輸出一大串FAX0000.jpg, FAX0001.jpg...etc.


其實我前面就有用轉檔傳好 jpg 了 (在大約 111 行)
現在是不知道怎麼塞進郵件中

encode 好像就是處理編碼後加進郵件的函式
作者: jouston    時間: 2006-10-3 18:01
標題: Re: 有熟 Linux Shell Script 的朋友可以幫忙看看嗎?
阿輝,能不能給個原始檔?改成這樣還沒有注解加上我懶得看完,最後結果就是文不對題。

那個encode()就是用UUENCODE做好塞回mail的函式沒錯。

FAX收進來就已經是TIFF檔,我不知道收到的是一個多頁的TIFF還是多個一頁的TIFF還是一個很長的TIFF。不論如何,如果你的系統有裝ImageMagick,那你可以

# convert in.tiff out.jpg

這類方法簡單搞定。

另外,看起來這個程式邏輯是191行這個IF loop開始轉檔。還是不要自己沒事在最前面轉好,避免最後自己看不懂。

[ 本文最後由 jouston 於 2006-10-3 18:07 編輯 ]
作者: 阿輝    時間: 2006-10-3 18:14
標題: Re: Re: 有熟 Linux Shell Script 的朋友可以幫忙看看嗎?
原文由 jouston 於 2006-10-3 18:01 發表
阿輝,能不能給個原始檔?改成這樣還沒有注解加上我懶得看完,最後結果就是文不對題。

那個encode()就是用UUENCODE做好塞回mail的函式沒錯。

FAX收進來就已經是TIFF檔,我不知道收到的是一個多頁的TIFF還是 ...


等一下我傳上原始的

其實跟轉檔倒是沒有關係,因為已經處理好轉檔部份

現在主要就是原先產生的信件,是只有『一個』附件的,也就是 TIF 跟 PDF 二選一,都是一封信中只有一個『附件』

我則已經修改為是用 JPG 附件

但是現在主要就是要信件中同時有『多個』附件,簡單來說目的就是要在信件中『同時有 PDF 跟 JPG 的附件』,也就是兩個附件 (一個是 PDF 一個是 JPG)
JPG 的圖檔部份則已經轉檔完成沒有問題,就是用 ImageMagick 轉換的
作者: 阿輝    時間: 2006-10-3 18:16
標題: Re: 有熟 Linux Shell Script 的朋友可以幫忙看看嗎?
這個應該就是原始的
作者: barista    時間: 2006-10-3 18:43
標題: Re: 有熟 Linux Shell Script 的朋友可以幫忙看看嗎?
我沒寫過這種,因為寄多個附件很多 Mail Reader 都直接支援。
若直接寄出根本不需要處理。
不過這裡看起來是要先存成信件格式的文字檔,而非直接寄出。

查看了一下手邊有多個附件的信件原始檔,似乎只要加上 Multipart Mime Header,再定義好
Multipart 的 Boundary 即可。

這裡有一些資訊,但我是沒空試了。或許有人有經驗可以直接分享:

Sending email with attachments on UNIX systems
http://www.panix.com/~kylet/unix-att.html

裡頭有提到個 Shell Script 可以做這件事。
http://www.panix.com/~kylet/mime.sh.txt

大略看看應該就是我上頭提到的作法。也許你可以拿來改。

[ 本文最後由 barista 於 2006-10-3 18:44 編輯 ]
作者: cychang    時間: 2006-10-4 00:13
標題: Re: 有熟 Linux Shell Script 的朋友可以幫忙看看嗎?
不知道阿輝是否解決了?我還是雞婆的改了一段。
其實也只是再重複一下 MIME boundary 來加入下一個 attachement 而已。
請試試看。

  1.          elif [ "$FILETYPE" = "pdf" ]; then
  2.              echo "Content-Type: image/pdf; name=\"$FILENAME.pdf\""
  3.              echo "Content-Description: FAX document"
  4.              echo "Content-Transfer-Encoding: $ENCODING"
  5.              echo "Content-Disposition: attachment; filename=\"$FILENAME.pdf\""
  6.              echo ""
  7.              $TIFF2PDF -o $FILE.pdf $FILE
  8.              encode $FILE.pdf
  9.              $RM -f $FILE.pdf 2>$ERRORSTO
  10.                  
  11.                  echo ""
  12.                  echo "--$MIMEBOUNDARY"
  13.                  echo "Content-Type: image/jpeg; name=\"$FILENAME.jpg\""
  14.                  echo "Content-Description: FAX document 2"
  15.                  echo "Content-Transfer-Encoding: $ENCODING"
  16.                  echo "Content-Disposition: attachment; filename=\"$FILENAME.jpg\""
  17.                  echo ""
  18.                  $YOURTIFF2JPG -o $FILE.jpg $FILE
  19.                  encode $FILE.jpg
  20.                  $RM -f $FILE.jpg 2>$ERRORSTO
  21.                  
  22.          else #  default as Postscript
複製代碼

[ 本文最後由 cychang 於 2006-10-4 00:16 編輯 ]
作者: 阿輝    時間: 2006-10-4 10:27
標題: Re: Re: 有熟 Linux Shell Script 的朋友可以幫忙看看嗎?
原文由 cychang 於 2006-10-4 00:13 發表
不知道阿輝是否解決了?我還是雞婆的改了一段。
其實也只是再重複一下 MIME boundary 來加入下一個 attachement 而已。
請試試看。

         elif ; then
             echo "Content-Type: image/pdf; name=\&quo ...


好像這樣就可以了耶 @@

唔.. 該研究看看到底為什麼 @@




歡迎光臨 PALMisLIFE 討論區 (http://f.pil.tw/) Powered by Discuz! X2.5