近日遇到一个需求, 要将一些图片按一定要求放到Word文档中. 这些图片格式不统一, 有pdf, 有png, 有jpg. 宽高也各不同, 但要求图片横向放置, 每页一张. 当然, 如果手动操作, 就没有必要记录作法了.

将问题分解一下,有下列步骤:

1.将pdf转换为图片: 可以借助xpdf-tools中的.如果图片高>宽format.exe, 旋转图片: 可以借助.将图片写到html文件中: 使用Word支持的格式4.使用Word打开html文件, 断开链接, 嵌入图片.另存为Word格式

前两步没有什么要说的.

Word支持的html文件与常规的有所不同, 具体哪些地方不同, 也没有必要仔细研究, 直接将一份简单的Word文件另存为html格式看看就可以知晓了. 我们的需求比较简单, 所以只需要保留其中重要的相关设置, 所得模板如下

@page WordSection1 {    size:297mm 210mm;    margin: 12.7mm 12.7mm 12.7mm 12.7mm;    mso-page-orientation:landscape;    mso-header-margin:42.55pt;    mso-footer-margin:49.6pt;    mso-paper-source:0;}div.WordSection1 {page:WordSection1;}

format.exe_format.exe_format.exeformat.exe_format.exe_format.exe

可以看到, Word可以识别html文件中自定义的页面设置,其中可以设置页面大小format.exe, 页边距, 页面方向等. 这些设置浏览器未必支持. 需要注意的是, 其中的图片大小, 只能以像素为单位, 且默认根据96dpi计算.

使用Word打开这样的html文件, 可以看到图片, 但只是链接. 如果将Word文件转移到其他位置, 图片就无法显示了. 因此, 我们还需要将图片嵌入Word文件中. 对于, 依次

文件 | 信息 | 相关文档 | 编辑指向文件的链接

然后

全选 | 断开链接 | 将图片保存在文档中 | 确定.

format.exe_format.exe_format.exe

脚本

将上面的步骤总结为下面的脚本, 处理起大量的文件来就更容易了.

# 定义程序路径im=/D/ImageMagick-7.1.1-19-Q16-HDRIxpdf=/D/PDFtools/xpdf-tools-4.05/bin
# 先将pdf转换为相应的png文件for pdf in *.pdf; do    name=${pdf%.pdf}    $xpdf/pdftopng.exe $pdf $name    mv $name-000001.png $name.pngdone
# 根据宽高旋转图片mkdir -p backupfor img in *.jpg *.png; do    eval $($im/identify.exe -ping -format 'w=%w; h=%h;' $img) # 获取宽高    [[ $h > $w ]] && {        cp $img ./backup/$img        $im/convert.exe -rotate -90  ./backup/$img $img    }done
# 输出图片及其编号rm -f _imgfor img in *.jpg *.png; do    idx=${img##*_}; idx=${idx%.*}    echo $idx $img >>_imgdone
# 排序图片并输出到html文件sort -n _img | awk 'BEGIN { print ""     "n@page WordSection1 {"     "n    size:297mm 210mm;"     "n    margin: 12.7mm 12.7mm 12.7mm 12.7mm;"     "n    mso-page-orientation:landscape;"     "n    mso-header-margin:42.55pt;"     "n    mso-footer-margin:49.6pt;"     "n    mso-paper-source:0;}"     "ndiv.WordSection1 {page:WordSection1;}"     "n"     "n"     "n"     "n<div class=WordSection1 align=center style="text-align:center">"     "n"}
{ print """$2"">" }
END {print "
"}>_.html


限时特惠:
本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情

站长微信:Jiucxh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注