实践问题:
1.WORD Application.Documents.Open函数返回null的一种解决方法:
WORD Application.Documents.Open函数返回null的一种解决方法_李赛赛的专栏-CSDN博客
2.WORD Application.Documents.Open函数获取不到对象:
DOCOM设置问题,管理工具-->组件服务-->计算机-->我的电脑--> Docom设置里面扎到 (Microsoft Word 97 - 文档)右击属性在标识-->交互式用户就可以了。重要:在开发的Server程序开发中发现,当把3个Docum(Word,Excel,PowerPoint)及程序服务中属性-->登录-->此账户都设置为管理员账户时,皆可在系统内实现函数获取对象。
3.获取PDF页数:在记事本中打开PDF文件,文件中每一页都有一个特定的标记:"/Type /Page" (根据PDF版本的不同,在两个词之间可能带有空格)。所以,我们只需要计算这个标记在文件里出现了多少次。
首先,我们需要使用FileStream 打开pdf文件,然后使用StreamReader将文档内容作为字符串读取。
FileStream fs = new FileStream(@"c:\a.pdf", FileMode.Open, FileAccess.Read);
StreamReader r = new StreamReader(fs);
string pdfText = r.ReadToEnd();
一旦获取了pdf文本,我们需要做的就是使用正则表达式计算:"/Type /Page" 标记出现的次数。
Regex rx1 = new Regex(@"/Type\s*/Page[^s]");
MatchCollection matches = rx1.Matches(pdfText);
MessageBox.Show("The PDF file has " + matches.Count.ToString() + " page(s).";
在后边的项目实际测试中发现当获取发票文件页数时,这个方法出现不准确的情况,所以后来替换为iTextSharp.dll来实现的。
收藏相关:
Aspose转换方法:无法嵌入互操作类型“Microsoft.Office.Interop.Word.ApplicationClass”。请改用适用的接口。 - 想念熊小米 - 博客园
检测office注册表:
Win764位注册表与32位注册表的区别_又见云鬼_新浪博客
C# 32位程序访问64位注册表 - 太阳系漫游者 - 博客园
C# 32位程序在64位系统下注册表操作 - 堕落天才 - 博客园