WPS清除图片段落布局脚本

WPS文档中如果存在大量图片,没有居中对齐的情况,一个个调整太费时费力, 写了个脚本批量处理, 脚本如下:

javascript 复制代码
/**
 * 清除图片段落布局
 */
function clearImageParagraphLayout_v2() {
    try {
        const doc = Application.ActiveDocument;
        if (!doc) return alert("请先打开文档");

        const processedParaIds = new Set();
        let totalProcessed = 0;

        // 处理嵌入式图片(更可靠的获取方式)
        const inlineShapes = doc.InlineShapes;
        for (let i = 1; i <= inlineShapes.Count; i++) {
            try {
                const shape = inlineShapes.Item(i);
                const para = shape.Range.Paragraphs.Item(1);
                if (para && !processedParaIds.has(para.ParaID)) {
                    resetParagraphFormat(para);
                    processedParaIds.add(para.ParaID);
                    totalProcessed++;
                }
            } catch (e) {
                // 跳过有问题的图片
                continue;
            }
        }

        // 处理浮动式图片(兼容不同版本的锚点获取)
        const shapes = doc.Shapes;
        for (let j = 1; j <= shapes.Count; j++) {
            try {
                const shape = shapes.Item(j);
                // 尝试不同的锚点获取方式
                let para;
                if (shape.Anchor) {
                    para = shape.Anchor.Paragraphs.Item(1);
                } else {
                    para = shape.Range.Paragraphs.Item(1);
                }

                if (para && !processedParaIds.has(para.ParaID)) {
                    resetParagraphFormat(para);
                    processedParaIds.add(para.ParaID);
                    totalProcessed++;
                }
            } catch (e) {
                // 跳过有问题的图片
                continue;
            }
        }

        alert(`已处理 ${totalProcessed} 个包含图片的段落\n共检测到 ${inlineShapes.Count + shapes.Count} 张图片`);
    } catch (e) {
        alert("操作失败:" + e.message);
    }
}

// 重置段落格式的辅助函数(使用具体数值代替常量,避免版本问题)
function resetParagraphFormat(para) {
    para.FirstLineIndent = 0;
    para.LineSpacingRule = wdLineSpaceSingle;
    para.Alignment = 1;
}
相关推荐
zxcvb1531 天前
wps实时备份和定时备份区别:触发机制与恢复逻辑的差异
wps
zxcvb1532 天前
如何修改wps备份文件路径?详细步骤与优化建议
wps
拆房老料2 天前
ONLYOFFICE也能像Microsoft Word和WPS一样分别设置中西文字体
前端·html·word·开源软件·wps
Am-Chestnuts10 天前
DeepSeek 复制到 WPS 文字乱码怎么办?DS随心转 导出兼容文档去乱码
乱码·wps·deepseek·wps文字·ds随心转·文档导出
李少兄11 天前
文档排版与数据处理:阿拉伯数字与罗马数字的转换
ui·xhtml·wps
wdfk_prog13 天前
Wi-Fi Direct 教程 04:Interface 协议子系统初始化——WPA/EAPOL、WPS、DPP/NAN、GAS 与 P2P callback
android·运维·服务器·ubuntu·p2p·wps·wifi-direct
less_1213814 天前
HarmonyOS WPS Open SDK 二开实践:统一接口如何收敛多套打开链路
sdk·harmonyos·wps·鸿蒙开发
小淮AI14 天前
AI生成PPT工具的功能观察:百度文库、Gamma、WPS AI
人工智能·powerpoint·wps
less_1213814 天前
HarmonyOS WPS Open SDK 快速入门:HAR 集成到 sendRequest 打开文档
华为·harmonyos·wps
兔叭_哥1 个月前
WPS 阿里V3 全流程逆向分析与求解
网络·wps