2013-04-02 1 views
-1

Я хочу преобразовать .doc в .htm в C#. Если я использую Microsoft.Office.Interop.Word я получаю исключение:Как конвертировать .doc в .htm программно?

Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

Любые решения?

[possibe дубликат этого: C# convert .doc to .htm, но это не решает мою проблему.]

+2

Вы можете показать свой код здесь .. –

+0

у вас установлен MS-Office на вашем компьютере .. ? – Sachin

+0

У меня нет кода для этого прямо сейчас, но у меня есть код для преобразования документа в .xps, и для этого я думаю, что мне нужны те же библиотеки, в первой строке есть проблема: Microsoft.Office.Interop.Word .Application wordApplication = new Microsoft.Office.Interop.Word.Application(); – user1340852

ответ

0

{000209FF-0000-0000-C000-000000000046} CLSID объекта должно быть в реестре.

Взаимосвязь сборок - это оболочки, которые используют COM-библиотеки, предоставленные MS Office. Поэтому на некотором слое вы используете COM, хотя он прозрачен для вас.

Проверьте, были ли вы установлены материалы interop для MS Office. См. Эту ссылку http://msdn.microsoft.com/en-us/library/aa159923%28office.11%29.aspx Вы можете проверить, есть ли у вас сборки для взаимодействия для MS Word.

1

Что вы можете сделать, это прочитать файл DOC/DOCX с помощью 3-й DLL партии, а затем записать данные в формате HTML с использованием HtmlTextWriter

проверить этот StackOverflow вопросы:

Convert word to pdf using free third party dll

Reading doc and docx files using C# without having MS Office installed on server

Ссылки, приведенные в вышеперечисленных вопросах:

для DOCX:

http://docx.codeplex.com/

http://msdn.microsoft.com/en-us/library/bb656295%28office.12%29.aspx

для дока:

http://npoi.codeplex.com/