使用 xclip 将 svg 图像复制并粘贴到 libreoffice writer
Copy and paste svg image to libreoffice writer using xclip
我习惯用xclip
把png文件copy/paste转成libreoffice writer
我使用的命令是:
xclip -selection clipboard -t "image/png" -i <path_to_file>
现在,我想 copy/paste svg 图片,但我不知道什么是合适的 "target" 选项。
我尝试了很多不同的 -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 copy/paste 将 svg 文件写入 libreoffice,但我想通过命令行完成,最好使用 xclip
。有办法吗?感谢任何帮助。
顺便说一下,我使用的是 Ubuntu 18.04,我使用的是 xclip 版本 0.12。
根据我的经验,LibreOffice 似乎……
- 无法直接从剪贴板粘贴 SVG 代码但是…
- 能够粘贴您在剪贴板中为其提供文件 URI 的 SVG 文件。具体来说:
我没有运气尝试通过 xclip 将 SVG 代码直接粘贴到 LibreOffice 到剪贴板选择......没有让它与任何目标名称一起工作,以及我这样做的情况从其他应用程序获取 copy/pasted 图像到 LibreOffice 中,正如您所经历的那样,不是作为 SVG 矢量数据导入,而是作为光栅图形导入。但是:
以下(粘贴 URI 而不是直接 SVG 代码)对我有用:
echo "file://<path_to_file>" |xclip -in -selection "CLIPBOARD" -verbose -target text/uri-list
它似乎也适用于没有“file://”uri 方案前缀的路径:
echo "<path_to_file>" |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 其他程序似乎可以毫无问题地显示,尤其是数学公式在维基百科上(我相信维基使用 MathJax 将它们呈现为 SVG)。例如,维基百科中的以下 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
但如果作为本地文件导入会很好。
我习惯用xclip
把png文件copy/paste转成libreoffice writer
我使用的命令是:
xclip -selection clipboard -t "image/png" -i <path_to_file>
现在,我想 copy/paste svg 图片,但我不知道什么是合适的 "target" 选项。
我尝试了很多不同的 -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 copy/paste 将 svg 文件写入 libreoffice,但我想通过命令行完成,最好使用 xclip
。有办法吗?感谢任何帮助。
顺便说一下,我使用的是 Ubuntu 18.04,我使用的是 xclip 版本 0.12。
根据我的经验,LibreOffice 似乎……
- 无法直接从剪贴板粘贴 SVG 代码但是…
- 能够粘贴您在剪贴板中为其提供文件 URI 的 SVG 文件。具体来说:
我没有运气尝试通过 xclip 将 SVG 代码直接粘贴到 LibreOffice 到剪贴板选择......没有让它与任何目标名称一起工作,以及我这样做的情况从其他应用程序获取 copy/pasted 图像到 LibreOffice 中,正如您所经历的那样,不是作为 SVG 矢量数据导入,而是作为光栅图形导入。但是:
以下(粘贴 URI 而不是直接 SVG 代码)对我有用:
echo "file://<path_to_file>" |xclip -in -selection "CLIPBOARD" -verbose -target text/uri-list
它似乎也适用于没有“file://”uri 方案前缀的路径:
echo "<path_to_file>" |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 其他程序似乎可以毫无问题地显示,尤其是数学公式在维基百科上(我相信维基使用 MathJax 将它们呈现为 SVG)。例如,维基百科中的以下 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
但如果作为本地文件导入会很好。