All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
pdftron::PDF::ElementWriter Class Reference

#include <ElementWriter.h>

Public Types

enum  WriteMode { e_underlay, e_overlay, e_replacement }
 

Public Member Functions

 ElementWriter ()
 
 ~ElementWriter ()
 
void Begin (Page &page, WriteMode placement=e_overlay, bool page_coord_sys=true, bool compress=true, SDF::Obj resources=0)
 
void Begin (SDF::SDFDoc &doc, bool compress=true)
 
void Begin (SDF::Obj stream_obj_to_update, bool compress=true, SDF::Obj resources=0)
 
SDF::Obj End ()
 
void WriteElement (Element element)
 
void WritePlacedElement (Element element)
 
void Flush ()
 
void WriteBuffer (std::vector< unsigned char > data)
 
void WriteBuffer (const char *data, int data_sz)
 
void WriteString (const char *str)
 
void WriteGStateChanges (Element element)
 
void SetDefaultGState (ElementReader &reader)
 
void Destroy ()
 

Detailed Description

ElementWriter can be used to assemble and write new content to a page, Form XObject, Type3 Glyph stream, pattern stream, or any other content stream.

Definition at line 22 of file ElementWriter.h.

Member Enumeration Documentation

Enumeration describing the placement of the element written to a page.

Enumerator
e_underlay 
e_overlay 

element is put in the background layer of the page

e_replacement 

element appears on top of the existing graphics

element will replace current page contents

Definition at line 34 of file ElementWriter.h.

Constructor & Destructor Documentation

pdftron::PDF::ElementWriter::ElementWriter ( )
pdftron::PDF::ElementWriter::~ElementWriter ( )

Member Function Documentation

void pdftron::PDF::ElementWriter::Begin ( Page page,
WriteMode  placement = e_overlay,
bool  page_coord_sys = true,
bool  compress = true,
SDF::Obj  resources = 0 
)

Begin writing to the given page.

By default, new content will be appended to the page, as foreground graphics. It is possible to add new page content as background graphics by setting the second parameter in begin method to 'true' (e.g. writer.Begin(page, true)).

Parameters
pageThe page to write content.
placementAn optional flag indicating whether the new content should be added as a foreground or background layer to the existing page. By default, the new content will appear on top of the existing graphics.
page_coord_sysAn optional flag used to select the target coordinate system if true (default), the coordinates are relative to the lower-left corner of the page, otherwise the coordinates are defined in PDF user coordinate system (which may, or may not coincide with the page coordinates).
compressAn optional flag indicating whether the page content stream should be compressed. This may be useful for debugging content streams. Also some applications need to do a clear text search on strings in the PDF files. By default, all content streams are compressed.
resourcesthe resource dictionary in which to store resources for the final page. By default, a new resource dictionary will be created.
void pdftron::PDF::ElementWriter::Begin ( SDF::SDFDoc doc,
bool  compress = true 
)

Begin writing an Element sequence to a new stream. Use this function to write Elements to a content stream other than the page. For example, you can create Form XObjects (See Section '4.9 Form XObjects' in PDF Reference for more details) pattern streams, Type3 font glyph streams, etc.

Parameters
doc- A low-level SDF/Cos document that will contain the new stream. You can access low-level document using PDFDoc::GetSDFDoc() or Obj::GetDoc() methods.
compressAn optional flag indicating whether the page content stream should be compressed. This may be useful for debugging content streams. Also some applications need to do a clear text search on strings in the PDF files. By default, all content streams are compressed.
Note
the newly created content stream object is returned when writing operations are completed (i.e. after the call to ElementWriter::End()).
void pdftron::PDF::ElementWriter::Begin ( SDF::Obj  stream_obj_to_update,
bool  compress = true,
SDF::Obj  resources = 0 
)

Begin writing an Element sequence to a stream. Use this function to write Elements to a content stream which will replace an existing content stream in an object passed as a parameter.

Parameters
stream_obj_to_update- A low-level SDF stream object that will contain the new stream. Old stream inside that object will be discarded.
compressAn optional flag indicating whether the content stream should be compressed. This may be useful for debugging content streams. Also some applications need to do a clear text search on strings in the PDF files. By default, all content streams are compressed.
resourcesthe resource dictionary in which to store resources for the final page. By default, a new resource dictionary will be created.
Note
The content stream object is returned when writing operations are completed (i.e. after the call to ElementWriter::End()).
void pdftron::PDF::ElementWriter::Destroy ( )

Frees the native memory of the object.

SDF::Obj pdftron::PDF::ElementWriter::End ( )

Finish writing to a page

Returns
A low-level stream object that was used to store Elements.
void pdftron::PDF::ElementWriter::Flush ( )

The Flush method flushes all pending Element writing operations. This method is typically only required to be called when intermixing direct content writing (i.e. WriteBuffer/WriteString) with Element writing.

void pdftron::PDF::ElementWriter::SetDefaultGState ( ElementReader reader)

This method is used to initialize ElementWriter state with the state of a given ElementReader. This can be used to avoid incorrectly writing inherited GState attributes.

Parameters
readerElementReader.
void pdftron::PDF::ElementWriter::WriteBuffer ( std::vector< unsigned char >  data)

Writes an arbitrary buffer to the content stream. This function can be used to insert comments, inline-image data, and chunks of arbitrary content to the output stream.

void pdftron::PDF::ElementWriter::WriteBuffer ( const char *  data,
int  data_sz 
)
void pdftron::PDF::ElementWriter::WriteElement ( Element  element)

Writes the Element to the content stream.

Parameters
elementThe element to write to the content stream.
void pdftron::PDF::ElementWriter::WriteGStateChanges ( Element  element)

Write only the graphics state changes applied to this element and skip writing the element itself. This is especially useful when rewriting page content, but with the intention to skip certain elements.

Parameters
elementThe element for which to write graphics state changes.
void pdftron::PDF::ElementWriter::WritePlacedElement ( Element  element)

A utility function that surrounds the given Element with a graphics state Save/Restore Element (i.e. in PDF content stream represented as 'q element Q').

The function is equivalent to calling WriteElement three times: WriteElement(eSave); WriteElement(element); WriteElement(eRestore);

where eSave is 'e_group_begin' and eRestore is 'e_group_end' Element

The function is useful when XObjects such as Images and Forms are drawn on the page.

Parameters
elementElement object to enact function on.
void pdftron::PDF::ElementWriter::WriteString ( const char *  str)

Writes an arbitrary string to the content stream. Serves the same purpose as WriteBuffer().

Parameters
strString to write to the content stream.

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