解决用word修改博客后字体变大的问题

我平时喜欢用Word写Blog,但当用它打开已经发布的文章时,会将默认字体变成小四,再次发布后字体变大不少。例如,我最初的文章是:

    <p>Hello 123</p>

当用Word打开,再次发布后生成的html代码如下:

    <p><span style="font-family:宋体; font-size:12pt">Hello 123</span></p>

就和原来的不一样了,整篇文章字变大了不少。

我最初以为是博客园的bug,还给园子提过问题,后来得到回复是这个是Word的Bug。便自己抓包看了下,这个这个确实是Word的Bug,打开文章是并没有返回样式信息,但Word却自主的给默认字体加上了小四的样式,用别的博客工具打开就没有这个问题。不过这个Bug只要不打开重新编辑就没有问题,影响不太大,也就懒得管它了。

这两天想把之前写的两篇文章给改一下,然后就被这个Bug给郁闷了。虽然别的Blog客户端没有这个Bug,但它们的编辑能力和Word不是一个级别的。在网上搜了下,也没有找到什么方法,也不可能指望Word能主动解决这个Bug,那么就只能自己动手解决这个Bug了。

我以前写过一个工具,用于解决Word无法发布图片的Bug——用word2007在博客园发布带图片的blog。要解决这个问题,思路是一样的:写一个代理程序,捕获Word发布的Blog文章,修改后转发给服务器由于那篇文章写得很古老,代码早就被我删了,因此无法参考。另外,原来的那个代码有个比较麻烦的地方,就是得自己虚拟一个新账户来转发文章,设置和使用都比较麻烦。

参考了以前的方案和问题,这次采用的方案是:写一个代理程序,启动后修改系统代理设置为该程序,即可自动捕获Word发布的Blog文章,修改后转发给服务器制定完修改方案后,感觉就是一个小型的Fiddler,就干脆用Fiddler实现了,由于Fiddler已经完成了大部分的工作,因此我要实现的关键代码就三行:

    FiddlerApplication.BeforeRequest += oS =>
        {
            if (!oS.fullUrl.Contains("/TianFang/services/metaweblog.aspx"))
                return;

            oS.bBufferResponse = true;
            oS.utilReplaceInRequest("style=\"font-family:
宋体; font-size:12pt\"", "");
        };

为了更好的使用它,我写了一个WinFrom版的程序(.net 2.0环境):点击下载

    

这个程序使用非常简单,什么都不用设置。只要在用的时候把它打开,当要发布修改后的文章时,会自动去掉那个多余的小四字号的设置。

注意事项:

  1. 默认的API地址可能只适用于博客园,如果要使用其它的Blog请修改其API地址,程序会自己记忆,下次打开时仍会使用该地址。
  2. 该程序修改了全局的代理设置,可能影响上网的网速,因此,在不用的时候最好不要打开它。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值