Create a pull here https://github.com/JMarkMurphy/poi and I will look at it.
On Sat, Jun 29, 2019 at 6:12 PM Eliot Kimber <[email protected]> wrote: > I was able to make section-level headers and footers work but it required > copying WXPFHeaderFooterPolicy and changing two lines. > > The issue is that these methods: > > private void setFooterReference(Enum type, XWPFHeaderFooter wrapper) { > CTHdrFtrRef ref = > doc.getDocument().getBody().getSectPr().addNewFooterReference(); > ref.setType(type); > ref.setId(doc.getRelationId(wrapper)); > } > > > private void setHeaderReference(Enum type, XWPFHeaderFooter wrapper) { > CTHdrFtrRef ref = > doc.getDocument().getBody().getSectPr().addNewHeaderReference(); > ref.setType(type); > ref.setId(doc.getRelationId(wrapper)); > } > > Get the sectPr from the document even when a sectPr is provided on the > constructor, so even if you pass in a section's sectPr, the headers you > create end up getting associated with the document, not the section. > > The fix is simple: > > 1. Store the sectPr as a global variable in the constructor: > > // WEK: Store the sectPr > this.sectPr = sectPr; > this.doc = doc; > > 2. Use the stored sectPr when setting the references: > > private void setFooterReference(Enum type, XWPFHeaderFooter wrapper) { > // WEK: Use stored sectPr: > CTHdrFtrRef ref = sectPr.addNewFooterReference(); > ref.setType(type); > ref.setId(doc.getRelationId(wrapper)); > } > > private void setHeaderReference(Enum type, XWPFHeaderFooter wrapper) { > // WEK: Use stored sectPr: > CTHdrFtrRef ref = sectPr.addNewHeaderReference(); > ref.setType(type); > ref.setId(doc.getRelationId(wrapper)); > } > > With this change in my copy of the class section headers and footers work. > I added logic in my Wordinator code to add document-level headers to > sections when the section doesn't explicitly define the headers. This > matches what I think Word does when you create a new section manually and > matches the expectation of users of Wordinator. > > I can make a pull request for this change if its wanted. > > Cheers, > > E. > -- > Eliot Kimber > http://contrext.com > > > On 6/25/19, 9:22 AM, "Eliot Kimber" <[email protected]> wrote: > > Yeah, I'm still not sure how a section object would work because of > the way that they get translated to Word objects under the covers. > > What I have working at the moment is correct generation of section > breaks and page number controls but I haven't worked out how to set up the > headers and footers--I think it should be a matter of adding the header or > footer definition to the document and then adding references to them on the > CTSectPr for the section, but I haven't tried it yet. > > I think the correct behavior is to have sections use the default > header and footer if the section doesn't specify it's own (that's certainly > what I would expect), but I don't know if that's how Word actually works. > > Cheers, > > E. > > -- > Eliot Kimber > http://contrext.com > > > On 6/24/19, 3:16 PM, "Mark Murphy" <[email protected]> wrote: > > I don't think there is anyone working on sections. But, I would > want a > section class that is used by the document class much like headers > and > footers. The document object would need to be able to create, > retrieve, > move, and remove sections. In addition, it might be nice to be > able to mark > a particular section as the default section. That's really not the > way that > Word does it, so that functionality would have to be thought about > as far > as how it would work. In Word, the last section is the default > section. And > other than the default section, section information is kept in the > last > paragraph in the section. That paragraph can be otherwise empty. > > On Sat, Jun 22, 2019 at 2:31 PM Eliot Kimber <[email protected]> > wrote: > > > I need to implement generation of sections in DOCX. Looking at > the code in > > trunk I see some code that reads or makes CTSectPr objects (e.g., > > XWPFDocument#createFooter) but it doesn't look like full section > support is > > there. > > > > I would expect an XWPFSection or XWPFSectPR class for working > with > > sections, and maybe methods on XWPFDocument for creating or > setting them, > > although I haven't worked out my exact API needs yet. > > > > Is anyone actively working on more complete section support or > is there > > any design work I could use to take this forward? > > > > I'll implement some ad-hoc section creation stuff in my > Wordinator code > > but I'd like to fold anything I come up with back into the XWPF > API. > > > > Cheers, > > > > E. > > -- > > Eliot Kimber > > http://contrext.com > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
