如何把包含图片的docx文件转换为HTML WORD 转为html

如何把包含图片的docx文件转换为HTML

今天我接到领导的安排想要在网页上展示一些公司的方案(docx文件)。我一想啊,直接展示word文件有点难度,要不先把word转换为HTML格式吧。网上一搜,像这种格式文本转换pandoc比较好用。行,那就用pandoc吧。

pandoc如何安装我就不说了,可以参考官方文档https://pandoc.org/,我们直接进入使用环节。

pandoc -f docx -t html -o R语言读文件防止行名、列名中有的字符变成点号.html R语言读文件防止行名、列名中有的字符变成点号.docx
  1. -f:即原始文件格式,我们这里是docx格式
  2. -t:即想要转换为啥格式,我们这里是html格式
  3. -o:输出文件名,我们这里输出为R语言读文件防止行名、列名中有的字符变成点号.html
  4. 最后一个参数是输入文件名

这几个参数综合起来的意思是: 我要把一个叫R语言读文件防止行名、列名中有的字符变成点号.docx的docx格式的文件转换为一个叫R语言读文件防止行名、列名中有的字符变成点号.html的HTML文件的意思。

转换完成,我愉快地打开HTML文件,却发现这样的情况:

经过搜索我发现,原来pandoc默认不解析图片,如果想要解析图片,得加一个--extract-media的参数。

pandoc -f docx -t html --extract-media . -o R语言读文件防止行名、列名中有的字符变成点号.html R语言读文件防止行名、列名中有的字符变成点号.docx
  1. --extract-media的意思是把多媒体文件解析到xxx位置,本例中为解析到当前目录

打开转换完成的HTML你就会发现图片出现了喔。

作者:灵魂工具人
链接:https://zhuanlan.zhihu.com/p/340100190
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

说到R包的安装简直是个噩梦,为什么R包这么难装呢?我大胆分析一下,欢迎批评指正:

  1. 生态混乱
    R在统计圈的盛行决定了R包的开发人员基本上做统计的,这些开发者开发的包水平层次不齐。有 时候一个简单的功能却要依赖一个非常复杂的包,严重增加的包的负担。
  2. 很多包含有C代码需要编译
    一方面需要安装编译器,另一方面有编译失败的风险。
  3. 错误提示不友好
    例如,biomaRt安装说明说,可以使用R 3.6安装:


然而,错误提示却是:


安装失败的原因当然不是R版本的问题,这里却误导性的提示是R版本的问题。如果这个时候能给出 安装失败的真正原因,也能帮助用户快速定位问题。然而,事与愿违。

总结一下,R包难以安装的根本原因是生态混乱错误提示不友好是阻碍用户找到失败原因的根本原因。

解决办法

我们总希望解决问题的时候有什么终极办法,然而对于R包的安装却是很难找到此类办法。下面我列举一下 我平时解决问题的基本思路,不能保证彻底解决问题,但是大多数的问题是能够解决的。

使用anaconda安装

这个方法最有希望成为终极解决办法。anaconda组织会把R包统一管理,你只需要使用conda install就行。 例如,你想要安装ArrayExpress,执行如下命令安装:

conda install -c bioconda bioconductor-arrayexpress

然而,事情不是总是难么顺利,也是很容易安装失败。

失败原因1:版本冲突

anaconda有三个重要的channel与R相关。

  1. r
  2. conda-forge
  3. bioconda

其中bioconda里面都是bioconductor包,这个里面包。rconda-forge里面都有一些R包, 这就很容易导致安装包时各个channel里面的包互相冲突。

失败原因2: conda install一下,地动山摇

不知道biconda的打包策略,有的时候安装一个R包却要更新我的Python。往往安装的时候我都心惊胆战, 生怕有啥不好的影响,一见到有更新PythonR包,往往只能采取其他方式安装。

下载二进制包安装

这个方法针对有些R包有C代码需要编译安装,却又不想安装编译器,或者没有编译成功的情况。方法是去CRAN官网, 找到你要安装的包,选择你要安装平台的二进制包下载:

然后本地安装:

install.packages("/path/to/download/file.zip", repos = NULL)

这里要注意,如果是本地安装需要指定repos = NULL。为啥要单独指定,R不会判断是本地文件路径还是包名吗? 这个问题我也很疑惑。

源码安装

这个安装方法是没有办法的办法。设想我就是这个包的开发者,我会怎么开发这个包呢?

  1. 写代码
  2. 装依赖

那么我下载这个包的源码,把这个包的依赖依次装上,然后再装这个包不是水到渠成吗?

这个方法最为麻烦,然而却是能解决大部分的情况。大体步骤是这样的:

  1. 下载源码
  2. 解压,进入项目根目录
  3. 像这个包的开发者一样,使用devtools::install()进行安装
  4. 如果安装失败,打开DESCRIPTION文件
  5. 逐一安装项目依赖,DESCRIPTION文件DependsImports两项是项目依赖,例如:


这个包依赖BiobaseXMLoligolimma

6. 如果依赖包依旧安装错误,则下载依赖包的源码进行源码安装(这是一个递归),直到所有依赖安装成功, 这个时候再运行devtools::install()就水到渠成了。

发布于 2021-01-06 13:07

  • 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、付费专栏及课程。

余额充值