Ipelib
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
ipe::Document Class Reference

#include <ipedoc.h>

Classes

struct  SProperties
 

Public Types

enum  TFormat {
  EXml, EPdf, EEps, EIpe5,
  EUnknown
}
 
enum  { ESaveNormal = 0, EExport = 1, ENoZip = 2, EMarkedView = 4 }
 
enum  LoadErrors { EVersionTooOld = -1, EVersionTooRecent = -2, EFileOpenError = -3, ENotAnIpeFile = -4 }
 
enum  {
  ErrNone, ErrNoText, ErrNoDir, ErrWritingSource,
  ErrOldPdfLatex, ErrRunLatex, ErrLatex, ErrLatexOutput,
  ErrNoIconv
}
 

Public Member Functions

 Document ()
 
 Document (const Document &rhs)
 
 ~Document ()
 
bool save (TellStream &stream, TFormat format, uint flags) const
 
bool save (const char *fname, TFormat format, uint flags) const
 
bool exportPages (const char *fname, uint flags, int fromPage, int toPage) const
 
bool exportView (const char *fname, TFormat format, uint flags, int pno, int vno) const
 
void saveAsXml (Stream &stream, bool usePdfBitmaps=false) const
 
int countPages () const
 
int countTotalViews () const
 
const Pagepage (int no) const
 
Pagepage (int no)
 
Pageset (int no, Page *page)
 
void insert (int no, Page *page)
 
void push_back (Page *page)
 
Pageremove (int no)
 
SProperties properties () const
 
void setProperties (const SProperties &info)
 
Cascadecascade ()
 
const Cascadecascade () const
 
CascadereplaceCascade (Cascade *cascade)
 
void setFontPool (FontPool *fontPool)
 
const FontPool * fontPool () const
 
bool hasTrueTypeFonts () const
 
bool hasTransparency () const
 
bool hasTilings () const
 
bool hasGradients () const
 
void findBitmaps (BitmapFinder &bm) const
 
bool checkStyle (AttributeSeq &seq) const
 
int runLatex (String &logFile)
 
int runLatex ()
 

Static Public Member Functions

static TFormat fileFormat (DataSource &source)
 
static TFormat formatFromFilename (String fn)
 
static Documentload (DataSource &source, TFormat format, int &reason)
 
static Documentload (const char *fname, int &reason)
 
static DocumentloadWithErrorReport (const char *fname)
 

Detailed Description

The model for an Ipe document.

The Document class represents the contents of an Ipe document, and all the methods necessary to load, save, and modify it.

Member Enumeration Documentation

There are several Ipe document save formats.

Enumerator
EXml 

Save as XML.

EPdf 

Save as PDF.

EEps 

Save as Encapsulated Postscript.

EIpe5 

Ancient Ipe format.

EUnknown 

Unknown file format.

anonymous enum

Options for saving Ipe documents (to PDF and Postscript)

Enumerator
ESaveNormal 

Nothing special.

EExport 

Don't include Ipe markup.

ENoZip 

Do not compress streams.

EMarkedView 

Create marked views only.

Errors that can happen while loading documents.

Enumerator
EVersionTooOld 

The version of the file is too old.

EVersionTooRecent 

The file version is newer than this Ipelib.

EFileOpenError 

Error opening the file.

ENotAnIpeFile 

The file was not created by Ipe.

anonymous enum

Error codes returned by RunLatex.

Enumerator
ErrNone 
ErrNoText 
ErrNoDir 
ErrWritingSource 
ErrOldPdfLatex 
ErrRunLatex 
ErrLatex 
ErrLatexOutput 
ErrNoIconv 

Constructor & Destructor Documentation

Document::Document ( )

Construct an empty document for filling by a client.

As constructed, it has no pages, A4 media, and only the standard style sheet.

References ipe::Cascade::insert(), and ipe::StyleSheet::standard().

Document::Document ( const Document rhs)

Copy constructor.

References countPages(), and page().

Document::~Document ( )

Destructor.

References countPages(), and page().

Member Function Documentation

Document::TFormat Document::fileFormat ( DataSource source)
static

Determine format of file in source.

References EEps, EIpe5, EPdf, EUnknown, EXml, and ipe::String::substr().

Referenced by load().

Document::TFormat Document::formatFromFilename ( String  fn)
static

Determine format of file from filename fn.

References EEps, EPdf, EUnknown, EXml, ipe::String::right(), and ipe::String::size().

Document * Document::load ( DataSource source,
TFormat  format,
int &  reason 
)
static

Construct a document from an input stream.

Returns 0 if the stream couldn't be parsed, and a reason explaining that in reason. If reason is positive, it is a file (stream) offset where parsing failed. If reason is negative, it is an error code, see Document::LoadErrors.

References EEps, EIpe5, ENotAnIpeFile, EPdf, EVersionTooOld, and EXml.

Referenced by load(), and loadWithErrorReport().

Document * Document::load ( const char *  fname,
int &  reason 
)
static
Document * Document::loadWithErrorReport ( const char *  fname)
static
bool Document::save ( TellStream stream,
TFormat  format,
uint  flags 
) const
bool Document::save ( const char *  fname,
TFormat  format,
uint  flags 
) const

References ipe::Platform::fopen(), and save().

bool Document::exportPages ( const char *  fname,
uint  flags,
int  fromPage,
int  toPage 
) const
bool Document::exportView ( const char *  fname,
TFormat  format,
uint  flags,
int  pno,
int  vno 
) const
void Document::saveAsXml ( Stream stream,
bool  usePdfBitmaps = false 
) const
int ipe::Document::countPages ( ) const
inline
int Document::countTotalViews ( ) const

Return total number of views in all pages.

References countPages(), ipe::Page::countViews(), and page().

Referenced by ipe::PdfWriter::createTrailer().

const Page* ipe::Document::page ( int  no) const
inline
Page* ipe::Document::page ( int  no)
inline

Return page.

The first page is no 0.

Page * Document::set ( int  no,
Page page 
)

Replace page.

Returns the original page.

References page().

void Document::insert ( int  no,
Page page 
)

Insert a new page.

The page is inserted at index no.

References page().

void Document::push_back ( Page page)

Append a new page.

Referenced by ipe::ImlParser::parseDocument().

Page * Document::remove ( int  no)

Remove a page.

Returns the page that has been removed.

SProperties ipe::Document::properties ( ) const
inline

Return document properties.

Referenced by ipe::PdfWriter::createTrailer(), ipe::ImlParser::parseDocument(), and runLatex().

void Document::setProperties ( const SProperties info)

Set document properties.

Referenced by ipe::ImlParser::parseDocument().

Cascade* ipe::Document::cascade ( )
inline
const Cascade* ipe::Document::cascade ( ) const
inline

Return stylesheet cascade (const version).

Cascade * Document::replaceCascade ( Cascade sheets)

Replace the entire style sheet cascade.

Takes ownership of cascade, and returns the original cascade.

void Document::setFontPool ( FontPool *  fontPool)

Update the font pool (after running Pdflatex).

Takes ownership of the font pool.

References fontPool().

Referenced by runLatex().

const FontPool* ipe::Document::fontPool ( ) const
inline

Return the current FontPool.

Referenced by setFontPool(), and ipe::Thumbnail::Thumbnail().

bool Document::hasTrueTypeFonts ( ) const

Return whether this document uses any Truetype fonts.

References ipe::Font::ETrueType.

bool Document::hasTransparency ( ) const

Does this document make any use of transparency?

The document is considered to make use of transparency if its style sheets define any opacities whose value is not 1.0.

References ipe::Cascade::allNames(), ipe::EOpacity, ipe::Cascade::find(), and ipe::Attribute::ONE().

bool Document::hasTilings ( ) const

Does this document contain any tiling patterns?

References ipe::Cascade::allNames(), and ipe::ETiling.

bool Document::hasGradients ( ) const

Does this document contain any gradients?

References ipe::Cascade::allNames(), and ipe::EGradient.

void Document::findBitmaps ( BitmapFinder bm) const
bool Document::checkStyle ( AttributeSeq seq) const

Check all symbolic attributes in the document.

This function verifies that all symbolic attributes in the document are defined in the style sheet. It appends to seq all symbolic attributes (in no particular order, but without duplicates) that are NOT defined.

Returns true if there are no undefined symbolic attributes in the document.

References cascade(), ipe::Object::checkStyle(), ipe::Page::count(), countPages(), ipe::Page::object(), and page().

int Document::runLatex ( String logFile)
int Document::runLatex ( )

Run Pdflatex (suitable for console applications)

Success/error is reported on stderr.

References ErrLatex, ErrLatexOutput, ErrNoDir, ErrNoIconv, ErrNone, ErrNoText, ErrOldPdfLatex, ErrRunLatex, and ErrWritingSource.


The documentation for this class was generated from the following files: