如题。想把.Doc文件转化为.txt格式,由于文件量巨大,手工转换工作量太大!
所以想编个程序,对指定的文件进行批处理。需要知道word文件的格式
(picture等ole控件可忽略,主要是读取文本的信息),请不涩赐教!
http://expert.csdn.net/Expert/topic/1371/1371040.xml?temp=.6190912
(100分送上)

解决方案 »

  1.   

    我好像说过这个可以用word中自带的宏功能实现一般多少个文件都可以而且如果我估计你自己是编不出这么强壮的程序
      

  2.   

    DocWizard [email protected]欢迎下载,提出改进建议 http://www.csdn.net/cnshare/soft/16/16229.shtm您在写文档时是否被数量众多的类成员函数所烦恼?是否为了美观的
    版面、格式而困扰?是否为了做成CHM而不得不进行大量的手工操作?
    本软件可以帮助您        ●    生成C++的类的HTML格式的文档,条分缕析,版面美观而朴实。
                    并且可以集成到  HTML  Workshop  中,和其他类一起形成CHM。        ●    而且可以生成  content  of  topic  (.hhc)  文件以及生成
                    index  (.hhk)  文件。避免您手工编辑生成文件的麻烦。要知
                    道在  HTML  Workshop  中编辑生成这两种文件是非常麻烦的。        ●    在马上就要推出的新版本中,将提供二次开发接口,您将可以
                    操纵文档生成过程,形成更符合您要求的文档。当然源代码的
                    解析本软件已经帮您完成了,您所要做的仅仅是生成您所关心
                    的“部分”文档。
    欢迎下载,提出改进建议 http://www.csdn.net/cnshare/soft/16/16229.shtm
      

  3.   

    BOOL CDocumentTransformation::WordDoc2Text(CString csDestDocFile)
    {
    BOOL bRtn = FALSE;
    short shRtn = 0;
    LPDISPATCH lpDispatchDocuments=NULL, lpDispatchDoc=NULL;
    COleVariant vFileName, vConfirmConversions, vReadOnly, vAddToRecentFiles,
    vPasswordDocument, vPasswordTemplate, vRevert, 
    vWritePasswordDoucment, vWritePasswordTemplate, vFormat; if ( m_csDocFile.IsEmpty() )
    return FALSE;
    if ( DT_DOCTYPE_WORD != m_dwDocType )
    return FALSE; CoInitialize(NULL);
    bRtn = m_wordApp.CreateDispatch("Word.Application");
    if ( bRtn == FALSE ) 
    {
    CoUninitialize();
    return FALSE;
    } m_wordApp.SetVisible(TRUE);
    lpDispatchDocuments = m_wordApp.GetDocuments();
    m_wordDocuments.AttachDispatch(lpDispatchDocuments); // operator =( lpszSrc )   Copies a null-terminated string into this 
    //object and sets the VARTYPE to VT_BSTR.
    vFileName = m_csDocFile;
    vConfirmConversions = (long)FALSE;
    vReadOnly = (long)FALSE;
    vAddToRecentFiles = (long)FALSE;
    vPasswordDocument = "";
    vPasswordTemplate = "";
    vRevert = (long)FALSE;
    vWritePasswordDoucment = "";
    vWritePasswordTemplate = "";
    vFormat = (long)0;
    m_wordDocuments.Open(&vFileName, 
     &vConfirmConversions,
     &vReadOnly,
     &vAddToRecentFiles,
     &vPasswordDocument,
     &vPasswordTemplate,
     &vRevert,
     &vWritePasswordDoucment,
     &vWritePasswordTemplate,
     &vFormat); lpDispatchDoc = m_wordApp.GetActiveDocument();
    m_wordDoc.AttachDispatch(lpDispatchDoc); COleVariant svFileName, svFileFormat, svLockComments,
    svPassword, svAddToRecentFiles, svWritePassword,
    svReadOnlyRecommended, svEmbedTrueTypeFonts,
    svSaveNativePictureFormat, svSaveFormsData,
    svSaveAsAOCELetter;
    svFileName = csDestDocFile;
    svFileFormat = (long)0;//wdFormatHTML;
    svLockComments = (long)FALSE;
    svPassword = "";
    svAddToRecentFiles = (long)FALSE;
    svWritePassword = "";
    svReadOnlyRecommended = (long)FALSE;
    svEmbedTrueTypeFonts = (long)FALSE;
    svSaveNativePictureFormat = (long)FALSE;
    svSaveFormsData = (long)FALSE;
    svSaveAsAOCELetter = (long)FALSE; m_wordDoc.SaveAs(&svFileName, &svFileFormat, &svLockComments,
    &svPassword, &svAddToRecentFiles, &svWritePassword,
    &svReadOnlyRecommended, &svEmbedTrueTypeFonts,
    &svSaveNativePictureFormat, &svSaveFormsData,
    &svSaveAsAOCELetter); COleVariant cvSaveChanges, cvOriginalFormat, cvRouteDocument;
    cvSaveChanges = (long)FALSE;
    cvOriginalFormat = (long)TRUE;
    cvRouteDocument = (long)FALSE;
    m_wordDoc.Close(&cvSaveChanges, &cvOriginalFormat, &cvRouteDocument);
    m_wordDoc.ReleaseDispatch();
    m_wordDocuments.ReleaseDispatch();
    COleVariant vSaveChanges, vOriginalFormat, vRouteDocument;
    vSaveChanges = (long)FALSE;
    vOriginalFormat = (long)FALSE;
    vRouteDocument = (long)FALSE;
    m_wordApp.Quit(&vSaveChanges, &vOriginalFormat, &vRouteDocument);
    m_wordApp.ReleaseDispatch(); CoUninitialize();
    return TRUE;
    }