Am 04.07.2011 23:14, schrieb Gregory Pittman: > On 07/04/2011 02:45 PM, wibr wrote: >> Am 04.07.2011 20:22, schrieb Gregory Pittman: >>> On 07/04/2011 01:41 PM, wibr wrote: >>>> Hi, >>>> >>>> so I would like to use Scribus to create some flashcards. It should >>>> work >>>> like this: >>>> 1. I have a .txt file with my flashcards >>>> 2. I create two pages in Scribus how they will look like, one for each >>>> side of the flashcards >>>> 3. I will do some python magic, load the .txt and create many pages >>>> with >>>> flashcards. >>>> 4. I can edit the cards if I want or just export them to pdf. >>>> >>>> So here is my question: Should I manipulate the xml or let the script >>>> run in Scribus? >>>> >>>> I think editing the xml shouldn't be too hard, but I don't completely >>>> understand the file format, is there any recent documentation >>>> available? >>>> Especially I would like to know how I could duplicate pages. >>>> I had a look at it: <PAGE> is a page and it gets a number NUM, and >>>> <PAGEOBJECT> is something on a page and it has an attribute "OwnPage". >>>> So I tried to move pageobjects between pages by editing the "OwnPage" >>>> number, but that didn't work...so how does Scribus know, which object >>>> belongs to which page? >>>> >>>> Or maybe using python in Scribus would be easier? I am more familiar >>>> with xml editing, though... >>>> >>> >>> Hi Wilhelm, >>> >>> I would start by manually making a few cards, so that you can work out >>> document page size, what sort of font, font size and style, spacing, >>> etc., you want to use. >>> >>> After that, I would be inclined to use a script inside Scribus to make a >>> document from a text file, so that you can create pages as needed, with >>> frames, paragraph styles and so on. >>> You might make it less demanding on the scripting end by just putting >>> text into new frames on as many pages as needed, then applying the >>> styles in Scribus later. >>> Here is a simple script showing some of the methods: >>> http://wiki.scribus.net/canvas/Importing_addresses_from_a_text_file >>> >>> Having said that, it's worth making a 2-page document, then looking at >>> the SLA file to see how much work it would be to generate a file using >>> python outside of Scribus. I sense that you have a long way to go to >>> understand what parts of the file are used for various aspects of the >>> document. Even if you know xml, I think you'll find an SLA file >>> challenging. >>> >>> Another approach /might/ come from using text filters, but then I think >>> you would need to deal with the problem of making new pages and >>> frames... >>> >>> Greg >>> >>> ___ >>> Scribus Mailing List: scribus at lists.scribus.net >>> Edit your options or unsubscribe: >>> http://lists.scribus.net/mailman/listinfo/scribus >>> See also: >>> http://wiki.scribus.net >>> http://forums.scribus.net >>> >> >> Hi Greg, >> >> thanks for the quick reply. >> >> To be a bit more specific: >> I don't want to create the whole document in python. Let's say I want 8 >> flashcards on each DinA4 page. So I create two pages in Scribus, instead >> of the flashcard text I use dummy text like $def1 and $def2, everything >> formatted nicely like I want. >> The only thing I want to do with python is opening the xml, knowing >> exactly where the two pages are. Then I will just copy those pages as >> many times as needed, always replacing the dummy text with the real >> flashcards. >> I did something like that with svg and Inkscape once and it worked out >> very well. So I don't need or want to understand the whole Scribus xml, >> I would just need to know how the pages work. >> However, I will also look at the scripter API. > > I think this is going to be problematic, now that I look at the SLA > files. The page parameters happen one after another as <PAGE ..../> > tags, and contain some elements that relate to their position in the > document, PAGEYPOS for one. > After this comes a series of <PAGEOBJECT .../> tags, assigned to a > particular ordered page, but also having some elements that are absolute > distances from the top of the first page. You also may get conflicts > with naming the frames the same as you copy. > > How about this instead: > Make your 2 pages. Select all the objects on each page and save in the > Scrapbook as 2 separate objects, named so you remember which is which > for even-odd pages. > Now insert as many blank pages as you want. For each odd page, > right-click the odd-object in the Scrapbook, and one option will be > Paste to Page, and it will be pasted at the same coordinates as the > original. Do the same for the even pages/even-object. > > This shouldn't be so much work. > > Greg > > ___ > Scribus Mailing List: scribus at lists.scribus.net > Edit your options or unsubscribe: > http://lists.scribus.net/mailman/listinfo/scribus > See also: > http://wiki.scribus.net > http://forums.scribus.net >
Hi Greg, thanks for your suggestions. I had a look at the Scripter API and found that I could duplicate my pages using the importPage() command. Not the fastest way probably, but I don't see any "duplicatePages()" command. So I played around with it and I think it should do the job, together with some getPageItems(), set/getText(), ... Wilhelm
