尝试将PDF文件转换为文本文件时,ActiveX无法创建对象错误

时间:2015-07-22 17:26:13

标签: vb.net excel vba excel-vba

当我尝试将PDF文件转换为文本文件时,遇到以下错误:

  

涉及Acrobat错误429:ActiveX无法创建对象

我的代码是:

Private Sub CommandButton1_Click()

    Dim AcroXApp As Acrobat.AcroApp
    Dim AcroXAVDoc As Acrobat.AcroAVDoc
    Dim AcroXPDDoc As Acrobat.AcroPDDoc
    Dim Filename As String
    Dim jsObj As Object
    Dim NewFileName As String

    Filename = "C:\Users\Boominathan\Desktop\test.pdf"

    NewFileName = "C:\file.txt"

    Set AcroXApp = CreateObject("AcroExch.App")

    Set AcroXAVDoc = CreateObject("AcroExch.AVDoc")

    AcroXAVDoc.Open Filename, "Acrobat"

    Set AcroXPDDoc = AcroXAVDoc.GetPDDoc

    Set jsObj = AcroXPDDoc.GetJSObject

    jsObj.SaveAs NewFileName, "com.adobe.acrobat.plain-text"

    AcroXAVDoc.Close False

    AcroXApp.Hide

    AcroXApp.Exit

End Sub

错误在以下行中:

Set AcroXApp = CreateObject("AcroExch.App")

你能帮我解决一下吗?

1 个答案:

答案 0 :(得分:0)

该错误似乎表明您的计算机上未注册班级名称public class MainActivity extends ActionBarActivity { static ArrayList<Bitmap>bitmap=new ArrayList<Bitmap>(); ArrayList<HashMap<String,String>> json= new ArrayList<HashMap<String,String>>(); private static String url="http://api.themoviedb.org/3/discover/movie?sort_by=popularity.desc&api_key=7b414d5858e1af7c06a9fb87a11ea64b"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Background().execute("http://api.themoviedb.org/3/discover/movie?sort_by=popularity.desc&api_key=7b414d5858e1af7c06a9fb87a11ea64b"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } class Background extends AsyncTask<String,Void,Void> { @Override protected Void doInBackground(String... strings) { JsonParser j=new JsonParser(); JSONArray air=j.getJsonFrmUrl(url); for(int i=0;i<air.length();i++) { try{ JSONObject c=air.getJSONObject(i); String image="http://image.tmdb.org/t/p/w185/" + c.getString("backdrop_path"); String id=c.getString("id"); String title=c.getString("original_title"); HashMap<String, String> map=new HashMap<String, String>(); map.put("backdrop_path", image); map.put("id", id); map.put("original_title", title); json.add(map); Toast.makeText(MainActivity.this,image,Toast.LENGTH_LONG).show(); bitmap.add(BitmapFactory.decodeStream((InputStream) new URL(image).getContent())); } catch(Exception e){ } } return null; } @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); } } }

另外,你已经声明了"AcroExch.App"类型的对象,所以你需要决定你正在使用哪个类,因为我认为这可能会引发Type 13“Mismatch”错误,即使你注册了AcroExch.App类,因为它返回的是一个与变量声明类型不同的对象类型。

我不熟悉那些对象模型,但您可以尝试:

Acrobat.AcroApp