Isso é possível, mas você precisa do Scribus não-estável "= 1.5.1 (esta é uma versão de desenvolvimento - para qualquer um no futuro, use o Scribus estável > = 1.6 quando estiver fora) para iniciar Scribus com um script.
Eu tive que compilar isso a partir do código fonte no Debian.
Adicionalmente, a opção --no-gui do scribus na verdade não parece funcionar (a partir de 1.5.2), então eu uso xvfb-run
para escondê-lo "fora da tela".
Eu uso &> /dev/null
para enviar todas as informações de depuração impressas para stderr, o que é muito barulhento para ser útil. Mas você vai querer desativar isso quando começar seu script a funcionar inicialmente.
sudo apt-get install xvfb
xvfb-run scribus --no-gui --no-splash -py scribus2pdf.py -o OUTPUT.pdf -- INPUT.sla &> /dev/null
Nota esta é uma sintaxe proposta trabalhando apenas com o Scribus 1.5.2. Você pode ter que formatar os argumentos para o script python de forma diferente em outras versões do Scribus. Note também que o Scribus usa o Python 2, não o 3.
Arquivos de anotação salvos no Scribus 1.5 NÃO são retrocompatíveis com o Scribus 1.4
Aqui está o meu scribus2pdf.py
# Requires Scribus >= 1.5.1
# Tested on Scribus 1.5.2
# Usage:
# scribus --no-gui --no-splash -py scribus2pdf.py -o OUTPUT.pdf -- INPUT.sla &> /dev/null
# To hide the gui properly, prefix the above with xvfb-run
import sys
import getopt
import scribus
try:
opts, args = getopt.getopt(sys.argv[1:],"o:")
except getopt.GetoptError as e:
print(e)
sys.exit(1)
for opt, arg in opts:
if opt == "-o":
dest = arg
if not dest: sys.exit(1)
if scribus.haveDoc() :
pdf = scribus.PDFfile()
pdf.file = dest
pdf.save()
else:
print("Expected input")
sys.exit(1)