Since footnotes and endnotes have essentially the same functionality, it
might be good to create a single abstract class that handles the common
bits. Then it should be trivial to extend the process for endnotes.

On Sat, Jul 21, 2018, 7:10 AM Eliot Kimber <[email protected]> wrote:

> Reviewing the OOXML specs it is the case that the current XWPF API does
> not accommodate end notes as it should.
>
> There needs to be separate XWPFEndnotes and XWPFEndnote classes and
> document- and section-level code to create and manage them.
>
> I can take that on as a separate activity once we're happy with the
> enhanced bottom-of-the-page API I'm working on now.
>
> I imagine that for most POI users end notes are an edge case--that's
> definitely the case for my current client, which does not (normally) use
> end notes. My client is a publisher that manages municipal code for several
> thousand cities and counties. They need to generate Word documents that
> reflect the printed code as closely as possible in terms of structure and
> content (but not necessarily page layout details). All the codes have
> bottom-of-the-page footnotes but a few might also use end notes (although I
> haven't seen that yet in any of the samples).
>
> I've had Publishing clients in the past who did use end notes (it's fairly
> typical for non-fiction books, textbooks, etc.) but none of the those
> clients needed to generate Word, only read it in order to create XML from
> it and in that context the end note/footnote distinction is not interesting
> (because they all become inline footnote markup in the generated XML).
>
> Cheers,
>
> Eliot
> --
> Eliot Kimber
> http://contrext.com
>
>
> On 7/21/18, 5:51 AM, "Eliot Kimber" <[email protected]> wrote:
>
>     I'll double check all the relevant methods in the footnote and
> footnotes classes. At the moment I'm focused on bottom-of-the-page notes
> because that's what I need to generate in the context of my client work
> that is motivating these updates but definitely need to make sure end notes
> are properly handled. I wanted to get a pull request in before I spent to
> much time just to make sure I wasn’t going off the rails somewhere.
>
>     Cheers,
>
>     Eliot
>     --
>     Eliot Kimber
>     http://contrext.com
>
>
>     On 7/20/18, 9:13 PM, "Mark Murphy" <[email protected]> wrote:
>
>         Have you looked through XWPFFootnote and XWPFFootnotes?
> XWPFDocument has
>         some code to create footnotes as well, but it appears that
> endnotes are
>         incorrectly references without having a class of thier own. Maybe
> you
>         should try correcting these.
>
>         On Fri, Jul 20, 2018 at 11:47 AM Eliot Kimber <
> [email protected]> wrote:
>
>         > On IDs, since the ID space is just footnotes, I'm just using the
> number of
>         > footnotes in the Footnotes' footnote list to generate the next
> available
>         > ID. There didn't seem to be a need for more sophistication than
> that.
>         >
>         > Cheers,
>         >
>         > E.
>         >
>         > --
>         > Eliot Kimber
>         > http://contrext.com
>         >
>         >
>         > On 7/20/18, 11:06 AM, "Mark Murphy" <[email protected]>
> wrote:
>         >
>         >     According to the spec, the id's for footnotes and end notes
> are unique
>         > to
>         >     the note type (footnote or end note). You may want to create
> this so
>         > that
>         >     it can handle footnotes or end notes as there are only
> cosmetic
>         > differences
>         >     between the two. Similar to header/footer. Id's should be
> handled
>         >     internally so the user does not have to concern themselves
> with them.
>         > If
>         >     you are looking at header/footer for examples, please do not
> generate
>         > an
>         >     empty paragraph when a footnote or end note is created. This
> is too
>         >     limiting because it forces treating the first paragraph
> differently
>         > than
>         >     any potential additional paragraphs when adding content.
>         >
>         >     Maybe for simplicity it would be nice, for someone creating a
>         > document, to
>         >     simply be able to insert a footnote or end note with some
> text at the
>         >     current location in the paragraph without having to specify
> anything
>         > else.
>         >     The InsertFootnote () method would then do all the necessary
> background
>         >     work (create part if necessary, generate the next id, insert
> the
>         > footnote
>         >     reference) and insert the footnote text in the footnote
> part. It could
>         > also
>         >     return the footnote for additional modification like
> stylizing or
>         > adding
>         >     additional paragraphs, tables, images, etc..
>         >
>         >     On Fri, Jul 20, 2018 at 5:33 AM Eliot Kimber <
> [email protected]>
>         > wrote:
>         >
>         >     > For footnotes I need to set a unique ID on each
> newly-created
>         > getCTFtnEdn.
>         >     > In my personal code I was maintaining my own global ID
> counter that
>         > I used
>         >     > to set IDs on things.
>         >     >
>         >     > However, I'm not finding a similar mechanism in the POI
> code--is
>         > there one
>         >     > or is there a reliable technique for constructing new IDs,
> e.g.,
>         > based on
>         >     > the size of lists of things? I'm pretty sure footnote IDs
> only need
>         > to be
>         >     > unique across the footnotes but I'm not 100% sure on the
> general
>         > semantics
>         >     > of IDs in OOXML.
>         >     >
>         >     > Searching for "setId" I'm not finding any hits outside the
> test
>         > cases, so
>         >     > either this is something the current API just doesn't need
> to do
>         > (because
>         >     > it doesn’t automatically create objects that require IDs)
> or I'm
>         > missing
>         >     > where ID setting happens.
>         >     >
>         >     > Thanks,
>         >     >
>         >     > Eliot
>         >     > --
>         >     > 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]
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to