|
jieh
《騎士團團長》
文章: 6881
v3.8.8
|
|
|
|
Tiff to PDF
在公司想把一堆文件弄起來管理,不過這堆須整合的文件來源有人工亂丟、掃瞄機和傳真伺服器,最佳的整合終端介面就是讓 user 能在 web 上看到所有檔案。
很多公文都是 tif,不過最近漸漸 PDF 也盛行了,但是這些周邊喜歡用 tif 檔案,本公司預算都用不到 Client PC,在 windwos 2000 就記憶體不足了 ="= 256m 想夠用也很難,更別說想升級到 win xp...
windows 2000 用 IE6 無法正常把檔案交給 imaging 軟體開啟,user GG叫說存檔後開啟不方便!只好搬出 java 囉...
首先你要先有 iText.jar http://www.lowagie.com/iText/ 只要把以下的 java code 抓回去用,就能開開心心地把 Tif 轉 PDF 了。
import java.io.*;
import com.lowagie.text.*; import com.lowagie.text.pdf.*; import com.lowagie.text.pdf.codec.*;
public class TiffToPDF { public static void main(String[] args) { if (args.length < 1) { System.out.println("Usage: Tiff2Pdf file1.tif [file2.tif ... fileN.tif]"); System.exit(1); }
String tiff, pdf; for (int i = 0; i < args.length; i++) { tiff = args; pdf = tiff.substring(0, tiff.lastIndexOf('.') + 1) + "pdf"; Document document = new Document(PageSize.LETTER, 0, 0, 0, 0); int pages = 0, comps = 0; try { PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(pdf)); document.open(); PdfContentByte cb = writer.getDirectContent(); RandomAccessFileOrArray ra = null; try { ra = new RandomAccessFileOrArray(tiff); comps = TiffImage.getNumberOfPages(ra); } catch (Throwable e) { System.out.println("Exception in " + tiff + " " + e.getMessage()); continue; } System.out.println("Processing: " + tiff); for (int c = 0; c < comps; ++c) { try { Image img = TiffImage.getTiffImage(ra, c + 1); if (img != null) { System.out.println("page " + (c + 1)); img.scalePercent(7200f / img.getDpiX(), 7200f / img.getDpiY()); document.setPageSize(new Rectangle(img.scaledWidth(), img.scaledHeight())); img.setAbsolutePosition(0, 0); cb.addImage(img); document.newPage(); ++pages; } } catch (Throwable e) { System.out.println("Exception " + tiff + " page " + (c + 1) + " " + e.getMessage()); } } ra.close(); document.close(); } catch (Throwable e) { e.printStackTrace(); }
System.out.println("done..."); } } }
事情好簡單,重點就上面這樣幾行而已,剩下就是整合應用囉~
----------------------------------------
支持小惡魔 BTC : 19tn3RnCuwZVukXAwyhDWZD4uBgUZoGJPx LTC : LTFa17pSvvoe3aU5jbmfcmEpo1xuGa9XeA 知識跟八卦一樣,越多人知道越有價值;知識最好的備份方法,散播! 藍色小惡魔(林永傑): 臉書
----------------------------------------
[編輯文章 2 次,
最後修改: jieh 於 2009/12/27 下午 01:41:55]
|
|