ged2doc.odt_writer

Module which produces ODT output.

Functions

TR(x)

This is no-op function, only used to mark translatable strings, to extract all strings run pygettext -k TR ...

Classes

OdtWriter(flocator, output, tr[, encoding, …])

Transforms GEDCOM file into nicely formatted OpenDocument Text (ODT).

PageLayout(width, height, left, right, top, …)

Class representing page layout, size and margins

class ged2doc.odt_writer.OdtWriter(flocator, output, tr, encoding=None, encoding_errors='strict', sort_order=<NameOrder.SURNAME_GIVEN: 'last+first'>, name_fmt=0, make_images=True, make_stat=True, make_toc=True, events_without_dates=True, page_width='6in', page_height='9in', margin_left='0.5in', margin_right='0.5in', margin_top='0.5in', margin_bottom='0.25in', image_width='2in', image_height='2in', tree_width=4, first_page=1, tree_format='emf')[source]

Bases: ged2doc.writer.Writer

Transforms GEDCOM file into nicely formatted OpenDocument Text (ODT).

This is a sub-class of Writer class providing implementation for rendering methods which transform GEDCOM info into ODT structures. Constructor takes a large number of arguments which configure appearance of the resulting HTML page. After instantiating an object of this type one has to call save method to produce output file.

Parameters
flocatorged2doc.input.FileLocator

File locator instance.

outputstr or io.TextIOBase

Name for the output file or file object.

trged2doc.i18n.I18N

Object supporting translation.

encodingstr, optional

GEDCOM file encoding, if None then encoding is determined from file itself.

encoding_errorsstr, optional

Controls error handling behavior during string decoding, one of “strict” (default), “ignore”, or “replace”.

sort_orderged4py.model.NameOrder, optional

Determines ordering of person in output file, one of the constants defined in ged4py.model.NameOrder enum.

name_fmtint, optional

Bit mask with flags from ged2doc.name module.

make_imagesbool, optional

If True (default) then generate images for persons.

make_statbool, optional

If True (default) then generate statistics section.

make_tocbool, optional

If True (default) then generate Table of Contents.

events_without_datesbool, optional

If True (default) then show events that have no associated dates.

page_width, page_heightged2doc.size.Size, optional

Page size of the produced document.

margin_left, margin_right, margin_top, margin_bottomged2doc.size.Size, optional

Page margins of the produced document.

image_width, image_heightged2doc.size.Size, optional

Size of the images.

tree_widthint

Number of generations in ancestor tree.

first_pageint

Number of the first generated page.

tree_formatstr

Image format for ancestor tree, “emf” or “svg”.

Methods

save()

Produce output document.

_make_layout(doc, layout, firstpage)[source]

Set paper dimensions.

Parameters
docOpenDocumentText

ODT document object.

layoutPageLayout

ODT page layout.

firstpageint

Number of the first generated page.

_make_styles(doc, layout)[source]

Generate set of styles for the document.

Parameters
docOpenDocumentText

ODT document object.

layoutPageLayout

ODT page layout.

_interpolate(text)[source]

Takes text with embedded references and returns text.

Parameters
textstr

Arbitrary text with references.

Returns
textstr

Resulting text.

_render_prolog()[source]

Generate initial document header/title.

_render_section(level, ref_id, title, newpage=False)[source]

Produces new section in the output document.

This method should also save section reference so that TOC can be later produced when _render_toc method is called.

Parameters
levelint

Section level (1, 2, 3, etc.).

ref_idstr

Unique section identifier.

titlestr

Printable section name.

newpagebool, optional

If True then start new page (for documents that support pagination).

_render_person(person, image_data, attributes, families, events, notes)[source]

Output person information.

Parameters
personged4py.model.Individual

INDI record representation.

image_databytes or None

Either None or binary image data (typically content of JPEG image).

attributeslist [ tuple ]

List of (attr_name, text) tuples, may be empty.

familieslist [ str ]

List of strings (possibly empty), each string contains description of one family and should be typically rendered as a separate paragraph.

eventslist [ tuple ]

List of (date, text) tuples, may be empty. Date is properly formatted string and does not need any other formatting.

noteslist [ str ]

List of strings, each string should be rendered as separate paragraph.

Notes

Textual information in parameters to this method can include references to other persons (e.g. mother/father). Such references are embedded into text in encoded format determined by _person_ref method. It is responsibility of the subclasses to extract these references from text and re-encode them using proper backend representation.

_render_name_stat(n_total, n_females, n_males)[source]

Produces summary table.

Sum of male and female counters can be lower than total count due to individuals with unknown/unspecified gender.

Parameters
n_totalint

Total number of individuals.

n_femalesint

Number of female individuals.

n_malesint

Number of male individuals.

_render_name_freq(freq_table)[source]

Produces name statistics table.

Parameters
freq_tablelist [ tuple ]

List of (name, count) tuples.

_render_toc()[source]

Produce table of contents using info collected in _render_section().

_finalize()[source]

Finalize output.

_get_image_fragment(image_data)[source]

Adds Image to the document as person’s picture.

Parameters
image_databytes

Image data.

Returns
frameodf.draw.Frame

Frame containing image.

_make_ancestor_tree(person)[source]

“Add a picture for ancestor tree.

Parameters
personged4py.model.Individual

INDI record

_abc_impl = <_abc_data object>