我试图告诉PowerShell打开一个文本文件并选择一个特定的编码选项。默认情况下,当手动在Word中打开此文本文件时,它会尝试使用日语编码打开它,因此不会正确显示某些字符。
我尝试过很多不同的东西,但没有任何作用,所以我完全陷入困境。
除其他外,此文本文件需要每天转换为PDF格式。
我目前的脚本如下:
$wdFormatPDF = 17
$word = New-Object -ComObject Word.Application
$word.Visible = $true
$folderpath = "C:\Users\smirabile\Downloads\report-testing-destination\*"
$fileTypes = "accepted.spl"
Get-ChildItem -Path $folderpath -Include $fileTypes | ForEach-Object {
$path = ($_.FullName).Substring(0, ($_.FullName).LastIndexOf("."))
$doc = $word.Documents.Open($_.FullName)
$Word.Selection.PageSetup.Orientation = 1
$Word.Selection.PageSetup.LeftMargin = 20
$Word.Selection.PageSetup.RightMargin = 20
$doc.Select()
$Word.Selection.Font.Size = 9
$doc.SaveAs([ref]$path, [ref]$wdFormatPDF)
$doc.Close()
}
$word.Quit()
Stop-Process -Name WINWORD -Force
答案 0 :(得分:0)
如有疑问,请阅读documentation:
<强>语法强>
expression.Open(FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate, Revert, WritePasswordDocument, WritePasswordTemplate, Format, Encoding, Visible, OpenConflictDocument, OpenAndRepair, DocumentDirection, NoEncodingDialog)
[...]
编码 |可选| 变体 |查看保存的文档时Microsoft Word使用的文档编码(代码页或字符集)。可以是任何有效的MsoEncoding常量。 [...]默认值是系统代码页。
将[Type]::Missing
用于您希望使用的参数及其默认值。
示例(使用iso-8859-15编码):
$def = [Type]::Missing
$doc = $word.Documents.Open(
$_.FullName, $def, $def, $def, $def, $def, $def, $def, $def, $def, 28605
)