Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

combine output in a single sla #9

Closed
berteh opened this issue Aug 20, 2015 · 9 comments · Fixed by #16
Closed

combine output in a single sla #9

berteh opened this issue Aug 20, 2015 · 9 comments · Fixed by #16
Assignees
Milestone

Comments

@berteh
Copy link
Owner

berteh commented Aug 20, 2015

To join the efforts on ScribusGenerator and Scribus-Data-Merger we need ScribusGenerator to generate a single sla.

@berteh berteh self-assigned this Aug 20, 2015
@berteh berteh added this to the 2.0 milestone Aug 20, 2015
@berteh
Copy link
Owner Author

berteh commented Aug 20, 2015

Some pseudo-code on how to do this from retro-engineering sla 1.4.3 format is below (mix of XPath predicates and procedural)
I'll have to check the 1.5.x format to see if it's similar... and check if I need to do something for the groups update with PAGEOBJECT@GROUPS.

rowscount = data size (or to-from+1 once range is implemented)    
pagescount = /SCRIBUSUTF8NEW/DOCUMENT@ANZPAGES
pageheight = /SCRIBUSUTF8NEW/DOCUMENT@PAGEHEIGHT
vgap = /SCRIBUSUTF8NEW/DOCUMENT@GapVertical (40 by default)
groupscount = max(//PAGEOBJECT@NUMGROUP)

for each data row:
    voffset = (pageheight+vgap) * row
    copy & substitute all /SCRIBUSUTF8NEW/DOCUMENT/PAGE ; @PAGEYPOS += voffset ;  @NUM += pagescount
    copy & substitute all /SCRIBUSUTF8NEW/DOCUMENT/PAGEOBJECT ; @YPOS  += voffset ; @OwnPage += pagescount ;  (and @NUMGROUP += groupscount if not 0)

/SCRIBUSUTF8NEW/DOCUMENT@ANZPAGES += (pagescount *  rowscount)

@berteh
Copy link
Owner Author

berteh commented Aug 21, 2015

have a single sla generated, instead of many, is now fully working in Scribus 1.4.3 in branch "singleOutput", form command line (SLA only) and GUI (SLA and/or PDF output).

Could you @garydale and @bjarnesvanberg please test and feed back?

@berteh
Copy link
Owner Author

berteh commented Aug 22, 2015

merged in master after satisfactory testing in 1.4.3 and 1.5.1svn Let me know if you find examples that don't work!

@berteh
Copy link
Owner Author

berteh commented Sep 14, 2015

for future reference: to update linked frames (as in bb183cf), add (in the loop):

if version == 1.4*
    @NEXTITEM += (objscount * row) if not -1
    @BACKITEM += (objscount * row) if not -1
if version == 1.5*
    @ItemID += (objscount * row) [modulo max ItemID]
    @NEXTITEM += (objscount * row) [modulo max ItemID] if not -1
    @BACKITEM += (objscount * row) [modulo max ItemID] if not -1

where objscount = count(.//PAGEOBJECT')

@StefanWerner23
Copy link

I've a problem with the single output (Scribus 1.4.6):

  1. Create a new document with 2 single pages
  2. Add a variable to one of a page
  3. Create a csv file containing at least 2 values for the variable
  4. Create a single SLA or PDF with ScribusGenerator

The result is a wrong SLA/PDF, where the content of the 3rd page starts at the 2nd and so on. Is this a bug? In shiftPagesAndObjects, does voffset has to be multiplied by pagescount?

Kind reagrds

@berteh
Copy link
Owner Author

berteh commented May 26, 2016

Hello @StefanWerner23,

The current implementation relies indeed on the number of pages announced in the document layout to compute the position of generated object in merged mode.

So, if you have 2 single pages of content, kindly select a template with 2 pages (like double folded) before calling the script, and switch it back to single page template after the generation.

This was done on purpose to accommodate the way scribus displays multiple pages of a single document easily... but as it is not flexible nor user friendly, if you want to propose a code change that covers your use case more accurately don't hesitate! Otherwise I'll put it on my to-do list, but with no close deadline.

Thanks for the report.
B.

@berteh
Copy link
Owner Author

berteh commented Mar 12, 2017

even less practical with new version of scribus where no 3 or 4 page document can be created easily... double-page seems to be the maximum.

@S1SYPHOS
Copy link
Contributor

S1SYPHOS commented Mar 8, 2023

Hey there @berteh!
This may be closed, if I am not mistaken?

@berteh
Copy link
Owner Author

berteh commented Mar 9, 2023

indeed. thanks.

@berteh berteh closed this as completed Mar 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants