【问题标题】:Copy and paste svg image to libreoffice writer using xclip使用 xclip 将 svg 图像复制并粘贴到 libreoffice writer
【发布时间】:2020-09-04 16:13:02
【问题描述】:

我习惯使用xclip 将 png 文件复制/粘贴到 libreoffice writer 中。

我使用的命令是:

xclip -selection clipboard -t "image/png" -i <path_to_file>

现在,我想复制/粘贴 svg 图像,但我不知道什么是合适的“目标”选项。

我尝试了很多不同的 -t 参数,例如:

xclip -selection clipboard -t "image/svg" -i <path_to_file>
xclip -selection clipboard -t "image/svg+xml" -i <path_to_file>
xclip -selection clipboard -t 'application/x-openoffice-drawing;windows_formatname="Drawing Format"' -i <path_to_file>

它几乎可以使用以下命令,但图像以光栅格式而不是 svg 格式粘贴:

xclip -selection clipboard -t 'application/x-openoffice-emf;windows_formatname="Image EMF"' -i <path_to_file>
xclip -selection clipboard -t 'application/x-openoffice-wmf;windows_formatname="Image WMF"' -i <path_to_file>

我可以使用 ctrl+c/ctrl+v 将 svg 文件复制/粘贴到 libreoffice 写入,但我想通过命令行来完成,最好使用 xclip。有没有办法做到这一点?任何帮助表示赞赏。

顺便说一句,我使用的是 Ubuntu 18.04,并且我使用的是 xclip 版本 0.12。

【问题讨论】:

    标签: svg libreoffice-writer xclip


    【解决方案1】:

    根据我的经验,LibreOffice 似乎……

    • 无法直接从剪贴板粘贴 SVG 代码,但是……
    • 能够粘贴您在剪贴板中为其提供文件 URI 的 SVG 文件。具体来说:
    1. 我没有运气尝试通过 xclip 将 SVG 代码直接粘贴到 LibreOffice 到剪贴板选择中……没有让它与任何目标名称一起使用,以及我确实从那里获得复制/粘贴图像的情况就像您所经历的那样,LibreOffice 中的其他一些应用程序不是作为 SVG 矢量数据导入的,而是作为光栅图形导入的。但是:

    2. 以下内容(粘贴 URI 而不是直接 SVG 代码)对我有用:
      echo "file://&lt;path_to_file&gt;" |xclip -in -selection "CLIPBOARD" -verbose -target text/uri-list
      它似乎也适用于没有“file://”uri方案前缀的路径:
      echo "&lt;path_to_file&gt;" |xclip -in -selection "CLIPBOARD" -verbose -target text/uri-list
      它似乎(主要)使用远程 URL 而不是本地文件 URI……至少在原则上是这样。我刚刚成功尝试了这个 URI:
      https://openclipart.org/download/187787/Flower-Christmas-Flower.svg

    但是,LibreOffice 的 SVG 导入似乎存在问题(不仅在通过剪贴板导入时,而且在通过 Insert->Image 显式导入时),其他程序似乎可以毫无问题地显示一些 SVG,尤其是维基百科上的数学公式(我相信 wiki 使用 MathJax 将它们呈现为 SVG)。例如,以下来自 wikipedia 的 svg 将无法正确粘贴到 LibreOffice,即使我下载它并将其重命名为“foo.svg”并尝试显式导入它: https://wikimedia.org/api/rest_v1/media/math/render/svg/6d4475fbd112aad0bedebebac14a4fa6b220de74

    相反,通过剪贴板的导入也会在更复杂的 URL 上失败,即使它是 LibreOffice 本身没有问题的 SVG 文件(具有不太复杂的本地文件 URI),例如,这个失败如下:
    https://en.wikipedia.org/wiki/Special_relativity#/media/File:World_line.svg
    但如果作为本地文件导入就可以了。

    【讨论】:

    • 很酷的解决方法!有用!但是,似乎粘贴 URI 而不是直接 SVG 代码在其他应用程序上不起作用,例如墨景。无论如何,我想我会使用两个 xclip 的组合:一个使用您建议的方法将 svg 文件发送到“剪贴板”(用于将其粘贴到 Libreoffice),另一个将其发送到“主要”(在我需要的时候)将其粘贴到 Inkscape 上)。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多