Я хотел бы запустить скрипт сделать некоторые манипуляции PDF в Scribus неинтерактивно, но я не могу найти документацию, чтобы точно сказать, возможно ли это, и если да, то как.
Запуск скрипт-файла без GUI
2 ответа
это возможно, но вам нужен "нестабильный" Scribus >= 1.5.1 (это версия для разработки-для тех, кто в будущем, используйте стабильный Scribus >= 1.6, когда его нет), чтобы начать Scribus со скриптом.
мне пришлось собрать из исходников в Debian.
кроме того, опция --no-gui scribus на самом деле не работает (начиная с 1.5.2), поэтому я использую xvfb-run
, чтобы скрыть его "вне экрана".
я использую &> /dev/null
в трубку всю информацию отладка печатных stderr, который слишком шумный, чтобы быть полезным. Но вы захотите отключить его, когда ваш скрипт будет работать изначально.
sudo apt-get install xvfb
xvfb-run scribus --no-gui --no-splash -py scribus2pdf.py -o OUTPUT.pdf -- INPUT.sla &> /dev/null
Примечание это предлагаемый синтаксис, работающий только с Scribus 1.5.2. Возможно, вам придется форматировать аргументы для скрипта python по-другому в других версиях Scribus. Обратите внимание, что Scribus использует Python 2, а не 3.
Примечание файлы, сохраненные в Scribus 1.5 не совместимы с файла 1.4
вот мой 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)
в настоящее время это возможно только с помощью скрипта на Python. Scribus все равно запустит UI, поэтому на безголовый сервер нужно установить Xvfb или Xdummy.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]