This is base cross-platform document creation logic, i.e. add page, table, text,
image etc. Writing this document to concrete platform file (e.g. PDF),
interactive editing or viewing on screen should be implemented with concrete
platform-dependent writer (PDF/Swing/GTK), e.g. Beigesoft™ PDFWriter.