]> Creatis software - gdcm.git/blob - Example/PrintDocument.cxx
fdce422fb04bd84f7b623287c7fed54f2f74627a
[gdcm.git] / Example / PrintDocument.cxx
1 /*=========================================================================
2                                                                                 
3   Program:   gdcm
4   Module:    $RCSfile: PrintDocument.cxx,v $
5   Language:  C++
6   Date:      $Date: 2005/07/19 15:19:25 $
7   Version:   $Revision: 1.17 $
8                                                                                 
9   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10   l'Image). All rights reserved. See Doc/License.txt or
11   http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
12                                                                                 
13      This software is distributed WITHOUT ANY WARRANTY; without even
14      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15      PURPOSE.  See the above copyright notices for more information.
16                                                                                 
17 =========================================================================*/
18 #include "gdcmFile.h"
19 #include "gdcmDebug.h"
20
21 #include <iostream>
22 #include <stdlib.h> //for atoi
23
24 int main(int argc, char *argv[])
25 {
26  
27    gdcm::File *e1= new gdcm::File();;
28    std::string fileName;   
29
30    if (argc == 1) {
31       std::cout << " Usage : "
32                 << argv[0] 
33                 << " filename"
34                 << " printLevel debug "
35                 << "short (=NOSEQ + NOSHADOW)" 
36                 << std::endl;
37        return 0;
38    }
39
40    if (argc > 1) {
41       fileName=argv[1];
42    } else {
43       fileName += GDCM_DATA_ROOT;
44       fileName += "/test.acr";
45    }
46
47    if (argc > 2) 
48    {
49       int level = atoi(argv[2]);   
50       e1->SetPrintLevel(level);
51    }
52
53    if (argc > 3)
54       gdcm::Debug::DebugOn(); 
55
56    if (argc > 4)
57       e1->SetLoadMode(NO_SEQ | NO_SHADOW);
58    e1->SetFileName( fileName.c_str() );
59    e1->Load( );
60
61 // we use PrintDocument, because we want to print what we get
62
63 //   if ( !e1->IsReadable() )
64 //   {
65 //      delete e1;
66 //      return 0;
67 //   }
68
69    e1->Print();
70       
71    std::cout << "\n\n" << std::endl; 
72
73    if ( e1->GetEntryValue(0x0002,0x0010) == gdcm::GDCM_NOTLOADED ) 
74    {
75       std::cout << "Transfer Syntax not loaded. " << std::endl
76                 << "Better you increase MAX_SIZE_LOAD_ELEMENT_VALUE"
77                 << std::endl;
78       return 0;
79    }       
80    
81    if(e1->IsReadable())
82       std::cout <<std::endl<<fileName<<" is 'file Readable'"<<std::endl;
83    else
84       std::cout <<std::endl<<fileName<<" is NOT 'file Readable'"<<std::endl;
85    std::cout<<std::flush;
86    delete e1;
87
88    return 0;
89    
90 }