Scribus xhtml using Scripter

Why not just do this straight up to xhtml with Scripter? Well, why not?

This might serve as a quick way to get the content to a format easily importable to an ePub editor like Sigil.

Don't forget the siblings: Scribus XML using Scripter and Scribus files as XML.

export2xhtml.py

 * 1) !/usr/bin/env python
 * 2) File: export2xhtml.py - Extracts the content from a document, saving to an xhtml file
 * 3) 2013.11.01 Gregory Pittman
 * 4) This program is free software; you can redistribute it and/or modify
 * 5) it under the terms of the GNU General Public License as published by
 * 6) the Free Software Foundation; either version 2 of the License, or
 * 7) (at your option) any later version.

import scribus

def exportText(textfile): page = 1 pagenum = scribus.pageCount T = [] content = [] T.append('\n') T.append('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n') T.append('\n \n') T.append(' Scribus ' + str(scribus.scribus_version_info[0]) + '.' + str(scribus.scribus_version_info[1]) + '.' + str(scribus.scribus_version_info[2]) + str(scribus.scribus_version_info[3]) + ' \n') while (page <= pagenum): scribus.gotoPage(page) pagesize = scribus.getPageSize d = scribus.getPageItems strpage = str(page) T.append(' Part '+ strpage + ' \n') for item in d:           if (item[1] == 4): filtered = ' ' contents = scribus.getAllText(item[0]) if (contents in content): contents = '' else: for char in contents: if (ord(char) == 28): char = ' ' elif (ord(char) == 27): char = chr(10) elif (ord(char) == 38): char = '&amp;' elif ((ord(char) == 13) or (ord(char) == 10)): char = " \n "        # the added newline makes the source look better filtered = filtered + char contents = filtered T.append(' \n') content.append(contents) elif (item[1] == 2): imgname = scribus.getImageFile(item[0]) imgsize = scribus.getSize(item[0]) picwidth = int(700 * imgsize[0]/pagesize[0]) T.append(' \n') page += 1 T.append(' \n \n') output_file = open(textfile,'w') output_file.writelines(T) output_file.close endmessage = textfile + ' was created' scribus.messageBox("Finished", endmessage,icon=0,button1=1)

if scribus.haveDoc: textfile = scribus.fileDialog('Enter name of file to save to', \                                 filter='Text Files (*.xhtml);;All Files (*)') try: if textfile == '': raise Exception exportText(textfile) except Exception, e:       print e

else: scribus.messageBox('Export Error', 'You need a Document open.', \                      icon=0, button1=1)