【问题标题】:Can I scpecify or get Abjad (v3.2) output PDF file's path or name after creating it?创建后,我可以指定或获取 Abjad (v3.2) 输出 PDF 文件的路径或名称吗?
【发布时间】:2021-06-09 22:23:57
【问题描述】:

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

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

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

我创建 PDF 文件的 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)

【问题讨论】:

  • 不知道对你有没有帮助,但是你可以使用abjad.PersistenceManager手动设置Abjad生成的.ly和.pdf文件的输出路径(相对让 Abjad 在文件夹 ~/.abjad/output 中创建它们。下面是一个如何使用它的示例:创建lilypond_file 变量后,将其用作abjad.PersistenceManager(lilypond_file).as_pdf('~/output_score.pdf')。如果这有帮助,请告诉我,我可以将其写为正确答案而不是评论。
  • @gilbertohasnofb 成功了,非常感谢。但我确实有一些要补充的。您的代码适用于 abjad 3.0。在 v3.2 中,它应该像 abjad.persist.as_pdf(lilypond_file, "/path/to/file.pdf")。它帮助了我并满足了我的需求,感激不尽!
  • 是的,不幸的是,Abjad 的向后兼容性往往很差,他们不断重命名函数和类,所以总是很棘手。我还没有从 3.1 升级,因为我目前正在进行一些项目。我现在将创建一个反映这些事情的答案。

标签: python pdf flask metadata lilypond


【解决方案1】:

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

要使用它,首先创建一个实例化abjad.LilyPondFile 的lilypond_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')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多