获取WORD文档总页数

1、直接使用 文档部件 -> 域 中的文档页数来获取总页数

2、使用书签来获取总页数,亦可用该方法获取指定目标所在页

 2.1、在文档添加一空格,选中这个空格,插入书签并输入书签名字,如“书签”,然后添加。

2.2、然后去到需要添加页码处,选择文档部件 -> 域 -> 书签页码,在域代码后添加上目标书签。

 2.3、完成

 

获取Word文件的页数,可以使用Microsoft Office提供的COM接口来实现。具体步骤如下: 1. 使用CoInitialize初始化COM库。 2. 使用CLSIDFromProgID函数获取Word应用程序的CLSID。 3. 使用CoCreateInstance函数创建Word应用程序的实例。 4. 使用Documents.Open方法打开Word文件。 5. 使用ActiveDocument.ComputeStatistics方法计算Word文档页数。 6. 关闭Word文档和应用程序实例。 7. 使用CoUninitialize函数释放COM库。 以下是一个简单的示例代码,用于获取Word文档页数。 ```c #include <windows.h> #include <objbase.h> #include <stdio.h> int main(int argc, char* argv[]) { HRESULT hr; CLSID clsid; IDispatch* pWordApp = NULL; VARIANT vtFileName; VARIANT vtFalse; VARIANT vtStat; long nStat; // 初始化COM库 hr = CoInitialize(NULL); if (FAILED(hr)) { printf("CoInitialize failed: 0x%x\n", hr); return hr; } // 获取Word应用程序的CLSID hr = CLSIDFromProgID(L"Word.Application", &clsid); if (FAILED(hr)) { printf("CLSIDFromProgID failed: 0x%x\n", hr); CoUninitialize(); return hr; } // 创建Word应用程序的实例 hr = CoCreateInstance(&clsid, NULL, CLSCTX_LOCAL_SERVER, &IID_IDispatch, (void**)&pWordApp); if (FAILED(hr)) { printf("CoCreateInstance failed: 0x%x\n", hr); CoUninitialize(); return hr; } // 打开Word文件 vtFileName.vt = VT_BSTR; vtFileName.bstrVal = SysAllocString(L"C:\\test.docx"); vtFalse.vt = VT_BOOL; vtFalse.boolVal = VARIANT_FALSE; hr = IDispatch_Invoke(pWordApp, DISPID_APPLICATION, &IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &vtStat, &vtFileName, &vtFalse, &vtFalse, &vtFalse); if (FAILED(hr)) { printf("Documents.Open failed: 0x%x\n", hr); pWordApp->Release(); CoUninitialize(); return hr; } // 计算文档页数 hr = IDispatch_Invoke(pWordApp->GetTypeInfoCount(), DISPID_NEWENUM, &IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &vtStat, NULL); if (FAILED(hr)) { printf("ActiveDocument.ComputeStatistics failed: 0x%x\n", hr); pWordApp->Release(); CoUninitialize(); return hr; } nStat = vtStat.lVal; // 关闭Word文档和应用程序实例 IDispatch_Invoke(pWordApp, DISPID_APPLICATION, &IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, NULL, &vtFalse); pWordApp->Release(); CoUninitialize(); printf("Total number of pages: %d\n", nStat); return 0; } ``` 注意,这段代码需要在Windows操作系统上运行,并且需要安装Microsoft Office。另外,还需要在项目属性中添加ole32.lib和oleaut32.lib两个库文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值