如何从PSD文件中提取文本?

18

我需要从Linux上的Photoshop PSD文件的图层中提取文本。有人知道如何做吗?Gimp会光栅化文本,因此您无法复制和粘贴它。请注意,我没有Photoshop程序。


类似于这个问题:https://dev59.com/qHRA5IYBdhLWcg3wuAYo - Lars Haugseth
相似吗?我也有同样的问题。 - jrosell
5个回答

29

你尝试过使用vim吗?

VIM附带了一个标志,可以让你编辑二进制文件。

我曾试着使用以下方式编辑PSD文件:

vim -b file.psd
这是我在编辑文件时得到的示例:
                            <dict>
                                    <key>com.apple.print.PageFormat.PMAdjustedPageRect</key>
                                    <array>
                                            <real>0.0</real>
                                            <real>0.0</real>
                                            <real>576</real>
                                            <real>734</real>
                                    </array>
                                    <key>com.apple.print.ticket.stateFlag</key>
                                    <integer>0</integer>
                            </dict>

我在这样做时得到了一些文本,但并不是所有的文本都通过这种方式传递。 - rado
1
好的,现在我已经在我的第10个PSD文件上了,你需要使用正则表达式来处理两个字符,以使其工作(至少对于CS3 PSD格式):将"^0"替换为空字符串,并将^M替换为"\r",这样可以更容易地查看文本。 - Screenack
我在Notepad++中打开了psd文件并更改为适当的编码,然后它就可以工作了。谢谢。 - inam101

17
刚刚在NPM软件包psd-cli中发布了此功能。使用它轻松提取文本内容,而无需手动遍历文件的繁琐过程...
一行命令安装(需要已安装NodeJS/NPM) npm install -g psd-cli
然后您可以在终端中输入以下命令来使用它 psd myfile.psd -t
这将创建myfile.txt,其中包含从每个PSD图层提取的所有文本以及附加的图层结构。
尽情享受吧! npmjs.org软件包描述

抱歉,这在我的情况下没有起作用,也许文件太大了,图层名称太长(一团糟)。FYI,我得到了这个:处理myfile.psd...[TypeError:无法读取null的属性'replace'] - aesede
如果您能提供一个示例文件,并在可能的情况下在Github上提交问题,我很乐意为您调试此问题。 - kartsims
对我来说非常好用,比起似乎无法处理任何UTF8字符的“strings”要好得多。 - adipasquale
不需要使用 -g 标志(全局安装)。只需运行 npm install psd-cli,然后执行 ./node_modules/.bin/psd myfile.psd -t 命令。完成后,您可以删除 node_modules 目录(以及 package-lock.json 文件)。不留痕迹。 - arcol

14
strings FILENAME > temp.txt

temp.txt文件中将包含来自该文件的所有纯文本字符串,包括一些附加的PSD设置。您需要手动搜索此文件以找到所需的文本。


1
这个工具非常好用。但是我需要处理一个非常大的PSD文件,导致cat temp.txt永远无法结束,所以我使用了-d标志来缩小从PSD读取的文本量,并使用-e S告诉strings工具我想要的文本是UTF-8编码(如果没有这个选项,我会得到混乱的拉丁字符)。完整的命令是:strings -d -e S 文件名 > temp.txt - aesede

3
你可以使用Photopea,它不是桌面应用程序,而是在浏览器中运行,因此您无需安装任何内容,只需打开psd文件并进行编辑或像在Photoshop中一样复制文本。 https://www.photopea.com/

2

我找了一下,但是没有看到。你能提供一个更具体的链接吗? - rado
1
如果有人偶然发现了这个页面,它在这里:http://www.bram.us/2008/10/30/ps_bramustextconvert-psd2txt-and-txt2psd-for-the-masses/。 - kikito
这个网站的脚本似乎需要Photoshop,但这被用户的问题所排除。 - Tim Howland
这个选项与omgmog分支的比较在这里:http://graphicdesign.stackexchange.com/questions/8411/is-there-a-simple-way-to-copy-all-text-in-psd-file/36090#36090 - ptim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接