E007 如何完成Word互相轉換,Word批量轉換Pdf

E007 如何完成Word互相轉換,Word批量轉換Pdf

Hi,How are you doing?

我是職場編碼(CodeVoc)。

在E000中,我們介紹了Node.js、Ruby、Electron等工具下載安裝。

這期,給你演示一下由Electron聯合Ruby製作的小工具。

播放

暫停

進入全屏

退出全屏

00:00

00:00

重播

刷新

試試

藉助Electron官方Demo,我們很容易製作一個工具展示平臺。

E007 如何完成Word互相轉換,Word批量轉換Pdf

點擊“View Demo”會彈出我們的工具界面。

E007 如何完成Word互相轉換,Word批量轉換Pdf

一、項目需求

這個工具的主要目的是為了完成Word-doc~docx互相轉換,Word轉換Pdf。

doc轉docx,需要下拉框選擇“docx”,

docx轉doc,需要下拉框選擇“doc”,

Word轉Pdf,需要下拉框選擇“pdf”,

接著,點擊“執行”按鈕,

即可根據文件類型,完成doc~docx互相轉換,Word批量轉換Pdf。

E007 如何完成Word互相轉換,Word批量轉換Pdf

二、界面設計

【html】

生成標題文字:

生成表單容器:

生成佈局標籤:

生成行內標籤:

生成單行輸入框:

生成文件選擇按鈕:

生成下拉選擇按鈕:

生成普通按鈕:

【css】

關注四點前白後綠氣泡某詞平臺,搜索“職場編碼”查看源碼。

【javascript】

根據ID,選中source_file按鈕

<code>

var

source_line=

document

.getElementById(

'source_line'

) /<code>

給source_file按鈕,添加"change"事件

<code>

source_line.value

=document.getElementById(

'source_file'

).files[

0

].path /<code>

execute按鈕添加單擊事件

<code>

execute

.addEventListener(

"click"

,

function

()

{獲取參數

1

,獲取參數

2

,調用}) /<code>

獲取參數1

<code>

var

select_name=document.getElementById(

'select_name'

).

value

/<code>

獲取參數2

<code>

var

source_line=document.getElementById(

'source_line'

).

value

/<code>

調用Ruby腳本

<code>

const

{ spawn } =

require

(

'child_process'

)

const

ls = spawn(

'ruby'

, [

'Ruby腳本完整路徑'

,參數

1

,參數

2

]) /<code>

三、邏輯梳理

=> 基礎語法

引用Ruby標準庫

<code>

require

"win32ole"

/<code>

創建主入口方法、分入口方法

<code>

def

Main

(name,pth_source)

def

Doc_to_docx

(pth_source)

def

Docx_to_doc

(pth_source)

def

Word_to_pdf

(pth_source)

/<code>

接收控制檯傳雙參

<code>

Main

(

ARGV

[0]

,

ARGV

[1]

)/<code>

對參數ARGV[0] => name進行判斷,根據判斷結果執行分入口方法

<code>

case

name

when

"doc"

then

Docx_to_doc(pth_source)

when

"docx"

then

Doc_to_docx(pth_source)

when

"pdf"

then

Word_to_pdf(pth_source)

end

/<code>

提取指定文件

<code>filename= Dir.glob(pth_source+

'/*.docx'

) filename= Dir.glob(pth_source+

'/*.doc'

) filename.each{

|i|

}/<code>

文件路徑‘\’替換為'/'

<code>

pth_source

=File.dirname(pth_source).gsub(

'\\'

,

'/'

)/<code>

提取不含後綴文件名

<code>

name

=File.basename(i,

'.doc'

)

name

=File.basename(i,

'.docx'

)/<code>

=> 對象模型

創建可視化Word應用

<code>@wap=WIN32OLE::

new

(

"word.application"

);@wap.visible=

true

/<code>

打開Excel指定工作簿

<code>

wdc

[email protected](i)/<code>

執行另存Doc、Docx、Pdf操作

<code>

wdc

.saveas

(pth_source +

'/'

+ name +

'.doc'

)

wdc

.saveas

(pth_source +

'/'

+ name +

'.docx'

,

16

)

wdc

.exportasfixedformat

(pth_source +

'/'

+ name +

'.pdf'

,

17

)/<code>

關注四點前白後綠氣泡某詞平臺,搜索“職場編碼”查看源碼。


分享到:


相關文章: