网页上复制的微信公众号图文内容,然后粘贴到word(非WPS)会出现图片不能显示怎么解决

在网页上复制的微信公众号图文内容,然后粘贴到word(非WPS)会出现图片不能显示,这是因为图片是webp格式,需要转为jpg或者PNG格式才行。

有没有软件能实现,复制粘贴的时候将图片格式转为jpg或者png格式。

我问过各类GPT用python可以实现将剪贴板的图片转为jpg或者png格式,但是剪贴板中有图文就无能为力。

当然也可以在网页控制台输入js代码替换掉图片url中的webp关键字实现复制的时候直出jpg格式,但这会增加使用成本。

最好的方法还是自动替换,比如剪贴板快捷键或是浏览器插件(试过没有成功)。

用chatgpt写了个油猴脚本,原理是,把所有图片链接里的tp=webp替换成wx_fmt后的格式,试了一下可以粘贴到word里。

// ==UserScript==
// @name         Replace webp with format in image URLs on WeChat
// @namespace    http://your.namespace.com
// @version      0.1
// @description  Replace 'tp=webp' with format in image URLs on WeChat
// @author       Your Name
// @match        https://mp.weixin.qq.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    function replaceWebpWithFormat() {
        var images = document.querySelectorAll('img');
        images.forEach(function(img) {
            var src = img.getAttribute('src');
            if (src && src.includes('tp=webp')) {
                var format = getFormat(src);
                if (format) {
                    src = src.replace('tp=webp', 'tp=' + format);
                    img.setAttribute('src', src);
                    img.setAttribute('data-src', src); // If using lazy loading
                }
            }
        });
    }

    function getFormat(url) {
        var match = url.match(/wx_fmt=([^&]+)/);
        if (match && match[1]) {
            return match[1];
        }
        return null;
    }

    // Run after page load
    window.addEventListener('load', function() {
        replaceWebpWithFormat();

        // Run again if new content is loaded dynamically
        var observer = new MutationObserver(function(mutations) {
            mutations.forEach(function(mutation) {
                if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
                    replaceWebpWithFormat();
                }
            });
        });

        observer.observe(document.body, {
            childList: true,
            subtree: true
        });
    });
})();

1 Like

非常感谢热心网友,有个问题就是部分图片无法显示。
复现过程:
1.禁用脚本,打开网页开发者工具,停用缓存,刷新页面,向下滚动鼠标可以发现页面的图片全部可以加载。
2.启用脚本,刷新页面,向下滚动鼠标可以发现页面的图片只有部分加载。
测试页面地址

再次感谢 Messi 这里配合油猴的禁用懒加载脚本完美解决微信公众号的图片复制到Word不显示的问题

// ==UserScript==
// @name         禁用懒加载
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  尝试禁用页面的懒加载功能
// @author       Your Name
// @match        https://mp.weixin.qq.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 监听DOM变化,尝试解除懒加载
    const observer = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            if (mutation.addedNodes.length) {
                mutation.addedNodes.forEach(node => {
                    // 这里可以添加针对特定懒加载样式的处理逻辑
                    // 例如,如果懒加载是通过data-src属性实现的,可以这样解除:
                    if (node.tagName === 'IMG' && node.hasAttribute('data-src')) {
                        node.src = node.getAttribute('data-src');
                        node.removeAttribute('data-src');
                    }
                });
            }
        });
    });

    observer.observe(document.body, {
        childList: true,
        subtree: true
    });

    // 对于页面加载时已经存在的懒加载元素,也需要处理
    document.querySelectorAll('img[data-src]').forEach(img => {
        img.src = img.getAttribute('data-src');
        img.removeAttribute('data-src');
    });
})();

1 Like

circle阅读助手
可以一键导出

不过图片大小会有不同 要稍微用vba代码改一下

亲测好用
我也是公众号重度用户

1 Like