[Scribus] Differences between startup script and regular script
Yegor Jbanov
yegor.jbanov
Fri Dec 7 07:28:37 CET 2007
Hi,
What is the difference between running a Scripter script during
startup and running the same script using the Script menu?
I am running Scribus 1.3.3.8 on Ubuntu 7.04, GhostScript 8.15.4.
I wrote a script which embeds a simple HTTP server into Scribus
(BaseHTTPServer provided with standard Python). When I run it from the
menu it works. I can access the server from the browser and the server
can access Scribus API and generate output from my documents.
When I run it as a startup script Scribus crashes with a message
"Scribus crashes due to Signal #11" upon the first HTTP request from
the browser.
Here's the console output:
Scribus Crash
-------------
Scribus crashes due to Signal #11
Calling Emergency Save
Saving: /tmp/scribus-server/serverpI2QPI/processors/invProc/invoice.sla.emergency
Segmentation fault (core dumped)
(remind me again where does the core gets dumped so I could analyze it?)
I am not sure where exactly it crashes in my Python code. I will
investigate further. As you see it tries to save the document I open
for this particular HTTP request, so it must be somewhere after the
document is opened. I suspect it has something to do with PDF export.
(BTW, don't pay attention to the /tmp/scribus-server/... folders.
These have nothing to do with Scribus. I create these myself.)
Here's the piece of code I am running (note again, it works when I run
it manually from the menu):
# Location of the current sources
(srcLocation, scriptFile) = os.path.split(__file__)
# Open Scribus document
scribus.openDoc(srcLocation + '/invoice.sla')
# Save as PDF first
pdfFilePath = workDir + '/invoice.pdf'
pdf = scribus.PDFfile()
pdf.file = pdfFilePath
pdf.save()
# Package up the result into a deliverable file
if (isPreview):
# Convert PDF to PPM
ppmFilePref = workDir + '/invoice'
ppmCommand = 'pdftoppm -f 1 -l 1 ' + pdfFilePath + ' ' + ppmFilePref
os.popen(ppmCommand)
# Convert PPM to JPG
Image.open(ppmFilePref + '-000001.ppm').save(resultFile)
else:
# Zip the contents into the resultFile
archive = zipfile.ZipFile(resultFile, 'w')
archive.write(pdfFilePath)
archive.close()
# Close Scribus template document
scribus.closeDoc()
Any pointers will be appreciated.
Thanks,
Yegor
More information about the scribus
mailing list