Perkenalan
Saya telah menulis artikel tentang pratinjau POI Online, yang juga mengatakan bahwa menggunakan OpenOffice juga dapat dilakukan. Saya akan memperkenalkannya secara detail di sini.
Saya memiliki dua logika implementasi:
1. Gunakan JodConverter (berdasarkan Layanan OpenOffice) untuk mengonversi file (.doc, .docx, .xls, .ppt) menjadi format HTML.
2. Gunakan JodConverter (berdasarkan Layanan OpenOffice) untuk mengonversi file (.doc, .docx, .xls, .ppt) menjadi format PDF.
Setiap orang dapat memahami konversi ke format HTML, sehingga Anda dapat melihatnya secara langsung di browser, yang mewujudkan fungsi pratinjau online; Mengonversi ke format PDF mengharuskan pengguna untuk menginstal Adobe Reader XI, sehingga Anda akan menemukan bahwa menyeret PDF langsung ke halaman browser dapat langsung membuka pratinjau, yang juga mewujudkan fungsi pratinjau online.
Konversi file ke format HTML atau format PDF
Tanpa basa -basi lagi, cukup unggah kode.
Paket com.pdfpreview.util; import java.io.file; impor java.io.fileInputStream; import java.io.fileoutputStream; import java.io.ioException; impor java.io.inputstream; impor java.io.outputstream; impor java.net.net. java.text.simpledateFormat; import java.util.date; import com.artofsolving.jodconverter.documentconverter; com.artofsolving.jodconverter.openoffice.connection.openofficeConnection; impor com.artofsolving.jodconvice.connection. com.artofsolving.jodconverter.openoffice.converter.openofficedocumentConverter;/** *Gunakan jodconverter (berdasarkan layanan OpenOffice) untuk mengonversi file ( *.doc, *.docx, *.xls, *.ppt) menjadi format html atau format PDF. * Sebelum menggunakan, silakan periksa apakah layanan OpenOffice telah diaktifkan. Nama Proses OpenOffice: Software.exe | software.bin * * @author yjclsx */kelas publik doc2htmlutil {private static doc2htmlutil doc2htmlutil; / *** Dapatkan instance doc2htmlutil*/ public static yang disinkronkan doc2htmlutil getDoc2htmlutilInstance () {if (doc2htmlutil == null) {doc2htmlutil = doc2htmlutil baru (); } return doc2htmlutil; } / ** * Konversi file ke html * * @param fromfileInputStream: * @throws ioException * / public string file2html (inputStream fromFileInputStream, string tofilePath, tipe string) melempar ioException {date date = new date (); SimpleDateFormat SDF = new SimpleDateFormat ("yyyymmddhhmmss"); String timesuffix = sdf.format (date); String docFileName = null; String htmfileName = null; if ("doc" .equals (type)) {docFileName = "doc_" + timesuffix + ".doc"; htmfileName = "doc_" + timesuffix + ".html"; } else if ("docx" .equals (type)) {docFileName = "docx_" + timesuffix + ".docx"; htmfileName = "docx_" + timesuffix + ".html"; } lain jika ("xls" .Equals (type)) {docFileName = "xls_" + timesuffix + ".xls"; htmfileName = "xls_" + timesuffix + ".html"; } else if ("ppt" .equals (type)) {docFileName = "ppt_" + timesuffix + ".ppt"; htmfileName = "ppt_" + timesuffix + ".html"; } else {return null; } File htmloutputFile = file baru (tofilePath + file.separatorchar + htmfileName); File docInputFile = file baru (tofilePath + file.separatorchar + docFileName); if (htmloutputFile.exists ()) htmloutputFile.delete (); htmloutputFile.createNewFile (); if (docInputFile.exist ()) docInputFile.delete (); docInputFile.createNewFile (); / *** Bangun file input dariFileInputStream*/ coba {outputStream os = new fileoutputStream (docInputFile); int bytesread = 0; byte [] buffer = byte baru [1024 * 8]; while ((bytesread = fromFileInputStream.read (buffer))! = -1) {os.write (buffer, 0, bytesread); } os.close (); FromFileInputStream.close (); } catch (ioException e) {} OpenOfficEnonnection Connection = SocketopenOffeConnection baru (8100); coba {connection.connect (); } catch (ConnectException e) {System.err.println ("Ada kesalahan dalam konversi file, silakan periksa apakah layanan OpenOffice dimulai."); } // Convert DocumentConverter converter = OpenOffeFofFICECUCENTERVERTER baru (koneksi); converter.convert (docinputFile, htmloutputFile); Connection.Disconnect (); // hapus file kata setelah konversi docInputFile.delete (); return htmfileName; } / ** * Konversi file ke pdf * * @param fromfileInputStream: * @throws ioException * / public string file2pdf (inputStream fromFileInputStream, string tofilePath, tipe string) melempar ioException {date date = new date (); SimpleDateFormat SDF = new SimpleDateFormat ("yyyymmddhhmmss"); String timesuffix = sdf.format (date); String docFileName = null; String htmfileName = null; if ("doc" .equals (type)) {docFileName = "doc_" + timesuffix + ".doc"; htmfileName = "doc_" + timesuffix + ".pdf"; } else if ("docx" .equals (type)) {docFileName = "docx_" + timesuffix + ".docx"; htmfileName = "docx_" + timesuffix + ".pdf"; } lain jika ("xls" .Equals (type)) {docFileName = "xls_" + timesuffix + ".xls"; htmfileName = "xls_" + timesuffix + ".pdf"; } else if ("ppt" .equals (type)) {docFileName = "ppt_" + timesuffix + ".ppt"; htmfileName = "ppt_" + timesuffix + ".pdf"; } else {return null; } File htmloutputFile = file baru (tofilePath + file.separatorchar + htmfileName); File docInputFile = file baru (tofilePath + file.separatorchar + docFileName); if (htmloutputFile.exists ()) htmloutputFile.delete (); htmloutputFile.createNewFile (); if (docInputFile.exist ()) docInputFile.delete (); docInputFile.createNewFile (); / *** Bangun file input dariFileInputStream*/ coba {outputStream os = new fileoutputStream (docInputFile); int bytesread = 0; byte [] buffer = byte baru [1024 * 8]; while ((bytesread = fromFileInputStream.read (buffer))! = -1) {os.write (buffer, 0, bytesread); } os.close (); FromFileInputStream.close (); } catch (ioException e) {} OpenOfficEnonnection Connection = SocketopenOffeConnection baru (8100); coba {connection.connect (); } catch (ConnectException e) {System.err.println ("Ada kesalahan dalam konversi file, silakan periksa apakah layanan OpenOffice dimulai."); } // Convert DocumentConverter converter = OpenOffeFofFICECUCENTERVERTER baru (koneksi); converter.convert (docinputFile, htmloutputFile); Connection.Disconnect (); // hapus file kata setelah konversi docInputFile.delete (); return htmfileName; } public static void main (string [] args) melempar ioException {doc2htmlutil coc2htmlutil = getDoc2htmlutilinstance (); File file = null; FileInputStream FileInputStream = null; file = file baru ("d: /poi-test/exportexcel.xls"); FileInputStream = FileInputStream baru (file); // coc2htmlutil.file2html (fileInputStream, "d:/poi-test/openOffice/xls", "xls"); coc2htmlutil.file2pdf (fileInputStream, "d:/poi-test/openOffice/xls", "xls"); file = file baru ("d: /poi-test/test.doc"); fileInputStream = new FileInputStream (file); // coc2htmlutil.file2html (fileInputStream, "d:/poi-test/openOffice/doc", "doc"); coc2htmlutil.file2pdf (fileInputStream, "d:/poi-test/openOffice/doc", "doc"); file = file baru ("d:/poi-test/template laporan mingguan.ppt"); FileInputStream = FileInputStream baru (file); // coc2htmlutil.file2html (fileInputStream, "d:/poi-test/openOffice/ppt", "ppt"); coc2htmlutil.file2pdf (fileInputStream, "d:/poi-test/openOffice/ppt", "ppt"); file = file baru ("d: /poi-test/test.docx"); fileInputStream = FileInputStream baru (file); // coc2htmlutil.file2html (fileInputStream, "d:/poi-test/openOffice/docx", "docx"); coc2htmlutil.file2pdf (fileInputStream, "d:/poi-test/openOffice/docx", "docx"); }} Proses konversi ke HTML hampir sama dengan mengkonversi ke PDF. Yang pertama bernama xxx.html saat membuat file output, dan yang terakhir bernama xxx.pdf. Saat mengeksekusi converter.convert (docInputFile, htmloutputFile);, jodconverter akan mengonversinya menjadi file yang sesuai sesuai dengan nama jenis file.
Perhatikan bahwa jika File2HTML dan File2PDF dipanggil dalam metode utama, kesalahan akan dilaporkan. Konversi HTML atau PDF, dan Anda hanya dapat memilih satu. Juga, sebelum dieksekusi, Anda perlu memulai layanan OpenOffice: Execute Software -Head -head -accept = ”socket, host = 127.0.0.1, port = 8100; URP;" -nofirstStartWizard di jendela perintah di direktori OpenOffice untuk memulai.
Di atas perlu memperkenalkan paket jar jodconverter. Saya berharap ini akan membantu untuk pembelajaran semua orang, dan saya harap semua orang akan lebih mendukung wulin.com.