我可以在创建后指定或获取 Abjad (v3.2) 输出 PDF 文件的路径或名称吗?

Can I scpecify or get Abjad (v3.2) output PDF file's path or name after creating it?

我有一个使用 abjad v3.2 生成音乐 PDF 的烧瓶服务器。

使用abjad.show()后,我想获取创建文件的路径。 我可以通过使用 abjad.Configuration().abjad_output_directory 而不是我创建的特定文件来获取输出目录。

我的问题是如何获取我刚刚创建的文件(不是文件夹而是特定文件)的路径以便将其发回给用户?

我的 python 创建 PDF 文件的代码:

staff = abjad.Staff(abjad_notes)

# attach BPM to notes file
metronome_mark = abjad.MetronomeMark((1, 4), bpm)
abjad.attach(metronome_mark, staff[0])

# creates lilypond file object
lilypond_file = abjad.LilyPondFile.new(staff)

# notes title
lilypond_file.header_block.title = abjad.Markup(title)

# show PDF on screen
abjad.show(lilypond_file)

在 Abjad 3.2 中,您可以使用 abjad.persist 手动设置由 Abjad 生成的 .ly.pdf 文件的输出路径(而不是让 Abjad 在默认文件夹 ~/.abjad/output).

要使用它,首先创建一个实例化 abjad.LilyPondFilelilypond_file 变量,然后将其用作 abjad.persist.as_pdf(lilypond_file, '/path/to/file.pdf')。在上面的最小示例中,这变为:

staff = abjad.Staff(abjad_notes)

# attach BPM to notes file
metronome_mark = abjad.MetronomeMark((1, 4), bpm)
abjad.attach(metronome_mark, staff[0])

# creates lilypond file object
lilypond_file = abjad.LilyPondFile.new(staff)

# notes title
lilypond_file.header_block.title = abjad.Markup(title)

# save pdf file at a custom location
abjad.persist.as_pdf(lilypond_file, '/path/to/file.pdf')