Commit 372299cc authored by Enrico Ros's avatar Enrico Ros

Internal changes, broken stuff, heavy headache.

PDFGenerator:
  Changed parser to deal with the new data structures:
  1) Popups are not inserted anymore as annotations, but parsed and
  scheduled for later merging with other annotations. Shared popups are
  permitted (the pdf reference doesn't clarify on this, so we better
  support them).
  2) Annotations can have an internal hieracy. When an IRT annotation is
  found, it's parsed and scheduled for later merging in the parent's
  tree.
  The merges take place at the end of the annotation retrieval. At that
  point all cross-objects are in memory and we can resolve/reparent
  stuff.

README.Annotations:
  Note on internal parser.

svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=403219
parent 18feebc8
......@@ -12,8 +12,15 @@ Author: Enrico Ros - KPDF project - 2005
partial:
base{P,AP,AS,A,AA,StructPar,OC}, geom{RD}
missing:
link, caret, fileattachment, sound, movie, screen, widget, printermark,
trapnet, watermark, 3d
link (handled in another way), caret, {fileattachment, sound, movie},
screen, widget, {printermark, trapnet, watermark}, 3d
** Notes on parsing in relation to KPDF:
Different Data Structures:
To adapt the 'plain' pdf storage to kpdf data structures we use a couple
of queues to store cross-dependant objects for each page and then adapt
objects to our DSs resolving crossdeps at the end of the loops.
** PDF file structure (annotations section):
......
This diff is collapsed.
......@@ -22,6 +22,7 @@
class PDFDoc;
class GList;
class TextPage;
class Page;
class ObjectRect;
class KPDFOutputDev;
......@@ -81,9 +82,9 @@ class PDFGenerator : public Generator
// private function for creating the document synopsis hieracy
void addSynopsisChildren( QDomNode * parent, GList * items );
// private function for adding annotations read from the pdf file
void addAnnotations( int pageNumber, KPDFPage * page );
void addAnnotations( Page * xpdfPage, KPDFPage * page );
// private function for creating the transition information
void addTransition( int pageNumber, KPDFPage * page );
void addTransition( Page * xpdfPage, KPDFPage * page );
// (async related) receive data from the generator thread
void customEvent( QCustomEvent * );
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment