Java調(diào)用Python代碼實現(xiàn)Word轉(zhuǎn)化為PDF格式
寶子們,誰懂啊,找了好久實現(xiàn) Java 調(diào)用 Python 代碼完成 Word 轉(zhuǎn)化為 PDF 格式的方法,終于被我挖到寶了!真的有被驚艷到!
以前處理 Word 轉(zhuǎn) PDF 格式可頭疼了,現(xiàn)在掌握了這個方法,一切都變得超簡單,簡直是打工人的福音!有手就會的操作,跟著做絕對不走彎路。
答應(yīng)我一定要試試,按照這個方法,輕松就能解鎖這個超實用技能。以后再也不用為格式轉(zhuǎn)換煩惱啦,我又快樂了!
Java代碼
public class testA {
public static void main(String[] args) {
// 指定Python腳本絕對路徑
String pythonScriptPath = "D:\\PycharmProjects\\PythonProject\\.idea\\game\\test\\day02201.py";
// 設(shè)置輸入/輸出文件路徑(需轉(zhuǎn)義反斜杠)
String inputDocx = "C:\\Users\\MI\\Desktop\\可刪除文件\\test.docx";
String outputPdf = "C:\\Users\\MI\\Desktop\\可刪除文件\\output1.pdf";
// 構(gòu)建命令來運(yùn)行Python腳本
String[] command = {
"python", // 這里假設(shè)你的系統(tǒng)路徑中已經(jīng)配置了python命令
pythonScriptPath,
inputDocx,
outputPdf
};
// 使用ProcessBuilder來啟動進(jìn)程
ProcessBuilder processBuilder = new ProcessBuilder(command);
processBuilder.redirectErrorStream(true); // 將錯誤流合并到標(biāo)準(zhǔn)輸出流中
try {
Process process = processBuilder.start(); // 啟動進(jìn)程
// 讀取并打印腳本的輸出(如果有的話)
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
int exitCode = process.waitFor(); // 等待進(jìn)程結(jié)束并獲取退出碼
if (exitCode == 0) {
System.out.println("轉(zhuǎn)換成功!PDF文件已保存。");
} else {
System.err.println("轉(zhuǎn)換失敗,退出代碼:" + exitCode);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}Python代碼
def word_to_pdf(input_path, output_path):
word = comtypes.client.CreateObject('Word.Application')
word.Visible = False
doc = word.Documents.Open(input_path)
doc.SaveAs(output_path, FileFormat=17) # 17 是 wdFormatPDF
doc.Close()
word.Quit()
if __name__ == "__main__":
if len(sys.argv) != 3:
print("Usage: python script.py <input_docx_path> <output_pdf_path>")
sys.exit(1)
input_docx = sys.argv[1]
output_pdf = sys.argv[2]
word_to_pdf(input_docx, output_pdf)
print(f"轉(zhuǎn)換成功!PDF文件已保存為 {output_pdf}")出現(xiàn)的報錯
運(yùn)行Java出現(xiàn)的情況或者是Python出現(xiàn)該情況
ModuleNotFoundError: No module named 'comtypes'
或者是
Traceback (most recent call last): File "D:\PycharmProjects\PythonProject\.idea\game\test\day02201.py", line 3, in <module> import comtypes.client ModuleNotFoundError: No module named 'comtypes'
解決方法如下:
1.按住鍵盤“WIN+R”

2.輸入“cmd”

3.輸入“pip install comtypes”
pip install comtypes
運(yùn)行結(jié)果如下:

4.輸入“pip3 install comtypes”
pip3 install comtypes
運(yùn)行結(jié)果如下:

再次運(yùn)行代碼,就可以解決以上Error的問題了!!!
運(yùn)行結(jié)果展示



到此這篇關(guān)于Java調(diào)用Python代碼實現(xiàn)Word轉(zhuǎn)化為PDF格式的文章就介紹到這了,更多相關(guān)Java Word轉(zhuǎn)PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java實現(xiàn)Word轉(zhuǎn)PDF的兩種常見方案和性能實測
- Java利用Spire.PDF實現(xiàn)將PDF文檔轉(zhuǎn)換為Word格式
- Java使用Spire.Doc實現(xiàn)Word轉(zhuǎn)PDF的完整方案
- Java實現(xiàn)將Doc/Docx格式的Word文檔轉(zhuǎn)換為PDF文件
- Java調(diào)用Python服務(wù)的三種實現(xiàn)過程
- 從簡單到進(jìn)階解析Java調(diào)用Python的5種實用方案
- Java調(diào)用Python腳本實現(xiàn)HelloWorld的示例詳解
- Java調(diào)用Python的5種方式總結(jié)(不是所有場景都要用微服務(wù))
相關(guān)文章
Java中sharding-jdbc 綁定表的實現(xiàn)
綁定表是 ShardingSphere-JDBC 解決跨庫表關(guān)聯(lián)查詢的核心機(jī)制,通過強(qiáng)制分片鍵和算法一致的表路由到同一物理庫,實現(xiàn)高效本地關(guān)聯(lián),適用于大表之間的關(guān)聯(lián)場景,避免了全局表的存儲冗余,下面就來詳細(xì)的介紹一下如何使用,感興趣的可以了解一下2026-03-03
Java簡單統(tǒng)計字符串中漢字,英文字母及數(shù)字?jǐn)?shù)量的方法
這篇文章主要介紹了Java簡單統(tǒng)計字符串中漢字,英文字母及數(shù)字?jǐn)?shù)量的方法,涉及java針對字符串的遍歷、編碼轉(zhuǎn)換、判斷等相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
Java 在PPT中添加文本和圖片超鏈接的實現(xiàn)方法
這篇文章主要介紹了Java 在PPT中添加文本和圖片超鏈接的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
Java中的HashSet、LinkedHashSet集合解析
這篇文章主要介紹了Java中的HashSet、LinkedHashSet集合解析,與HashSet不同的是,LinkedHashSet在內(nèi)部使用了一個雙向鏈表來維護(hù)元素的順序,因此它可以保持元素的插入順序,這使得LinkedHashSet在需要保持元素順序的場景下非常有用,需要的朋友可以參考下2023-11-11

