Scribus:如何找到使用过两次的图像?

Scribus: How can I find images used twice?

如何找到在 scribus 文档中多次使用的图像?

是否可以在 scribus 文档中搜索多次使用的图像?

不,不是真的。

但是在"Extras > Manage Image"中您可以对您使用过的图像有一个概览。 它可能会帮助您检测重复项。

您还可以编写一个简单的 Python 脚本,遍历文档中的所有图像并告诉您在哪些页面上有重复...


根据您在评论中的反馈,我浏览了 https://wiki.scribus.net/canvas/Category:Scripts 并编写了一个简单的脚本,列出了您文档中每个图像的路径:

import scribus

for page in range(1, scribus.pageCount() + 1):
    scribus.gotoPage(page)
    for item in scribus.getPageItems():
        if item[1] == 2:
            print(scribus.getImageFile(item[0]))

您可以轻松地对其进行调整以检测重复的图像并对其进行处理。

您可以通过进入帮助并查找 "For Developers > Scripter API" 或在 Scribus Wiki 中获得有关 Scribus Python API 的进一步帮助。

如果您制作的脚本对其他人有用,请不要忘记发布并在此处添加 link!

有了这个 script 我在文本文件中得到了可用的数据。从那里我可以使用 Perl 过滤掉多次使用的图像。


我是如何执行脚本的:

用 Scribus 打开 sla 文件。

Select 在 Scribus 菜单栏 Scripter -> Show Console 中打开一个新的 window:脚本控制台

在脚本控制台菜单栏中:

File -> Open 和 select python 脚本;然后

Script -> Run

如果我们重用 a.l.e 所示的代码块, 我们可以天真地使用哈希图来确保图像是否 尚未找到。

运行 作为 Scribus 脚本:

import scribus

db = {}

for page in range(1, scribus.pageCount() + 1):
    scribus.gotoPage(page)
    for item in scribus.getPageItems():
        if item[1] == 2:
            k = scribus.getImageFile(item[0])
            if k in db:
                db[k] += 1
                print(k, db[k])
            else:
                db[k] = 1