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

2024-05-26 11:07:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个flask服务器,它使用abjad v3.2生成音乐PDF

在使用abjad.show()之后,我想获取所创建文件的路径。 我可以使用abjad.Configuration().abjad_output_directory获得输出目录,但不能使用我创建的特定文件

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

创建PDF文件的My python代码:

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)

Tags: 文件路径服务器flaskpdftitleshowfile
1条回答
网友
1楼 · 发布于 2024-05-26 11:07:44

在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')

相关问题 更多 >