การวิจัยหลักในบทความนี้คือการเขียนโปรแกรม Java โดยใช้ OpenOffice เพื่อแปลง DOC และ DOCX เป็นรหัสการใช้งาน PDF ดังต่อไปนี้
OpenOffice, Jodconverter
เมื่อฉันออนไลน์เพื่อตรวจสอบวิธีการใช้ OpenOffice สำหรับการแปลงรหัสฉันต้องเริ่มบริการซอฟต์แวร์ด้วย CMD ก่อนเสมอ คำสั่งที่จะเริ่มต้นคือ: ซอฟต์แวร์ -headless -accept = "ซ็อกเก็ต, โฮสต์ = 127.0.0.1, พอร์ต = 8100; urp;"
แต่ในความเป็นจริงสำหรับโครงการของฉันการแปลงรหัสจะทำเป็นครั้งคราวเท่านั้น อย่างไรก็ตามหลังจากเริ่มต้นบริการการแปลงรหัส OpenOffice กระบวนการ (ชื่อกระบวนการคือซอฟต์แวร์ EXE) จะมีอยู่เสมอและครอบครองหน่วยความจำประมาณ 100 เมตรซึ่งรู้สึกสิ้นเปลืองมาก ดังนั้นฉันจึงนึกถึงวิธีเรียกคำสั่งที่เรียกใช้บริการโดยตรงในรหัส Java และจากนั้นเมื่อการแปลงรหัสเสร็จสมบูรณ์ฉันจะฆ่ากระบวนการโดยตรง จะมีคำอธิบายในรหัส Java ด้านล่าง
ดังนั้นในความเป็นจริงขั้นตอนที่ 2 นี้สามารถข้ามได้โดยตรง
หลังจากคลายการบีบอัด Jodconverter ให้เพิ่มแพ็คเกจ JAR ทั้งหมดด้านล่าง LIB ลงในโครงการ
หมายเหตุ: ติดตั้ง OpenOffice
แพ็คเกจ CN; นำเข้า java.io.bufferedreader; นำเข้า java.io.file; นำเข้า java.io.filenotfoundexception; นำเข้า java.io.ioexception; นำเข้า java.io.inputStreamreader; นำเข้า com.artofsolving.jodconverter.documentconverter; com.artofsolving.jodconverter.openoffice.connection.openofficeconnection; นำเข้า com.artofsolving.jodconverter.openoffice.connection.socketopenofficonnection; PDF แปลงเป็นไฟล์ SWF * @author Administrator * */ตัวแปลงคลาสสาธารณะ {สตริงคงที่ส่วนตัว openOfficePath = "E: // ติดตั้งซอฟต์แวร์ // OpenOffice // วันที่"; // เส้นทางการติดตั้งของซอฟต์แวร์ OpenOffice/** * แปลงเอกสารสำนักงานเป็น PDF OpenOffice และ JodConverter-2.2.2 จำเป็นต้องเรียกใช้ฟังก์ชั่นนี้ * <pre> * ตัวอย่างวิธี: * สตริง sourcePath = "f: //office//source.doc"; * สตริง destFile = "f: //pdf//dest.pdf"; * Converter.Office2pdf (SourcePath, DestFile); * </pre> * * @Param SourceFile * ไฟล์ต้นฉบับ, เส้นทางสัมบูรณ์ มันสามารถเป็นเอกสารในทุกรูปแบบของ Office2003-2007 และยังไม่ได้รับการทดสอบสำหรับ Office2010 รวมถึง .doc, * .docx, .xls, .xlsx, .ppt, .pptx, ฯลฯ ตัวอย่าง: f: //office//source.doc * @param destfile * ไฟล์เป้าหมาย เส้นทางสัมบูรณ์ ตัวอย่าง: f: //pdf//dest.pdf * @return ข้อความแจ้งเตือนสำหรับความสำเร็จหรือไม่ หาก -1 ถูกส่งคืนหมายความว่าไม่พบไฟล์ต้นฉบับหรือการกำหนดค่า URL.properties ไม่ถูกต้อง หาก 0 ถูกส่งคืน * หมายความว่าการดำเนินการสำเร็จ หาก 1 ถูกส่งคืนหมายความว่าการแปลงล้มเหลว*/สาธารณะคงที่ int Office2pdf (สตริง SourceFile, String destFile) {ลอง {ไฟล์ inputfile = ไฟล์ใหม่ (SourceFile); ถ้า (! inputFile.exists ()) {return -1; (! outputFile.getParentFile (). มีอยู่ ()) {outputFile.getParentFile (). mkdirs ();} สตริง openoffice_home = openOfficePath; // นี่คือไดเรกทอรีการติดตั้งของ OpenOffice // หากตัวละครสุดท้ายของที่อยู่ URL (openOffice_home.charat (openoffice_home.length () -1)! = '//') {openoffice_home + = "//";} // เริ่มต้นคำสั่งสตริงบริการ OpenOffice = OpenOffice_home + "โปรแกรม // runtime.getRuntime (). exec (คำสั่ง); // เชื่อมต่อกับอินสแตนซ์ OpenOffice.org ที่ทำงานบนพอร์ต 8100 OpenOfficOnnection การเชื่อมต่อ = ใหม่ SocketOpenOfficOnnection ("127.0.0.1", 8100); connect.connect () OutputFile); // ปิดการเชื่อมต่อการเชื่อมต่อ disconnect (); // ปิดกระบวนการของ OpenOffice Service Pro.Destroy (); return 0;} catch (filenotfoundException e) {E.printstacktrace () return -1;} catch (ioexception e) {string sourcePath = "c: // ผู้ใช้ // ผู้ดูแลระบบ // เดสก์ท็อป // 1 // สถานะสถานะกลุ่ม list.xls"; สตริง destFile = "c: //users//administrator//desktop//1//dest.pdf"; int flag = converter.office2pdf ล้มเหลว ");} อื่นถ้า (flag == 0) {system.out.println (" การแปลงสำเร็จ ");} else {system.out.println (" ไฟล์ต้นฉบับไม่สามารถพบได้หรือ url.properties ข้อผิดพลาดการกำหนดค่า ");}}}}ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับ Java โดยใช้ OpenOffice เพื่อแปลง DOC และ DOCX เป็นรหัสอินสแตนซ์ PDF ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!