【问题标题】:Convert pdf to Word document [closed]将pdf转换为Word文档[关闭]
【发布时间】:2010-08-05 07:29:12
【问题描述】:

感谢大家的回答... 在这里我想再问一个问题:

在 .net 中将 PDF 文档转换为 Word 文档的最佳方法是什么?

【问题讨论】:

  • 您的问题首先被问到,但由于某种原因,它没有收到很多答案。在此处查看类似问题:*.com/questions/3687970/…

标签: .net pdf ms-word converter


【解决方案1】:

将运行文件夹中的所有pdf保存到docx。

将 powershell 脚本转换为 C#。

在 AcrobatX Pro 中测试。

Pdf2Docx.ps1:

$TypeExt="docx"
$closeDocParam = $true;

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;
}

【讨论】:

  • 此类脚本在 $JavaScriptObject.GetType() 上的 PowerShell 5 中失败,但在 PowerShell 6.1 中有效