如何从Mac上的显示名称找到字体的完整路径?

我使用Photoshop的JavaScript API来查找给定PSD中的字体。

鉴于API返回的字体名称,我想要查找光盘上字体名称对应的实际物理字体文件。

这一切都发生在OSX上运行的python程序中,所以我想我正在寻找一个:

  • 一些Photoshop JavaScript
  • Python函数
  • 我可以从python调用的OSX API
0
额外 编辑
意见: 2
同意。投票结果太局部。
额外 作者 Anonymous User,
我投票不结束。很多新来WP的人可能会在WP-Admin中遇到404错误,最终归结为插件或主题中的错误,或者他们对重写规则的影响(或者存储在数据库中的wp-options或者。 htaccess文件)。相反,我们应该做的是提供一般的故障排除步骤,以便更快地找出问题区域。
额外 作者 Chris Jester-Young,
我同意所以我也要投票结束。
额外 作者 Michael Haren,
我同意所以我也要投票结束。
额外 作者 Michael Haren,
那么,即使这是一个支持问题,它有足够的信息,至少可以提出一些方法来快速解决问题。
额外 作者 steve_mtl,
不是一个PITA,但这个是真的是一个支持问题,而不是我们在这里要介绍的内容;我要投票结束。改为 http://wordpress.org/support 。如果您进行一些测试并缩小您的问题以适用于不仅仅是您的情况,可能会在此处提出可接受的问题。再次,遗憾的是要这样,但我们的WordPress的答案应该适用于所有用户和吨的支持请求将杀死。
额外 作者 MikeSchinkel,

7 答案

调试这个的唯一方法是一次禁用一个插件,每次在禁用另一个插件之前尝试重现问题。从与WP管理有关的插件开始,然后转到常规主题插件,小部件等。

检查“未找到”页面,更好地为您服务(使用Opera浏览并打开信息面板,它将显示标题,或者使用Firefox浏览器,并启用启用了“网络”面板的Firebug),并搜索所有看你的插件是否可以直接提供。如果没有,请查看Web服务器的日志以了解它无法提供的确切资源;一个插件可能会做一些奇怪的重定向或重写,因此它不一定是您在浏览器中看到的导致404的URL。

4
额外
在70个插件中,如果能找到一种超快的方法,而无需手动停用和测试每个插件,例如使用插件测试程序文件,那将非常简洁。
额外 作者 Chris Jester-Young,
我看到你已经编辑了你的原始答案,并提供了一个很棒的提示,可以更快地找到答案
额外 作者 Chris Jester-Young,
谢谢,asbjornu。在我和家人度假之后,我会考虑这样做。
额外 作者 Ryan Olson,
我查看了服务器日志,找不到比“脚本头过早结束”更具体的内容。猜猜它不可能那么简单...
额外 作者 Ryan Olson,

这只是一个粗略的想法:如果你得到了一个“真正的”404错误(设置了头文件),那么你可以搜索你的插件并寻找 PHP header()函数和404号码。这可以将插件的数量从70减少到一些。那么你只需要检查那些。

这可以通过像Eclipse PDT这样的IDE轻松完成,它提供了搜索特定的PHP函数调用。

接下来,但不能保证它成功地工作,是编写一个插入头部设置的插件,然后给你跟踪哪个代码实际上设置了一个潜在的404(回溯)。这只有在插件使用WordPress API函数时才有效。无论WP API如何,寻找PHP函数的第一种方法都可以工作。

3
额外
听起来很有希望。我的假期之后还有别的东西要看。 :)
额外 作者 Ryan Olson,
我设法在仍然出城时做了一些观察,并且只发现我的备份插件似乎要求输出404。但是,Firebug表明它确实是404。一些进展......但是我现在遇到了触发问题的麻烦,所以我想我会休息一下。我讨厌间歇性的错误!
额外 作者 Ryan Olson,

需要更多信息:

1)为什么有这么多插件?

2)您的托管服务提供商运行什么操作系统?

3)什么网络服务器?

4)你有权访问httpd服务器日志,尤其是错误日志吗?

5)错误日志在围绕这些问题的时间范围内说了些什么?

(现在,真相被告知,如果我们普遍推论“平均运行WordPress的J6P可能有这个确切的问题,我们可以先指导J6P回答至少以上5个问题......)

2
额外
现在你提到它了,我也在DH网站上看到这些随机错误。当我试图在MS安装并运行导入程序时进行网络升级时,尤其如此。奇怪。
额外 作者 Bernard,
我拥有所有这些插件,因为我使用它们提供的功能;为什么呢?错误日志根本不说。我在DreamHost上,所以我认为服务器使用Apache httpd运行定制的Debian版本。
额外 作者 Ryan Olson,

open up a terminal (Applications->Utilities->Terminal) and type this in:

locate InsertFontHere

这将吐出每个有你想要的名字的文件。

警告:可能有很多事情要通过。

0
额外

Cocoa中必须有一个方法来获取字体列表,然后你必须使用PyObjC绑定来调用它。

根据你需要他们的东西,你可能只需要使用类似下面的东西..

import os
def get_font_list():
    fonts = []
    for font_path in ["/Library/Fonts", os.path.expanduser("~/Library/Fonts")]:
        if os.path.isdir(font_path):
            fonts.extend(
                [os.path.join(font_path, cur_font) 
                 for cur_font in os.listdir(font_path)
                ]
            )
    return fonts
0
额外

不幸的是,唯一不被弃用的API位于ApplicationServices框架中,该框架没有桥支持文件,因此在网桥中不可用。如果您想使用ctypes,则可以在查找ATSFontRef后使用ATSFontGetFileReference。

Cocoa没有任何本地支持,至少从10.5开始获取字体的位置。

0
额外

我一直无法找到任何直接做到这一点的事情。我想你必须迭代系统上的各种字体文件夹: / System / Library / Fonts/ Library / Fonts ,并且可能有用户-level目录以及〜/ Library / Fonts

0
额外