将文件夹 $PDFpath :) 中的所有 pdf 文件转换为 docx。

将文件夹 $PDFpath :) 中的所有 pdf 文件转换为 docx。

我经常(每天 10 次以上)需要将 pdf 转换为 word。我使用 Acrobat Pro 中的“另存为”功能。有什么好方法可以加快此过程并将其简化为一次单击?理想情况下,在处理过程中不会占用 Adob​​e(即冻结我的其他选项)的方法。

最好的情况是在文件上简单地单击鼠标右键,但如果有任何想法我都会很感激。

答案1

cmd允许在 powershell 中运行脚本,在以管理员身份运行时输入:

选择密码cmdShift+Right mouse Click

在此处输入图片描述

在此处输入图片描述

powershell -command "Set-ExecutionPolicy RemoteSigned"

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在桌面创建文件夹 PdfConvert,运行Pdf2Docx4.cmd

在此处输入图片描述

将文件夹 $PDFpath :) 中的所有 pdf 文件转换为 docx。

Pdf2Docx4.cmd:

powershell .\PdfConvert\Pdf2Docx4.ps1

Pdf2Docx4.ps1:

$TypeExt="docx"
$closeDocParam = $true;
$PDFpath = "D:\VBS\PS-29-AcrobatProX\"

Get-ChildItem -Filter *.pdf |Where {

# logical document

    $AVDoc = New-Object -ComObject AcroExch.AVDoc;    
    
    $AVDoc.Open($_.Fullname, "") | Out-Null;
# physical document

    $PDDoc = $AVDoc.GetPDDoc();                           
    $JavaScriptObject = $PDDoc.GetJSObject();                        
# get the bridge JavaScript Object

    $T = $JavaScriptObject.GetType();

    $T.InvokeMember("SaveAs",

        [Reflection.BindingFlags]::InvokeMethod -bor `
            [Reflection.BindingFlags]::Public       -bor `
            [Reflection.BindingFlags]::Instance          ,

        $null,
        $JavaScriptObject,
        @([IO.Path]::ChangeExtension($_.Fullname, $TypeExt), ("com.adobe.acrobat."+$TypeExt)));

        $T.InvokeMember("closeDoc", 
 
        [Reflection.BindingFlags]::InvokeMethod -bor `
            [Reflection.BindingFlags]::Public       -bor `
            [Reflection.BindingFlags]::Instance          ,

            $null, 
            $JavaScriptObject, 
            $closeDocParam) | Out-Null;

    $PDDoc.Close()  | Out-Null;
    $AVDoc.Close(1) | Out-Null;
}

相关内容