C#调用OFFICE转换WORD,EXCEL,PPT文件为PDF

实践问题:

1. WORD Application.Documents.Open函数返回null的一种解决方法:

WORD Application.Documents.Open函数返回null的一种解决方法_李赛赛的专栏-CSDN博客

2.WORD Application.Documents.Open函数获取不到对象:

DOCOM设置问题,管理工具-->组件服务-->计算机-->我的电脑--> Docom设置里面扎到 (Microsoft Word 97 - 2003 文档)右击属性在标识-->交互式用户就可以了。重要:在开发的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注册表:
Win7 64位注册表与32位注册表的区别_又见云鬼_新浪博客
C# 32位程序访问64位注册表 - 太阳系漫游者 - 博客园

C# 32位程序在64位系统下注册表操作 - 堕落天才 - 博客园

wordApp.Documents.Open()获不到对象

wordApp.Documents.Open()获不到对象

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佳木成林_刘乙隆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值