我需要保存pdf文件到docx (使用AcrobatPro)。我可以使用下面的方法做到这一点,但我找不到在此过程中如何禁用OCR的方法。
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();
}发布于 2016-04-21 16:35:12
Acrobat正在从系统注册表(HKEY_CURRENT_USER\SOFTWARE\Adobe\Adobe Acrobat\11.0\AVConversionFromPDF\cSettings\c0\cSettings)中获取转换设置
下面是处理Acrobat注册表设置的简单类
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);
}
}用法:
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();
}https://stackoverflow.com/questions/26159747
复制相似问题