OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimPdfWriter.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // License: See top level LICENSE.txt file
4 //
5 // Author: David Burken
6 //
7 // Description: OSSIM Portable Document Format (PDF) writer.
8 //
9 //----------------------------------------------------------------------------
10 // $Id$
11 
12 #ifndef ossimPdfWriter_HEADER
13 #define ossimPdfWriter_HEADER 1
14 
18 #include <ossim/base/ossimRefPtr.h>
19 #include <ossim/base/ossimRtti.h>
22 #include <iosfwd>
23 #include <mutex>
24 
25 // Forward class declarations:
26 class ossimImageData;
27 class ossimIpt;
28 class ossimIrect;
29 
46 {
47 public:
48 
50  {
51  UNKNOWN = 0,
52  JPEG = 1, // JPEG
53  RAW = 2 // general raster, band interleaved by pixel(BIP)
54  };
55 
58 
60  virtual ~ossimPdfWriter();
61 
63  virtual ossimString getShortName() const;
64 
66  virtual ossimString getLongName() const;
67 
69  virtual ossimString getClassName() const;
70 
79  virtual ossimString getExtension() const;
80 
90  virtual void getImageTypeList(std::vector<ossimString>& imageTypeList)const;
91 
93  virtual bool isOpen() const;
94 
99  virtual bool open();
100 
102  virtual void close();
103 
105  virtual bool saveState(ossimKeywordlist& kwl,
106  const char* prefix=0)const;
107 
113  virtual bool loadState(const ossimKeywordlist& kwl,
114  const char* prefix=0);
115 
122  virtual void setProperty(ossimRefPtr<ossimProperty> property);
123 
131  virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name)const;
132 
138  virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
139 
140  virtual bool hasImageType(const ossimString& imageType) const;
141 
147  virtual bool writeStream();
148 
156  virtual bool setOutputStream( std::ostream& stream );
157 
158 private:
159 
164  virtual bool writeFile();
165 
170  void writeHeader( std::ostream* str );
171 
177  void writeCatalog( std::ostream* str,
178  std::vector<std::streamoff>& xref );
179 
185 #if 0
186  void writeOutlines( std::ostream* str,
187  std::vector<std::streamoff>& xref );
188 #endif
189 
195  void writePages( std::ostream* str,
196  std::vector<std::streamoff>& xref );
197 
203  void writeInfo( std::ostream* str,
204  std::vector<std::streamoff>& xref );
205 
211  bool writeImage( std::ostream* str );
212 
223  void writeJpegTile( std::ostream* str,
224  std::vector<std::streamoff>& xref,
225  ossimImageData* id,
226  const ossimIrect& aoi,
227  ossimIrect& outputTileRect );
228 
239  void writeRawTile( std::ostream* str,
240  std::vector<std::streamoff>& xref,
241  ossimImageData* id,
242  const ossimIrect& aoi,
243  ossimIrect& outputTileRect );
244 
250  void writeXref( std::ostream* str,
251  const std::vector<std::streamoff>& xref );
252 
259  void writeTrailer( std::ostream* str,
260  ossim_uint32 entrySize,
261  std::streamoff xrefOffset );
262 
269 #if 0
270  void writeDummy( std::ostream* str,
271  std::vector<std::streamoff>& xref );
272 #endif
273 
281  void setupInputChain();
282 
291  ossimPdfImageType getImageType() const;
292 
301  void getImageType( std::string& type ) const;
302 
308  void addOption( const std::string& key, const std::string& value );
309 
319 #if 0
320  void getMediaBoxSize( ossim_uint32 imageWidth,
321  ossim_uint32 imageHeight,
322  ossimIpt& size ) const;
323 #endif
324 
330  void getLowerLeftPageOffset( const ossimIrect& aoi,
331  ossimIpt& offset ) const;
332 
339  void getLgiDict( ossimImageGeometry* geom,
340  const ossimIrect& aoi,
341  std::string& s ) const;
342 
348  void getLgiDictProjection( ossimImageGeometry* geom,
349  std::string& s ) const;
350 
351 
359  void getLgiDictCtm( ossimImageGeometry* geom,
360  const ossimIrect& aoi,
361  std::string& s ) const;
362 
368  void getLgiDictDatum( ossimImageGeometry* geom,
369  std::string& s ) const;
370 
376  void getLgiDictDescription( ossimImageGeometry* geom,
377  std::string& s ) const;
378 
384 #if 0
385  void getLgiDictNeatline( ossimImageGeometry* geom,
386  std::string& s ) const;
387 #endif
388 
394  void getLgiDictProjectionType( ossimImageGeometry* geom,
395  std::string& s ) const;
396 
402  ossim_uint32 getEpsgCode( const ossimImageGeometry* geom ) const;
403 
404 #if 0
405  void getNumberOfTiles( ossim_uint32 imageWidth,
406  ossim_uint32 imageHeight,
407  ossimIpt& size ) const;
408 #endif
409 
419  void getTitle( std::string& s ) const;
420 
430  void getAuthor( std::string& s ) const;
431 
441  void getSubject( std::string& s ) const;
442 
452  void getKeywords( std::string& s ) const;
453 
463  void getCreator( std::string& s ) const;
464 
474  void getProducer( std::string& s ) const;
475 
488  void getCreationDate( std::string& s ) const;
489 
502  void getModDate( std::string& s ) const;
503 
512  void getGmtDate( std::string& s ) const;
513 
523  void getTileSize( std::string& s ) const;
524 
531  void getTileSize( ossimIpt& tileSize ) const;
532 
536  std::string getTileString( ossim_uint32 x, ossim_uint32 y ) const;
537 
540 
545 
548 
549  std::mutex m_mutex;
550 
551 TYPE_DATA
552 };
553 
554 #endif /* #ifndef ossimPdfWriter_HEADER */
ossim_uint32 x
virtual void close()=0
Represents serializable keyword/value map.
virtual ossimString getExtension() const
Returns a 3-letter extension from the image type descriptor (theOutputImageType) that can be used for...
ossim_uint32 y
virtual bool writeFile()=0
Write out the file.
std::mutex m_mutex
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual ossimString getClassName() const
Definition: ossimObject.cpp:64
ossimRefPtr< ossimConnectableObject > m_savedInput
Holds the origin end of the chain connected to theInputConnection.
Pure virtual base class for image file writers.
References:
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
virtual bool setOutputStream(ossimRefPtr< ossimOStream > stream)
Sets the output stream to write to.
virtual ossimString getShortName() const
Definition: ossimObject.cpp:48
ossimRefPtr< ossimKeywordlist > m_kwl
Holds all options in key, value pair map.
virtual void getImageTypeList(std::vector< ossimString > &imageTypeList) const =0
void getImageTypeList(std::vector<ossimString>& imageTypeList)const
yy_size_t size
#define TYPE_DATA
Definition: ossimRtti.h:339
virtual bool writeStream()
Method to write the image to a stream.
unsigned int ossim_uint32
virtual ossimString getLongName() const
Definition: ossimObject.cpp:53
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
virtual bool hasImageType(const ossimString &imageType) const
bool hasImageType(const ossimString& imageType) const
virtual bool isOpen() const =0
Container class that holds both 2D transform and 3D projection information for an image Only one inst...
virtual void setProperty(ossimRefPtr< ossimProperty > property)
#define OSSIM_DLL
virtual bool open()=0
std::ostream * m_str
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23