![]() |
00001 //--------------------------------------------------------------------------------------- 00002 // Copyright (c) 2001-2010 by PDFTron Systems Inc. All Rights Reserved. 00003 // Consult legal.txt regarding legal and license information. 00004 //--------------------------------------------------------------------------------------- 00005 00006 #ifndef H_CPPPDFElementWriter 00007 #define H_CPPPDFElementWriter 00008 00009 #include <PDF/Page.h> 00010 #include <PDF/Element.h> 00011 #include <Common/Matrix2D.h> 00012 #include <C/PDF/TRN_ElementWriter.h> 00013 00014 namespace pdftron { 00015 namespace PDF { 00016 00017 00022 class ElementWriter 00023 { 00024 public: 00025 00026 ElementWriter(); 00027 ~ElementWriter(); 00028 00029 00034 enum WriteMode { 00035 e_underlay, 00036 e_overlay, 00037 e_replacement 00038 }; 00039 00058 void Begin( Page& page, WriteMode placement = e_overlay, bool compress = true ); 00059 00079 void Begin(const Page& page, bool background, bool compress = true); 00080 00098 void Begin(SDF::SDFDoc& doc, bool compress = true); 00099 00100 00117 void Begin( SDF::Obj stream_obj_to_update, bool compress = true ); 00118 00124 SDF::Obj End(); 00125 00129 void WriteElement(Element element); 00130 00145 void WritePlacedElement(Element element); 00146 00152 void Flush(); 00153 00159 void WriteBuffer(const char* data, int data_sz); 00160 00165 void WriteString(const char* str); 00166 00168 TRN_ElementWriter mp_writer; 00169 ElementWriter(TRN_ElementWriter impl); 00171 }; 00172 00173 00174 #include <Impl/ElementWriter.inl> 00175 00176 }; // namespace PDF 00177 }; // namespace pdftron 00178 00179 00180 #endif 00181