Конвертирование документов MS Word в PDF при помощи PowerShell

Небольшая функция Export-WordToPDF PowerShell которая позволит конвертировать файл в формате Microsoft в PDF

function Export-WordToPDF {
  param(
  [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)]
  [Alias("FullName")]
  $path, 
  $pdfpath = $null)
 
  process {
    if (!$pdfpath) {
      $pdfpath = [System.IO.Path]::ChangeExtension($path, '.pdf')
    }
    $word = New-Object -ComObject Word.Application
    $word.displayAlerts = $false
 
    $word.Visible = $true
    $doc = $word.Documents.Open($path)
    #$doc.TrackRevisions = $false
    $null = $word.ActiveDocument.ExportAsFixedFormat($pdfpath, 17, $false, 1)
    $word.ActiveDocument.Close()
    $word.Quit()
  }
}

Команда для запуска проста:

PS> Dir c:\folder -Filter *.doc | Export-WordToPDF
Теги:

Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.

Комментарии

Привет всем, используя наработки с различных ресурсов сделал собственный скрипт под себя. Данный скрипт конвертит множество документах в каталогах, в каждом создает папку «PDF» и перемещает уже готовые документы каталога. Очень помог, у нас находилось около 6к документов в разных под папках. Если будут вопросы, то обращайтесь: svemp02@gmail.com

$path = «D:\testpdf»

$dirsname = (Get-ChildItem $path -Directory -recurse).FullName
$pdf_path = $dirsname
$docscount = Get-ChildItem $path -Filter «*.doc» -recurse

$word = New-Object -ComObject Word.Application
$word.Visible = $false

$Core = foreach ($PDF1 in $pdf_path)
{
$docs = Get-ChildItem $PDF1 -Filter «*.doc»
foreach ($File in $docs){
$fullname = $PDF1 + «\PDF»
if (!(Test-Path $fullname))
{
Write-Verbose «Создаём каталог $fullname`n» -Verbose
New-Item -ItemType directory -Path $fullname | Out-Null
}

#Convert
$count = $docscount.Count
$name = $file.Name
++$number
Write-Verbose «$name `t`t (файл $number из $count)» -Verbose
$doc = $word.Documents.Open($file.FullName)
$pdf_file = $fullname + «\» + $doc.Name
$pdf_file = [System.IO.Path]::ChangeExtension($pdf_file, ‘.pdf’)
$doc.ExportAsFixedFormat($pdf_file,17, $false, 1)
$doc.Close()
}
}
$word.Quit()

Оставить комментарий

(required)

(required)