Export all text

This script can be found in 1.3.3.x versions of Scribus as Extract Text

Check below for a modification of this file to only list image frames and the path to the image file.


 * 1) !/usr/bin/env python
 * 2) File: extract_text.py - Extracts the text from a document, saving to a text file
 * 3) also lists image files with pathnames
 * 4) 2006.03.04 Gregory Pittman
 * 5) 2008.02.28 Petr Vanek - fileDialog replaces valueDialog
 * 6) This program is free software; you can redistribute it and/or modify
 * 7) it under the terms of the GNU General Public License as published by
 * 8) the Free Software Foundation; either version 2 of the License, or
 * 9) (at your option) any later version.

import scribus

def exportText(textfile): page = 1 pagenum = scribus.pageCount T = [] content = [] while (page <= pagenum): scribus.gotoPage(page) d = scribus.getPageItems strpage = str(page) T.append('Page '+ strpage + '\n\n') for item in d:           if (item[1] == 4): contents = scribus.getAllText(item[0]) if (contents in content): contents = 'Duplication, perhaps linked-to frame' T.append(item[0]+': '+ contents + '\n\n') content.append(contents) elif (item[1] == 2): imgname = scribus.getImageFile(item[0]) T.append(item[0]+': ' + imgname + '\n') page += 1 T.append('\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 (*.txt);;All Files (*)') try: if textfile == '': raise Exception exportText(textfile) except Exception, e:       print e

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

What if I don't want the text, just a list of images?
This is a simple matter of changing this: if (item[1] == 4): contents = scribus.getAllText(item[0]) if (contents in content): contents = 'Duplication, perhaps linked-to frame' T.append(item[0]+': '+ contents + '\n\n') content.append(contents) elif (item[1] == 2): imgname = scribus.getImageFile(item[0]) T.append(item[0]+': ' + imgname + '\n')

to this: if (item[1] == 2): imgname = scribus.getImageFile(item[0]) T.append(item[0]+': ' + imgname + '\n')

so that you are only picking up image frames instead of text and image frames.