In diesem Artikel wird hauptsächlich die Java -Implementierung der Anhangsparete vorgestellt, für die OpenOffice, Swftools und FlexPaper erforderlich sind. Die spezifischen Schritte sind wie folgt:
1. Übersicht
Hauptprinzipien
1. Word, Excel, PPT, TXT und andere Dateien in PDF-Dateien über das Tool OpenOffice in PDF-Dateien konvertieren
2. Konvertieren Sie die PDF -Datei in SWF -Formatdatei über SWFTOOLS
3. Anzeigen auf der Seite über die FlexPaper -Dokumentkomponente
2. Laden Sie das Installationspaket herunter
1.OpenOffice ist eine offene und kostenlose Textverarbeitungssoftware unter Apache
Download -Adresse: Apache Oppenoffice Offizielle Website Download Version - 3.4.1 http://www.openoffice.org/zh-cn/download/
2. Swftools ist eine Reihe von Toolkits, mit denen SWF -Dateien von Flash verarbeitet werden. Wir verwenden es, um PDF -Dateien in SWF -Dateien umzuwandeln!
Download-Adresse: Swftools offizielle Website Download Swftools-2013-04-09-1007.exe http://www.swftools.org/download.html
3.Flexpaper ist eine leichte Open -Source -Komponente, die verschiedene Dokumente im Browser anzeigt.
Adresse herunterladen: FlexPaper Offizielle Website Download Version 1.5.1 https://flowpaper.com/download/
4. JODConverter Ein Java -Opendocument -Dateikonverter, bei dem wir nur sein JAR -Paket verwenden
Download -Adresse: Jodcconverter Download https://sourceforge.net/projects/jodconverter/files/
3. Installieren Sie die Datei
1. Installieren Sie die heruntergeladene Datei (außer JodConverter), und der Laufwerksbuchstaben kann so festgelegt werden, wie Sie möchten! Es ist zu beachten, dass wir nach Abschluss der Installation von OpenOffice, wenn wir sie verwenden, seinen Service öffnen müssen. Dann müssen wir es im Befehl öffnen:
Öffnen Sie das DOS -Fenster, geben Sie den OpenOffice -Installationsantriebsbuchstaben ein und geben Sie den folgenden Code ein, um den Dienst zu starten:
Software -headless -accept = "Socket, Host = 127.0.0.1, Port = 8100; Urp;" -nofirstStartWizard
Achten Sie auf das '-' vor dem letzten Befehl, schreiben Sie es nicht falsch! Wenn Sie keinen Service erhalten, kann das Projekt nicht fortgesetzt werden.
Der Screenshot des offiziellen Website -Startdienstes lautet wie folgt:
Lokale Screenshot:
3. Entwicklungsprozess
1. Erstellen Sie ein neues Projekt und kopieren Sie den JS-Ordner in der Flexpaper-Datei (einschließlich flexpaper_flash_debug.js, flexpaper_flash.js, jQuery.js. Diese drei JS-Dateien sind hauptsächlich Plug-Ins für Vorschau-SWF-Dateien) in das Root-Verzeichnis der Website. Kopieren Sie FlexpaperViewer.swf in das Root -Verzeichnis der Website (die Datei wird hauptsächlich als Spieler verwendet, der SWF -Dateien auf Webseiten abspielt). Die Verzeichnisstruktur lautet wie folgt:
Hinweis: Sie müssen einen Upload -Ordner erstellen
2. Erstellen Sie FileUpload.jsp
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <! docType html public "-// w3c // dtd html 4.01 transitional // en" http://www.w.w.w.w.w.w.w.w.w3. <html> <head> <meta http-äquiv = "content-type" content = "text/html; charset = utf-8"> <title> Online-Vorschau-System </title> <style> body {margin-top: 100px; Hintergrund: #FFF; #CE4614; Schriftgröße: 0,9EM; Text-Align: Mitte;} #MSG-Box .Logo {Border-Bottom: 5px Solid #ece5d9; Margin-Bottom: 20px; padding-bottom: 10px;} #msg-box .title {font-size: 1,4em; font-weight: margin: margin: margin: margin: margin: margin: margin: margin: margin: margin: margin: margin: margin: 0,0 0 30px 0; #sg-wweigh: margin: margin: 0,0 0 30px 0; #g-wweigh: margin: margin: 0,0 0 30px 0; #sg-wweighs. {margin-top: 20px;} </style> </head> <body> <div id = "msg-box"> <form name = "form1" methode = "post" engType = "multiPart/form-data" action = "docUploadConvertaction.jsp"> <divart> Bitte hochladen die zu verarbeitende Datei hoch. Der Vorgang kann einige Minuten dauern. Bitte warten Sie einen Moment. </div> <p> <input name = "file1" type = "file"> </p> <p> <Eingabe type = "surenden" name = "value =" upload "> </p> </form> </div> </body> </html> 3. Erstellen Sie eine Conversion -Seite docUploadConvertaction.jsp
<%@page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <%@page import = "java.io. import = "com.oreilly.servlet.multiPart.DefaultFilerenAmepolicy"%> <%@page import = "com.cektsims.util Die COS-Komponente, die durch das Upload von Commons-Fileeupload ersetzt werden kann. Speichern Sie sie nach dem Hochladen der Datei im Upload -Ordner // Die Datei -Upload -Pfadstring -String -gespeicherten Ssparedirectory = application.getRealPath ("/")+"Upload"; // Drucken Sie das Upload -Pfadinformationssystem.out.println (SARSEDIRECTORY); // Jede Datei maximal 50 m int maxpostsize = 50 * 1024 * 1024; // Verwenden Sie die Standard -Benennungsstrategie von COS, fügen Sie 1, 2, 3 nach dem doppelten Namen hinzu ... Wenn Sie keinen DFP und den doppelten Namen hinzufügen, überschreiben Sie die StandardFilerenamePolicy dfp = new DefaultFilenamePolicy (); // Die Codierung der Antwort ist "UTF-8", und die Strategie zur Konfliktauflösung von Dateinamen wird zur Implementierung des Uploads verwendet. Wenn der DFP -doppelte Name nicht hinzugefügt wird, wird das MultipArtrequest überschrieben. MultipArtruequest multi = new multipArtrequest (Anfrage, Savedirectory, MaxPostsize, "UTF-8", DFP); // MultipArtrequest multi = new multipArtrequest (Anfrage, Savedirectory, maxpostsize, "utf-8"); // Ausgabe von Feedback -Informationen Aufzählungsdateien = multi.getFileNames (); while (files.hasmoreElements ()) {System.err.println ("CCC"); String name = (String) Dateien.NextElement (); Datei f = multi.getFile (Name); if (f! // Erhalten Sie die Erweiterung der hochgeladenen Datei Zeichenfolge extname = Dateiname.substring (Dateiname.lastIndexof (".")+1); // Datei Full Path String lastFileName = SARSEDIRECTORY + "//" + Dateiname; // Erhalten Sie den Dateinamen, der konvertiert werden muss, und ersetzen Sie '/' im Pfadnamen mit '/' String converFileName = speicherndenRectory.replaceAll ("////", "/")+"/"+Dateiname; System.out.println (ConverFileName); // Rufen Sie die Conversion Class Docconverter auf und geben Sie die Datei über, um sie in den Konstruktor dieser Klasse Docconverter D = New Docconverter (ConverFileName) zu konvertieren. // Rufen Sie die Konvertierungsmethode an, um die Konvertierung zu starten. Führen Sie zunächst doc2pdf () aus, um die Office -Datei in PDF zu konvertieren. Führen Sie dann PDF2SWF () aus, um das PDF in SWF umzuwandeln. D.Conver (); // cell getSwfPath () Methode und drucken Sie das konvertierte SWF -Dateipfadsystem.out.println (D.GetSwfPath ()); // SWF Relative Pfade generieren, um an Flexpaper Player String SWFPath = "Upload"+D.GetSwfPath () zu übergeben. Substring (D.GetSwfPath (). System.out.println (SWFPath); // den relativen Pfad in die Sitzung eingeben. out.println ("hochgeladene Datei:"+lastFileName); out.println ("Dateityp"+extname); out.println ("<hr>"); }} %> <! DocType html public "-// w3c // dtd html 4.01 transitional // en" "http://www.w3.org/tr/html4/loose.dtd"> <html> <meta http-equiv = "content-ttml; charset = utf-8 "> <title> Title hier </title> <style> body {margin-top: 100px; Hintergrund: #fff; Schriftfamilie: Verdana, Tahoma;} A {Farbe: #CE4614;} #MSG-Box {Farbe: #CE4614; Schriftgröße: 0,9EM; Text-Align: Mitte;} #MSG-Box .Logo {Border-Bottom: 5px Solid #ece5d9; Margin-Bottom: 20px; padding-bottom: 10px;} #msg-box .title {font-size: 1,4em; font-weight: margin: margin: margin: margin: margin: margin: margin: margin: margin: margin: margin: margin: margin: 0,0 0 30px 0; #sg-wweigh: margin: margin: 0,0 0 30px 0; #g-wweigh: margin: margin: 0,0 0 30px 0; #sg-wweighs. {margin-top:20px;} </style> </head> <body> <div> <form name="viewForm" id="form_swf" action="documentView.jsp" method="POST"> <input type='submit' value='Preview' class='BUTTON SUBMIT'/> </form> </div> </body> </html> Erstellen Sie die Seite "Seite" documentView.jsp
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <%String swffilepath = session.getAttribute ("swfPath"). toString (); %> <! DocType html public "-// w3c // dtd html 4.01 transitional // en" "http://www.w3.org/tr/html4/loose.dtd" charset = utf-8 "> <script type =" text/javaScript "src =" js/jQuery.js "> </script> <script type =" text/javaScript "src =" js/flexpaper_flash.js "> </script type =" texte/javascript "> src =" js/flexpaper/flexpaper_flash_flash_flash_flash_flash_flash_flash_flash_flash " type = "text/css" media = "screen"> html, Körper {Höhe: 100%; } body {margin: 0; Polsterung: 0; Überlauf: Auto; } #flashContent {display: keine; } </style> <title>Document Online Preview System</title> </head> <body> <div style="position:absolute;left:50px;top:10px;"> <a id="viewerPlaceHolder"></a> <script type="text/javascript"> var fp = new FlexPaperViewer( 'FlexPaperViewer', 'viewerPlaceHolder', { config : { SwfFile : 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, cursortoolssible: true, suchtoolsvisible: true, localechain: 'en_us'}}); </script> </div> </body> </html> 5. Erstellen Sie die Conversion Class Docconverter.java
Paket com.cectsims.util; import Java.io.BufferedInputStream; Import Java.io.file; importieren java.io.ioException; importieren java.io.inputstream; import com.artofSolving.jodconverter.documentConverter; import com.artofSolving.jodconverter.openoffice.connection.openofficeConnection; import com.artofSolving.jodconverter.openoffice.connection.socketopenofficeConnection; import com.artofSolving.jodconverter.openoffice.converter.openofficedocumentConverter; / *** DOCOCX -Formatkonvertierung*/ öffentliche Klasse Docconverter {private statische endgültige intumgebung = 1; // Umgebung 1: Windows 2: Linux Private String Filestring; // (beinhaltet nur PDF2SWF -Pfad. private Datei pdffile; private Datei swffile; private Datei docFile; public docconverter (string filestring) {ini (filestring); } / ** * Datei zurücksetzen * * @param filestring * / public void setfile (String filestring) {ini (filestring); } / ** * initialisieren * * @param filestring * / private void ini (String filestring) {this.filestring = filestring; fileName = filestring.substring (0, filestring.lastindexof (".")); docFile = neue Datei (filestring); pdffile = new Datei (Dateiname + ".pdf"); swffile = new Datei (Dateiname + ".SWF"); } / ** * in PDF * * * @param Datei * / private void doc2pdf () Ausnahme ausgelöst {if (docFile.exists ()) {if (! try {Connection.Connect (); DocumentConverter Converter = new OpenOfficedocumentConverter (Verbindung); Converter.Convert (docFile, pdffile); // die Verbindungsverbindung schließen. Disconnect (); System.out.println ("**** PDF -Konvertierung ist erfolgreich, PDF -Ausgabe:" + pdffile.getPath () + "****"); } catch (java.net.connectException e) {e.printstacktrace (); System.out.println ("**** SWF Converter -Ausnahme, OpenOffice -Service hat nicht begonnen! ****"); werfen e; } catch (com.artofsolving.jodconverter.openoffice.connection.openOfficeException e) {e.printstacktrace (); System.out.println ("**** SWF -Konverter -Ausnahme, Lesen der Conversion -Datei fehlgeschlagen ****"); werfen e; } catch (Ausnahme e) {e.printstacktrace (); werfen e; }} else {System.out.println ("**** in PDF konvertiert, ist keine Umwandlung erforderlich ****"); }} else {System.out.println ("**** SWF -Konverter -Ausnahme, das Dokument, das konvertiert werden muss, existiert nicht und kann nicht konvertiert werden ****"); }} / ** * in SWF * / @Suppresswarnings ("unbenutzt") private void pdf2swf () ausreihen {runtime r = runTime.getRuntime (); if (! System.out.print (loadstream (p.getInputStream ())); System.err.print (loadStream (p.GetErrorStream ())); System.out.print (loadstream (p.getInputStream ())); System.err.println ("**** SWF -Conversion ist erfolgreich, Dateiausgabe:" + swffile.getPath () + "****"); if (pdffil.exists ()) {pdffile.delete (); }} catch (ioException e) {e.printstacktrace (); werfen e; }} else if (Umgebung == 2) {// Linux -Umgebungsverarbeitung Try {prozess 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 ("**** SWF -Conversion ist erfolgreich, Dateiausgabe:" + swffile.getPath () + "****"); if (pdffil.exists ()) {pdffile.delete (); }} catch (Ausnahme e) {e.printstacktrace (); werfen e; }}} else {System.out.println ("**** pdf existiert nicht, kann nicht konvertiert werden ****"); }} else {System.out.println ("**** SWF existiert bereits und muss ****" nicht konvertieren; }} statischer String -Loadstream (inputStream in) löst IOException {int ptr = 0; in = neuer BufferedInputStream (in); StringBuffer Buffer = new StringBuffer (); while ((ptr = in.read ())! = -1) {buffer.Append ((char) ptr); } return buffer.toString (); } / ***Hauptmethode konvertieren* / @Suppresswarnings ("unbenutzt") public boolean convert () {if (swffile.exists ()) {System.out.println ("**** SWF Converter beginnt zu arbeiten, die Datei wurde in SWF ****"); zurückkehren; } if (Umgebung == 1) {system.out.println ("**** SWF -Konverter startet funktionieren, die aktuelle laufende Umgebung Windows ****"); } else {System.out.println ("**** SWF -Konverter startet funktionieren, die aktuelle laufende Umgebung Linux ****"); } try {doc2pdf (); pdf2swf (); } catch (Ausnahme e) {e.printstacktrace (); false zurückgeben; } if (swffile.exists ()) {return true; } else {return false; }} / ** * Dateipfad zurückgeben * * @param tempstring = tempstring.replaceall ("////", "/"); Rückgabe tempstring; } else {return ""; }} / *** Setzen Sie den Ausgabempfad* / 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 = new File (outputPath + realname + ".swf"); } else {swffile = new Datei (Ausgabepath + Realname + ".swf"); }}}}6. Bereitstellung und Veröffentlichung
Starten Sie Tomcat und stellen Sie die aktuelle Webanwendung bereit
Geben Sie http: // localhost: 8080/ctcesims/documentUpload.jsp in der Adressleiste ein, wie unten gezeigt:
Klicken Sie auf die Schaltfläche Vorschau, und eine Vorschau -Schnittstelle wird generiert, wie in der folgenden Abbildung gezeigt:
4. Häufig gestellte Fragen
Wenn SWF angezeigt wird, können Sie keine Vorschau haben. Bitte besuchen Sie
http://www.macromedia.com/support/documentation/en/flashplayer/help/setings_manager04a.html#119065
Stellen Sie den Ordner fest, in dem SWFS als Vertrauensdateispeicherort generiert wird.
Das Folgende ergibt den Unterschied zwischen Flexpaper 2.1.9: Die Initialisierungsmethode wird geändert. Wenn sich das Dateiverzeichnis nicht zusammen mit dem Projektverzeichnis befindet, kann das Anhangsverzeichnis als virtuelles Verzeichnis auf dem Server festgelegt werden.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><% //String swfFilePath=session.getAttribute("swfpath").toString();%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"><Html><Head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> <script type type = "text/javaScript" src = "js/flexpaper.js"> </script> <script type = "text/javaScript" src = "js/flexpaper_handlers.js"> </script> <style type = "text/css" media = "screen"> html, body {height: 100%; } body {margin: 0; Polsterung: 0; Überlauf: Auto; } #flashContent {display: keine; } </style> <title> Online -Vorschau -System </title> </head> <body> <div style = "Position: absolut; links: 50px; top: 10px;"> <div id = "documentViewer"> </div> <script type = "text/javaScript"> var startDocument = "Paper"; $ ('#documentViewer'). flexpaperviewer ({config: {swffile: 'Upload/ddd3.swf', Skala: 0.6, ZoomTansition: 'EasyOut', ZoomTime: 0,5, Zoominterval: 0,2, Fitpageonload: True, FitwidthonaDona: Falsch, FullScex, FullScexasMasMasM: FALSICSICED: FALSICSISCH: MaxzoomSize: 5, SearchMatchAll: false, initviewMode: 'Porträt', RenderingOrder: 'Flash', StartatPage: '', ViewModetoolsvisible: true, zoomtoolsvisible: true, navtoolsvisible: true, cursortoolsvisible: suchtoolssible: true: true: wmode: wmode: 'fownow', örtlich ', örtlich', ',', örtlich ', örtlich', ',', örtlich ',', örtlich ',', ', örtlich', ', örtlich', ', örtlich', ',', ', örtlich', örtlich ',', · ash; </script> </div> </body> </html> Wenn Sie die Druckfunktion und das Logo entfernen müssen, können Sie die Flash -Datei von Flexpaper neu kompilieren und online herunterladen.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.