web-dev-qa-db-ja.com

PDFをWord(OCR付き)に変換またはバッチ変換するようにマクロ/ホットキーを設定するにはどうすればよいですか?

私は頻繁に(1日に10回以上のように)PDFをWordに変換する必要があります。 AcrobatProの「名前を付けて保存」機能を使用しています。このプロセスをスピードアップし、ワンクリックで要約する良い方法はありますか?理想的には、処理中にAdobeを拘束しない方法(つまり、他のオプションから私をフリーズさせない方法)。

最良の場合は、ファイルを右クリックするだけのオプションですが、アイデアがあればありがたいです。

4
Jake

PowerShellでスクリプトの実行を許可し、管理者としてcmd実行と入力します。

ピンを選択cmdを押します Shift+Right mouse Click

enter image description here

enter image description here

powershell -command "Set-ExecutionPolicy RemoteSigned"

enter image description here

enter image description here

enter image description here

デスクトップにフォルダPdfConvertを作成し、Pdf2Docx4.cmdを実行します

enter image description here

フォルダ$ 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;
}
2
STTR