Saya ingin menjalankan skrip lakukan beberapa manipulasi PDF dalam Scribus non-interaktif, tetapi saya tidak dapat menemukan dokumentasi untuk mengatakan dengan pasti apakah ini mungkin, dan jika demikian, bagaimana.
Saya ingin menjalankan skrip lakukan beberapa manipulasi PDF dalam Scribus non-interaktif, tetapi saya tidak dapat menemukan dokumentasi untuk mengatakan dengan pasti apakah ini mungkin, dan jika demikian, bagaimana.
Jawaban:
Ini mungkin, tetapi Anda membutuhkan Scribus "tidak stabil" & gt; = 1.5.1 (ini adalah versi pengembangan - untuk siapa pun di masa depan, gunakan Scribus stabil & gt; = 1.6 saat habis) untuk memulai Scribus dengan naskah.
Saya harus mengkompilasi ini dari sumber di Debian.
Selain itu, opsi --no-gui scribus tampaknya tidak berfungsi (pada 1.5.2), jadi saya gunakan xvfb-run
untuk menyembunyikannya "dari layar".
saya menggunakan &> /dev/null
untuk menyalurkan semua informasi debug yang dicetak ke stderr, yang terlalu berisik untuk berguna. Tetapi Anda harus mematikannya saat membuat skrip Anda bekerja pada awalnya.
sudo apt-get install xvfb
xvfb-run scribus --no-gui --no-splash -py scribus2pdf.py -o OUTPUT.pdf -- INPUT.sla &> /dev/null
Catatan ini adalah sintaks yang diusulkan hanya bekerja dengan Scribus 1.5.2. Anda mungkin harus memformat argumen untuk skrip python secara berbeda pada versi lain dari Scribus. Perhatikan juga bahwa Scribus menggunakan Python 2, bukan 3.
Catatan file yang disimpan dalam Scribus 1.5 TIDAK kompatibel dengan Scribus 1.4
Ini milik saya 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)
Saat ini itu hanya mungkin melalui skrip startup Python. Scribus masih akan memulai UI, jadi pada server tanpa kepala Anda perlu menginstal Xvfb atau Xdummy.