首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AcrobatPro -另存为文档时禁用OCR

AcrobatPro -另存为文档时禁用OCR
EN

Stack Overflow用户
提问于 2014-10-02 19:23:59
回答 1查看 274关注 0票数 1

我需要保存pdf文件到docx (使用AcrobatPro)。我可以使用下面的方法做到这一点,但我找不到在此过程中如何禁用OCR的方法。

代码语言:javascript
运行
复制
private AcroPDDoc pdf = new AcroPDDoc();

public void ConvertToDocx(string inputPath, string outputPath)
{    
    pdf.Open(inputPath);

    var jsObj = pdf.GetJSObject();
    var type = pdf.GetType();

    object[] saveAsParams = { outputPath, "com.adobe.acrobat.docx", "", false, false };
    type.InvokeMember("saveAs", BindingFlags.InvokeMethod | BindingFlags.Instance, null, jsObj, saveAsParams, CultureInfo.InvariantCulture);

    pdf.Close();
}
EN

回答 1

Stack Overflow用户

发布于 2016-04-21 16:35:12

Acrobat正在从系统注册表(HKEY_CURRENT_USER\SOFTWARE\Adobe\Adobe Acrobat\11.0\AVConversionFromPDF\cSettings\c0\cSettings)中获取转换设置

下面是处理Acrobat注册表设置的简单类

代码语言:javascript
运行
复制
public class RegistrySettings
{
    public int IncludeComments { get; set; }
    public int RunOcr { get; set; }

    private const string ConversionKey = @"HKEY_CURRENT_USER\SOFTWARE\Adobe\Adobe Acrobat\11.0\AVConversionFromPDF\cSettings\c0\cSettings";
    private const string RunOcrValueName = "bRunOCR";
    private const string IncludeCommentsValueName = "bIncludeComments";

    public static RegistrySettings CreateWithDisabledOcr()
    {
        return new RegistrySettings() {IncludeComments = 0, RunOcr = 0};
    }

    public static RegistrySettings Parse()
    {
        var runOcr = (int) Registry.GetValue(ConversionKey, RunOcrValueName, null);
        var comments = (int) Registry.GetValue(ConversionKey, IncludeCommentsValueName, null);

        return new RegistrySettings() {IncludeComments = comments, RunOcr = runOcr};
    }

    public void Save()
    {
        Registry.SetValue(ConversionKey, RunOcrValueName, RunOcr);
        Registry.SetValue(ConversionKey, IncludeCommentsValueName, IncludeComments);
    }
}

用法:

代码语言:javascript
运行
复制
public static void DisableOcr()
{
    RegistrySettings registry;
    try
    {
        registry = RegistrySettings.Parse();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
        return;
    }
    registry.RunOcr = 0;
    registry.IncludeComments = 0;
    registry.Save();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26159747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档