2.対象ファイルをzipにしてdocument.xmlにアクセスする
ソースの対応箇所は以下の通り
#docxファイルの実体部分取得開始----------------------------------------------------
#docx→zipに変更
Rename-Item -Path ($filePth + "\" + $fileNm + ".docx") -NewName ($fileNm + ".zip")
#zip解凍(解凍先はファイルのあるパスと同じ)
#以降解凍後のフォルダ名はファイル名と同じ&wordファイルであれば構成は同じなのでファイル名を使ってパスを指定していく
Expand-Archive -Path ($filePth + "\" + $fileNm + ".zip") -DestinationPath ($filePth + "\" + $fileNm)
#zip削除(後々邪魔になるため)
Remove-Item ($filePth + "\" + $fileNm + ".zip")
#いじる用のXMLパスセット
$wdXmlPath = ($filePth + "\" + $fileNm + "\word\document.xml")
#XMLの内容をごそっと取得
$strRaw = Get-Content $wdXmlPath -RAW -Encoding utf8
#docxファイルの実体部分取得終了----------------------------------------------------
まずはRename-Itemを使って対象ファイルの拡張子を「docx」から「zip」に変更。
「変数filePthに"\"と変数fileNmと".docx"で示されたファイル(-Path ($filePth + "\" + $fileNm + ".docx"))を変数fileNmと".zip"をくっつけた(-NewName ($fileNm + ".zip"))名前に変更する(Rename-Item)」
そうしてできたzipをExpand-Archiveによって同じ階層に解凍。
「変数filePthに"\"と変数fileNmと".zip"で示されたファイル(-Path ($filePth + "\" + $fileNm + ".zip"))を変数filePthに"\"と変数fileNmで示されたディレクトリ(-DestinationPath)に解凍(Expand-Archive)」
解凍後にもzipが残り、後々、再度「docx」を作る際に邪魔になるのでこの時点で用済みになったzipを削除します。
「変数filePthに"\"と変数fileNmと".zip"で示されたファイル(($filePth + "\" + $fileNm + ".zip"))を削除(Remove-Item)」
zipの解凍により、前提の2で説明したような内容の階層を持ったフォルダができあがっています。
が、しかし、用があるのはこの中のwordフォルダのdocument.xmlのみなので、このdocument.xmlにアクセスするためのパスを先に変数wdXmlPathに格納しておきます。
($wdXmlPath = ($filePth + "\" + $fileNm + "\word\document.xml"))
基本的に一括置換かけていくので、問題のXMLの内容をまるっと変数strRawに取得しておきます。
「変数strRawに変数wdXmlPathで示されたファイルの中身を、そのままUTF-8(-Encoding utf8)文字列として(-RAW)取得する(Get-Content $ )」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます