Запуск скрипт-файла без GUI

Я хотел бы запустить скрипт сделать некоторые манипуляции PDF в Scribus неинтерактивно, но я не могу найти документацию, чтобы точно сказать, возможно ли это, и если да, то как.

1
задан Community
23.03.2023 15:55 Количество просмотров материала 2406
Распечатать страницу

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)
3
отвечен Ben Sarah Golightly 2023-03-24 23:43

в настоящее время это возможно только с помощью скрипта на Python. Scribus все равно запустит UI, поэтому на безголовый сервер нужно установить Xvfb или Xdummy.

0
отвечен user322483 2023-03-25 02:00

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх