[scribus] getAllText Sometimes Failing

Matt Miller matt.miller at fastmail.com
Thu Mar 4 15:56:46 UTC 2021



On Thu, Mar 4, 2021, at 06:32, Gregory Pittman wrote:
> On 3/3/21 8:38 PM, Matt Miller wrote:
> > I've attached a test case that seems to show that getAllText() is sometimes succeeding and sometimes failing. When it fails it doesn't throw an error, but it just retrieves a string of length 1, instead of retrieving the actual text of the chain. I see this on 1.5.6.1 and 1.5.7.svn, in both Linux and Windows.
> > 
> > To run the test open the .sla and from the script menu execute chapter_heading_style.py.  The text frame name "debug" at the very top will contain the word "Error" if the getAllText() call in the script fails.  What I see is that it works fine the first time, then it fails on every subsequent try, until I alter something on the document.  For example, if I grab and move the "debug" text frame a bit then getAllText() will succeed once, and then fail repeatedly again.  Saving and reopening the document also causes the script to work again the first time.
> > 
> > Thanks.
> > 
> > 
> > --
> > 
> >   Matt Miller
> >   mailto:matt.miller at fastmail.com
> > 
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL: <http://lists.scribus.net/pipermail/scribus/attachments/20210303/83076fa0/attachment.htm>
> > -------------- next part --------------
> > A non-text attachment was scrubbed...
> > Name: 7.25x9-Wide-Margin-Self-Pronouning_Mal.sla
> > Type: application/octet-stream
> > Size: 83787 bytes
> > Desc: not available
> > URL: <http://lists.scribus.net/pipermail/scribus/attachments/20210303/83076fa0/attachment.obj>
> > -------------- next part --------------
> > A non-text attachment was scrubbed...
> > Name: chapter_heading_style.py
> > Type: application/octet-stream
> > Size: 3084 bytes
> > Desc: not available
> > URL: <http://lists.scribus.net/pipermail/scribus/attachments/20210303/83076fa0/attachment-0001.obj>
> 
> Hi Matt,
> 
> I have a hard time trying to figure out what you're trying to do with 
> this script. Somewhere in your Scribus installation there should be a 
> folder named samples.
> On my Linux (Fedora), it's in /usr/share/scribus. Inside samples is a 
> script named ExtractText.py, which uses getAllText() to collect all the 
> text from a document and save it in a text file. This still works in 
> 1.5.x.

Yes, I verified this works fine for me.  Thanks.

Digging into my code more I see that I was calling selectText() to select the first character of the paragraph I wanted to apply a custom paragraph style to, but then I was not deselecting the text.  A subsequent call to getAllText() would then return only the single character of that selected text.  To address this I've adopted a standard in my code of always calling selectText (0, 0, <text_frame>) right after making any call that relies on certain text being selected.

So, this problem is solved.

> 
> 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
>

-- 

  Matt Miller
  mailto:matt.miller at fastmail.com



More information about the scribus mailing list