Artikel ini terutama memperkenalkan implementasi Java dari pratinjau lampiran, yang membutuhkan OpenOffice, Swftools, dan Flexpaper. Langkah -langkah spesifiknya adalah sebagai berikut:
1. Ikhtisar
Prinsip utama
1. Konversi Word, Excel, PPT, TXT, dan file lainnya menjadi file PDF melalui alat OpenOffice Pihak Ketiga
2. Konversi file pdf ke file format swf melalui swftools
3. Tampilan di halaman melalui komponen dokumen Flexpaper
2. Unduh Paket Instalasi
1.OpenOffice adalah perangkat lunak pengolah kata yang terbuka dan gratis di bawah Apache
Alamat Unduh: Versi Unduh Situs Web Resmi Apache Oppenoffice - 3.4.1 http://www.openoffice.org/zh-cn/download/
2. Swftools adalah satu set toolkit yang digunakan untuk memproses file SWF dari flash. Kami menggunakannya untuk mengonversi file PDF menjadi file SWF!
Download Address: Swftools Resmi Situs Web Download Swftools-2013-04-09-1007.exe http://www.swftools.org/download.html
3.Flexpaper adalah komponen ringan sumber terbuka yang menampilkan berbagai dokumen di browser.
Download Address: Flexpaper Resmi Situs Web Versi 1.5.1 https://flowpaper.com/download/
4.JODCONVERTER Konverter File OpenDocument Java, di mana kami hanya menggunakan Paket JAR -nya
Unduh Alamat: Jodcconverter Unduh https://sourceforge.net/projects/jodconverter/files/
3. Instal file
1. Instal file yang diunduh (kecuali JodConverter), dan surat drive dapat diatur sesuai keinginan Anda! Perlu dicatat bahwa setelah pemasangan OpenOffice selesai, ketika kita menggunakannya, kita perlu membuka layanannya. Maka kita perlu membukanya di perintah:
Buka jendela DOS, masukkan surat drive instalasi OpenOffice, dan masukkan kode berikut untuk memulai layanan:
Perangkat lunak -Headless -accept = "socket, host = 127.0.0.1, port = 8100; URP;" -NofirstStartWizard
Perhatikan '-' di depan perintah terakhir, jangan salah tulisnya! Jika Anda tidak bisa mendapatkan layanan, proyek tidak dapat dilanjutkan.
Tangkapan layar layanan peluncuran situs web resmi adalah sebagai berikut:
Tangkapan layar lokal:
3. Proses Pengembangan
1. Buat proyek baru dan salin folder JS di file Flexpaper (termasuk flexpaper_flash_debug.js, flexpaper_flash.js, jquery.js, ketiga file JS ini terutama plug-in untuk pratinjau file SWF) ke direktori root situs web; Salin FlexPaperViewer.swf ke direktori root situs web (file ini terutama digunakan sebagai pemain yang memutar file SWF di halaman web). Struktur direktori adalah sebagai berikut:
Catatan: Anda perlu membuat folder unggahan
2. Buat fileupload.jsp
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en" "http://www.w3.org/org/ht4/t." <html> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> Sistem pratinjau online </title> <tyle> body {margin-top: 100px; latar belakang: #fff; font-family: verdana, tahoma;} {latar belakang: #fff; font-font: verdana, taHoma;} {{font-font-font-famile: verdana, taHoma; #CE4614; Ukuran font: 0.9em; text-align: center;} #msg-box .logo {border-bottom: 5px solid #ece5d9; margin-bottom: 20px; padding-bottom: 10px;} #msg-box .title {font-size: 1.4em; font-weight. {margin-top: 20px;} </style> </ head> <body> <v id = "msg-box"> <form name = "form1" method = "post" enctype = "multipart/form-data" action = "docuploadConVertAction.jsp"> <v> Harap unggah file yang akan diproses. Prosesnya mungkin memakan waktu beberapa menit. Mohon tunggu sebentar. </div> <p> <input name = "file1" type = "file"> </p> <p> <input type = "kirim" name = "kirim" value = "unggah"> </p> </form> </div> </body> </html> 3. Buat halaman konversi docuploadconvertaction.jsp
<%@page language = "java" contentType = "text/html; charset = utf-8" pageEncoding = "UTF-8"%> <%@page impor = "java.io.*"%> <%@page impor = "java.util.enumeration"%> <%@page impor = "com.ore. impor = "com.oreilly.servlet.multipart.defaultfilerenamepolicy"%> <%@page impor = "com.cectsims.util.docconverter"%> <%@page impor = "com.cectsim.util.docconverter"%> <%@page impor = "com.cectsims.util.docconverter"%> <%@page impor = "com.cectsims.util.docconverter"%> <%@page impor = "com.cectsims.util.docConverter"%> <%@page impor = "com.cectsims.util.docconter"%> <%@page Import = "com.cectsim.couger Komponen COS, yang dapat diganti dengan unggahan Commons-Fileupload. Setelah file diunggah, simpan di folder unggah // dapatkan file unggah path string saveDirectory = application.getRealpath ("/")+"unggah"; // cetak sistem informasi jalur unggah.out.println (saveDirectory); // Setiap file maksimum 50m int maxPostSize = 50 * 1024 * 1024; // Gunakan strategi penamaan default COS, tambahkan 1, 2, 3 setelah nama duplikat ... jika Anda tidak menambahkan DFP dan nama duplikat, itu akan menimpa defaultFilerEnamepolicy dfp = DefaultFilereNeMePolicy () baru; // Pengkodean respons adalah "UTF-8", dan strategi resolusi konflik nama file default digunakan untuk mengimplementasikan unggahan. Jika nama duplikat DFP tidak ditambahkan, multipartrequest akan ditimpa. Multipartrequest Multi = Multipartrequest Baru (Permintaan, SaveDirectory, MaxPostsize, "UTF-8", DFP); // multipartrequest multi = multipartrequest baru (permintaan, saveDirectory, maxpostsize, "UTF-8"); // Output Feedback Information Enumeration Files = multi.getFileNames (); while (file.hasmoreElements ()) {system.err.println ("ccc"); String name = (string) file.nextElement (); File f = multi.getFile (name); if (f! = null) {string filename = multi.getFileSystemname (name); // Dapatkan ekstensi string file yang diunggah extName = filename.substring (filename.LastIndexof (".")+1); // File Path Full String LastFileName = SaveDirectory + "//" + FileName; // Dapatkan nama file yang perlu dikonversi, dan ganti '/' di nama path dengan '/' string converFileName = saveDirectory.replaceall ("////", "/")+"/"+nama file; System.out.println (ConverFileName); // Hubungi kelas konversi Docconverter dan lewati file yang akan dikonversi ke konstruktor kelas ini Docconverter D = Docconverter baru (ConverFileName); // Hubungi metode konversi untuk memulai konversi, pertama -tama jalankan doc2pdf () untuk mengonversi file kantor ke pdf; kemudian jalankan pdf2swf () untuk mengonversi PDF ke SWF; d.conver (); // sel getswfpath () Metode dan cetak sistem path file SWF yang dikonversi.out.println (d.getswfpath ()); // Hasilkan jalur relatif SWF untuk diteruskan ke flexpaper player string swfpath = "unggah"+d.getswfpath (). Substring (d.getswfpath (). LastIndexof ("/")); System.out.println (SWFPath); // Masukkan jalur relatif ke session.setAttribute ("swfpath", swfpath); out.println ("File Diunggah:"+LastFileName); out.println ("Jenis file"+extname); out.println ("<hr>"); }} %> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <head> <head> <head> <head> <head> <head> <head> <head> <meta http-content = "; charset = UTF-8 "> <Title> Sisipkan judul di sini </title> <tyle> body {margin-top: 100px; latar belakang: #fff; font-family: verdana, tahoma;} a {color: #ce4614;} #msg-box {color: #ce4614; Ukuran font: 0.9em; text-align: center;} #msg-box .logo {border-bottom: 5px solid #ece5d9; margin-bottom: 20px; padding-bottom: 10px;} #msg-box .title {font-size: 1.4em; font-weight. {margin-top: 20px;} </style> </ head> <body> <div> <form name = "viewForm" id = "form_swf" action = "documentView.jsp" Method = "Post"> <input type = 'kirim' value = 'preview' class = 'kirimkan'/</bentuk> </div> </body> Buat lihat halaman DocumentView.jsp
<%@ halaman bahasa = "java" contentType = "text/html; charset = utf-8" pageEncoding = "UTF-8"%> <%string swffilePath = session.getAttribute ("swfpath"). tostring (); %> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <meta http-quiv = "konten =" konten = "headset> <head> <meta http-equiv =" konten = "konten =" konten = "headset> <head> <meta http-quiv =" konten = "konten =" konten = "konten =" konten = "konten =" konten = "konten =" konten = "pext/htypevl; type = "Text/JavaScript" src = "js/jQuery.js"> </script> <script type = "text/javascript" src = "js/flexpaper_flash.js"> </script> <script = "text/javascript" src = "js/flexpaper_flash_delb." media = "layar"> html, body {height: 100%; } body {margin: 0; Padding: 0; meluap: otomatis; } #flashContent {display: none; } </tyle> <title> Dokumen Sistem Pratinjau Online </iteme> </head> <body> <Div style = "Posisi: Absolute; Left: 50px; Top: 10px;"> <a id = "viewerplaceHolder"> </a> <script type = "text/javascript"> var fp = new flexPaperViewer ('flexpapiewer (' {{{{new flexpaperViewer '{{{neck' {{{{{naskah ', new flexpaperViewer (' escape('<%=swfFilePath%>'), Scale : 0.6, ZoomTransition : 'easeOut', ZoomTime : 0.5, ZoomInterval : 0.2, FitPageOnLoad : true, FitWidthOnLoad : false, FullScreenAsMaxWindow : false, ProgressiveLoading : false, MinZoomSize : 0.2, MaxZoomSize : 5, SearchMatchAll : false, InitViewMode: 'SinglePage', ViewModetoolSvisible: True, ZoomToolSvisible: True, Navtoolsvisible: True, CursortoolSvisible: True, SearchToolSvisible: True, Localechain: 'en_us'}}); </script> </div> </body> </html> 5. Buat kelas konversi docconverter.java
paket com.cectsims.util; impor java.io.bufferedInputStream; impor java.io.file; impor java.io.ioException; impor java.io.inputstream; impor com.artofsolving.jodconverter.documentConverter; impor com.artofsolving.jodconverter.openoffice.connection.openofficeconnection; impor com.artofsolving.jodconverter.openoffice.connection.socketopenofficeconnection; impor com.artofsolving.jodconverter.openoffice.converter.openofficedocumentConverter; / *** Doc Docx Format Konversi*/ Kelas Publik Docconverter {Private Static Final Int Lingkungan = 1; // Lingkungan 1: Windows 2: Linux Private String FileString; // (hanya melibatkan masalah jalur PDF2SWF) Private String outputPath = ""; // jalur input, jika tidak disetel, output ada di lokasi default string file string = ""; file pribadi pdffile; file pribadi swffile; file private docfile; Public Docconverter (string filestring) {ini (filestring); } / ** * Reset file * * @param filestring * / public void setFile (string filestring) {INI (filestring); } / ** * inisialisasi * * @param filestring * / private void ini (string filestring) {this.filestring = filestring; filename = filestring.substring (0, filestring.lastIndexOf (".")); docfile = file baru (filestring); pdffile = file baru (nama file + ".pdf"); swffile = file baru (nama file + ".swf"); } / ** * Konversi ke PDF * * @param File * / private void doc2pdf () melempar Exception {if (docfile.exists ()) {if (! PDFFILE.Exists ()) {OpenOfficEnconnection Connection = SocketopenOffeConnection (8100); coba {connection.connect (); DocumentConverter converter = OpenOffeFofFICECUCECUCMERVERTER baru (koneksi); converter.convert (docfile, pdffile); // tutup koneksi koneksi.disconnect (); System.out.println ("**** Konversi PDF berhasil, output PDF:" + PDFFILE.GetPath () + "****"); } catch (java.net.connectException e) {e.printstacktrace (); System.out.println ("**** SWF Converter Exception, OpenOffice Service belum dimulai! ****"); lempar e; } catch (com.artofsolving.jodconverter.openoffice.connection.openofficeException e) {e.printstacktrace (); System.out.println ("**** Pengecualian konverter SWF, membaca file konversi gagal ****"); lempar e; } catch (Exception e) {E.PrintStackTrace (); lempar e; }} else {System.out.println ("**** telah dikonversi ke PDF, tidak ada konversi yang diperlukan ****"); }} else {System.out.println ("**** SWF Converter Exception, dokumen yang perlu dikonversi tidak ada, dan tidak dapat dikonversi ****"); }} / ** * Konversi ke swf * / @suppresswarnings ("tidak digunakan") void pribadi pdf2swf () melempar pengecualian {runtime r = runtime.getRuntime (); if (! swffile.exists ()) {if (pdffile.exists ()) {if (lingkungan == 1) {// pemrosesan lingkungan windows coba {proses p = r.exec ("d:/file program/swftools/pdf2swf.exe" + pdffile.getpath () + "-o" +). System.out.print (loadStream (p.getInputStream ())); System.err.print (loadStream (p.getErrorStream ())); System.out.print (loadStream (p.getInputStream ())); System.err.println ("**** Konversi SWF berhasil, output file:" + swffile.getPath () + "****"); if (pdffile.exists ()) {pdffile.delete (); }} catch (ioException e) {E.PrintStackTrace (); lempar e; }} lain jika (lingkungan == 2) {// Linux Lingkungan Pemrosesan Coba {Process p = r.exec ("pdf2swf" + pdffile.getPath () + "-o" + swffile.getPath () + "-t 9"); System.out.print (loadStream (p.getInputStream ())); System.err.print (loadStream (p.getErrorStream ())); System.err.println ("**** Konversi SWF berhasil, output file:" + swffile.getPath () + "****"); if (pdffile.exists ()) {pdffile.delete (); }} catch (Exception e) {e.printstacktrace (); lempar e; }}} else {System.out.println ("**** pdf tidak ada, tidak dapat dikonversi ****"); }} else {System.out.println ("**** SWF sudah ada dan tidak perlu mengonversi ****"); }} string statis loadStream (inputStream in) melempar ioException {int ptr = 0; in = new bufferedInputStream (IN); StringBuffer buffer = stringBuffer baru (); while ((ptr = in.read ())! = -1) {buffer.append ((char) ptr); } return buffer.toString (); } / ***Konversi metode utama* / @suppresswarnings ("tidak digunakan") public boolean convert () {if (swffile.exists ()) {System.out.println ("**** SWF Converter mulai bekerja, file tersebut telah dikonversi menjadi SWF ****"); Kembali Benar; } if (lingkungan == 1) {System.out.println ("**** SWF Converter mulai bekerja, Windows lingkungan yang sedang berjalan saat ini ****"); } else {System.out.println ("**** SWF Converter mulai bekerja, Linux Linux Linux ****"); } coba {doc2pdf (); pdf2swf (); } catch (Exception e) {E.PrintStackTrace (); mengembalikan false; } if (swffile.exists ()) {return true; } else {return false; }} / ** * Mengembalikan jalur file * * @param s * / string publik getswfpath () {if (swffile.exists ()) {string tempsstring = swffile.getPath (); tempsstring = tempsstring.replaceall ("////", "/"); Kembalikan Tempsstring; } else {return ""; }} / *** Atur jalur output* / public void setOutputPath (String outputPath) {this.outputPath = outputPath; if (! outputpath.equals ("")) {string realname = filename.substring (fileName.LastIndexof ("/"), filename.LastIndexOf (".")); if (outputpath.charat (outputpath.length ()) == '/') {swffile = file baru (outputPath + realName + ".swf"); } else {swffile = file baru (outputPath + realName + ".swf"); }}}}6. Penempatan dan Rilis
Mulailah Tomcat dan sebarkan aplikasi web saat ini
Masukkan http: // localhost: 8080/ctcesims/documentupload.jsp di bilah alamat seperti yang ditunjukkan di bawah ini:
Klik tombol Pratinjau dan antarmuka pratinjau akan dihasilkan, seperti yang ditunjukkan pada gambar di bawah ini:
4. Pertanyaan yang Sering Diajukan
Jika SWF muncul, Anda tidak dapat mempresentasikannya, silakan kunjungi
http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065
Atur folder tempat SWFS dihasilkan sebagai lokasi file trust.
Berikut ini memberikan perbedaan antara Flexpaper 2.1.9: Metode inisialisasi diubah. Jika direktori file tidak bersama dengan direktori proyek, direktori lampiran dapat ditetapkan sebagai direktori virtual di server.
<%@ halaman bahasa = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <%// string swffilePath = session.getattribute ("swfpath"). "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" tipe konten "konten =" teks/html; charset = utf-8 "> <script type =" teks/javascript "src =" scrc = "scrips =" JU/JUT. type = "Text/JavaScript" src = "js/flexpaper.js"> </script> <script type = "text/javaScript" src = "js/flexpaper_handlers.js"> </script> <style type = "text/css" media = "layar"> html, body {highy: 100%; 100%; } body {margin: 0; Padding: 0; meluap: otomatis; } #flashContent {display: none; } </tyle> <title> Dokumen Sistem Pratinjau Online </iteme> </head> <body> <Div style = "Posisi: Absolute; kiri: 50px; atas: 10px;"> <div id = "DocumentViewer"> </div> <script type = "Text/JavaScript"> var startDocUment = "paper"; $ ('#DocumentViewer'). FlexPaperViewer ({config: {swffile: 'Unggah/ddd3.swf', skala: 0.6, zoomtransition: 'kemudahan', zoomtime: 0.5, zoominterval: 0.2, fitpageonload: true, fitwidthonLoad: falscreenasmal: 0.2, fitpageonload: true, fitwidthonload: falscreenasmal: 0.2, fitpageonLoad: true, fitwidthonload: falscreenasmal: 0.2 MAXZOOMSIZE: 5, SearchMatchall: False, InitViewMode: 'Portrait', Renderingorder: 'Flash', StartAtPage: '', ViewModetoolsible: True, ZoomToolSible: true, navtoolsvisble: true, cursortoolsvisible: true, searchtools '}}}}}}}}}}}}}}} navtools: true, true'} ); </script> </div> </body> </html> Akhirnya, jika Anda perlu menghapus fungsi pencetakan dan logo, Anda dapat mengkompilasi ulang file flash flexpaper, dan mengunduhnya secara online.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.