導航:首頁 > 文檔加密 > javapdf預覽

javapdf預覽

發布時間:2023-09-08 01:42:08

1. 如何創建pdf的buffer,讓pdf.js實現預覽pdf文件

java的解決方案:我們首先想到的自然就是JDK1.4提供的JPS(JavaPrintingService)啦,不過,這東西雖然說支持PDF的Flavor,但是,不管是個人實驗還是網上他人的評論,好像根本就是useless,可能如果說你的列印機Driver支持PDF的Flavor的話,JPS會檢測到你的driver的這個特性,能夠成功的列印PDF文檔出來,但是,大部分情況下,這種情形是不成立的,故此JPS死路一條啦!讓我們看看PDF的老家Adobe那裡有沒有什麼法寶,我們發現一個ViewerBean的組件,說是可以將PDF以Bean組件的方式潛入到Swing中,哇,太爽了,不過慢著,協議上說不提供任何支持,也不保證不出任何問題,管那麼些,試過再說,一實驗才知道,靠,Exception頻發,而且這個組件較為陳舊,還是扔一邊吧!還有一個PDFBox,OpenSource的,不過對中文支持不好,而且好像開發進度也不是很好,沒有發布一個正式的版本,基本上不能用於生產環境;最後,求助於Commercial的產品吧,實驗了一下ActiveTree的JPrint,感覺不錯,完全可以勝任我們的需求而且恰到好處,不過授權費很貴,Email問過之後的答復是2000USD的最低購買,呵呵,雖然日本人很有錢,但也心疼這個銀子啊,所以最終也得作罷!(ActiveTree的授權其實挺令我ft的,他其實在2003年的時候是可以免費使用的,但之後就變卦了,呵呵,當時記得我還給提過一些bug之類,算了,人家做出這個東西也不容易)其他商業產品也是價格不菲,所以,基本上純Java的solution到這里就否決了,讓我們看Java-Com的解決方案吧!Java-Com的解決方案:在前一條路走不通之後,我痛定思痛,決定轉向自己不熟悉的領域,ms的領地,我打算從Java中調用Com組件,由Com組件來幫助我們實現PDF的列印工作,不夠這條路也不是一帆風順那!我們知道,AcrobatReader在發布的時候會隨同發布一個支持瀏覽器的com組件用來manipulate他的這個PDF文檔格式,所以,我們想要本地調用這個隨同發布的Com組件來實現PDF列印。雖然Version5,6,7的這個組件格式不一樣(5,6是以ocx的格式發布,7是以dll的格式發布),但是,不管那麼些,先從7開始吧!要調用com,那麼我們需要一個從java到com的Bridge,所以,jacob第一個躍入我的腦海,因為之前就用過嘛!但是麻煩來了,我們並不知道這個com組件提供了那些調用介面啊!哎,沒法,回學校求教熟悉.net的同學,給好不容易弄出幾個需要的調用方法(哎,可憐我的周末啊),星期一就回來用jacob調用啦,可是左試右試就是一直拋異常,我那個氣啊!難道是jacob的為問題?!我就又找了jcom和jcom2等類似的產品,但jcom全是日文文檔,沒有法,而jcom2估計也是一個德行(我忘了為什麼當初否決了這個),所以就決定試一試商業產品吧!這方面的商業產品主要有J-Integra,JPanel(好像叫這個名字)以及一個叫JNIWrapper的產品(這個是一個人用用來演示在java中使用Acrobat5列印PDF的時候提到的)。這些商業產品好的地方就是他可以根據某個你要調用的com組件為你自動生成相應的Proxy對象java代碼,這樣你就可以直接調用你熟悉的java代碼了。像jacob等開源項目,如果給出一個類似的codegeneration工具的話,就完全不遜於這些商業產品啦。鑒於商業產品的價格,我最終還是否決了這些(日本人其實也聽摳門的)。這樣,Java-com也對這個問題沒轍了。不過,最後在我的解決方案中,我還是使用了Jacob,這是後話,暫且不提那我們考慮一下,如果PDF列印不行,列印其他格式行不行?!比如圖片,這個JPS可以完全列印,所以,我們找一下有沒有將PDF格式轉換為其他格式的工具吧!PDF格式轉換的解決方案:在這個領域,主要的就是有GhostScript/GView和ImageMagick,前者可以將PDF格式轉換為PostScript格式,但是好像GhostScript也不能用JPS完全列印出來;而後者是一個將PDF轉換為Image的API工具,他的Java實現叫JMagick,但他有一個跟GhostScript同樣的問題,就是要轉換,就必須在本地安裝,然後通過命令行的方式調用,這個顯然也不是很好,而且集成性很差,還是作罷!剩下的一個是命令行調用啦,這是從itext網站找到的,你可以通過在命令行運行AcroRd32/p/h"pathtoPDFfile"這樣的命令來列印你要列印的PDF文件,當然,你可以在PDF文件生成後就將他們依次放入一個批處理文件來執行這些列印命令,但是這個方案唯一的問題就是,每列印一個文件都會啟動一個AcrobatReader窗口而且必須手動關閉,這現在不能滿足目前的系統要求。好了,所有的方案基本上都羅列完了,也沒有找到一個可行的方案:-((沒有銀子嘛,不然Activetree的JPrint不錯的說)這些東西差不多郁悶了我3,4天吧,那幾天簡直就是boredtodeath.不過,在郁悶的這幾天的結尾,卻有一道靈光閃過我的腦海能不能說啟動一個列印service,當文檔要列印的時候,直接發送給它就行了那?!而恰好我發現一段在網頁中載入PDF文檔的Javascript代碼,而且完全可以使用js來控制PDF的列印,所以,最終的這個方案就浮出水面了1-使用jacob啟動一個IE進程,並隱藏IE窗口;if(ieAutomation==null)ieAutomation=newActiveXComponent("InternetExplorer.Application");ieAutomation.setProperty("Visible",newVariant(false));2-PDF前端在生成PDF文件之後發送生成後的文件到JacobPDFPrinter,JacobPDFPrinter根據出入的PDF文件的全路徑使用Velocity模板引擎動態生成一個包含使用Javascript代碼實現的PDF列印邏輯的HTML文檔(當然,使用Velocity生成文檔這部分邏輯我們單獨抽出到VeloIEPrinterGenerator類中);3-在HTML生成之後,在JacobPDFPrinter中就可以使用jacob調用IE的Navigate2,將IE重定向到剛才生成的這個HTML文件啦,這樣,IE就會在後台調用JS代碼將PDF列印到默認列印機;4-列印成功之後,清除臨時動態生成的HTML文件;5-當主程序退出之前,Quit後台IE進程。以上就是我能給出的一個solution,並不完美,但itworks.需要注意的幾個問題是:(1)需要設置IE的一個高級選項,運行本地腳本運行;(2)因為Java和Com線程模型的不一致,導致在最終Quit後台IE進程的時候會拋出Com調用異常,因為對於Win平台API以及相關編程模型不是很熟悉,所以,這個問題需要求助於別人幫忙解決;(3)IE在執行JS列印PDF的時候,同樣會後台啟動Acrobat的一個進程,而這個進程我們程序中無法控制其生命周期,所以,主程序退出後,我們沒有法同時kill這個進程,好在不管我們運行多少次,這個進程在後台只有一個,所以,性能負擔不是很大;轉載

2. java中 怎麼實現word、pdf、jpg等一些文件格式的上傳下載 並且還要支持預覽功能 最好有代碼 留qq也可以

jsp的話需要用smartup等上傳插件 另外servlet3.0自帶上傳功能

3. Java 如何實現打開PDF文件,並把文件顯示出來;就是實現文件打開的功能。急,急....

java打開PDF需要藉助其他的jar包的,如果我沒記錯的話,然後查看相應的API介面。應該是以流的形式進行讀取,之前寫過一點是往裡面寫數據的,生成html文然後寫入PDF文件 工具有:
ItextPdf、FlyingAndItext、pd4ml 這些是將html文轉換為PDF文件的,讀取的話直接用bufferread讀取試試(我沒寫過!)

4. Javaweb office文檔在線預覽怎麼實現!!!

在線預覽的不是office格式,而且是swf文件,
flexPaper是可以把swf放在頁面上進行展示的,
1、flash 的flexpaper 將文檔轉換為swf格式,然後使用flash在網頁中瀏覽,
2、使用開源的軟體openoffice+pdf2htmlEx,利用openoffice的介面先將文檔轉換為pdf格式,然後在使用pdf2htmlEx將文檔轉換為html直接在網頁中顯示;
3、搭建一個文檔預覽伺服器,基於office web app,也就是微軟的office online。

搭建伺服器步驟:
首先,需要轉換server
安裝IIS 7.0,打開伺服器管理器,添加角色和功能,打開「添加角色和功能向導」界面,點擊下一步,因為是基於本機安裝,所以要選擇「基於角色或者基於功能安裝」,在伺服器角色列表上選擇「Web伺服器」,點擊下一步,安裝完成。
其次,域控server

(1)打開伺服器管理器,添加角色和功能,出現「添加角色和功能」界面,下一步,因為是基於本機安裝,所以要選擇「基於角色或基於功能安裝」,選擇添加AD域服務,同時添加所需功能,根據提示操作,下一步,等待安裝完成。
(2)配置域,點擊伺服器管理器左側「AD DS」,點擊「升級為域控制器」,進入AD域伺服器配置向導,下一步(注意:域的填寫),填寫密碼,下一步,提示DNS無法創建,不用管,繼續下一步,安裝路徑,默認,下一步,查看選項,默認,下一步,點擊安裝,安裝完成,會提示注銷重啟。
(3)將轉換伺服器加入到域控伺服器,修改NDS,指向域控伺服器,在計算機屬性中,修改計算機名稱,並添加到域控伺服器(如下圖),確定後提示注銷重啟伺服器,在域控伺服器,管理中選擇添加伺服器,名稱填寫office web apps server的計算機名稱,立即查找。然後添加到右邊,確定。在域控伺服器中,所有伺服器顯示兩台伺服器,並都是聯機狀態則表示成功。
至此,伺服器安裝完成。

5. javaWeb開發中怎麼讓文件可以在線預覽,比如預覽doc,txt,ceb文件。

  1. 一般下載時能在線打開,我以前做過pdf的,貌似是本地軟體支持的,即在線打開只是調用本地的軟體。如pdf閱讀器類。

  2. 如果說能直接點擊文件查看的,以前我用過webOffice的控制項。就叫點聚webOffice,可以在線打開。

閱讀全文

與javapdf預覽相關的資料

熱點內容
柱樑底加密箍間距 瀏覽:25
pythonjavascript對比 瀏覽:740
什麼動漫app是大陸字幕 瀏覽:286
android查看activity棧 瀏覽:918
x86固件編譯 瀏覽:165
安卓下什麼可以看微博動圖 瀏覽:412
永輝生活app注冊有什麼優惠嗎 瀏覽:411
行偏移演算法 瀏覽:240
什麼app也能讓wifi增強 瀏覽:178
雙分錄核演算法反映什麼 瀏覽:210
ubuntuphpaptget 瀏覽:256
安卓手機快充需要什麼數據線 瀏覽:795
程序中存在未轉換未編譯部分 瀏覽:323
編譯匯編鏈接優化 瀏覽:83
程序員打字和作家哪個打字快 瀏覽:579
安卓手機怎麼用cad命令行 瀏覽:385
2200工程機接收命令瞬間消失 瀏覽:255
壓縮機工藝管是多大的 瀏覽:314
安卓刷什麼系統穩定 瀏覽:37
程序員寫炫酷代碼 瀏覽:933