Mercurial > mercurial > hgweb_xdwtools.cgi
comparison xdwaddpage2.cpp @ 9:cc5262d43399
small changes.
| author | pyon@macmini |
|---|---|
| date | Thu, 05 Apr 2018 21:06:13 +0900 |
| parents | 61ce4754737e |
| children |
comparison
equal
deleted
inserted
replaced
| 8:61ce4754737e | 9:cc5262d43399 |
|---|---|
| 57 fprintf( stderr, "Usage:\n" ); | 57 fprintf( stderr, "Usage:\n" ); |
| 58 fprintf( stderr, " %s infile\n", prog ); | 58 fprintf( stderr, " %s infile\n", prog ); |
| 59 fprintf( stderr, " %s -l infile\n", prog ); | 59 fprintf( stderr, " %s -l infile\n", prog ); |
| 60 fprintf( stderr, " %s -ltxt infile\n", prog ); | 60 fprintf( stderr, " %s -ltxt infile\n", prog ); |
| 61 fprintf( stderr, " %s -s S infile\n", prog ); | 61 fprintf( stderr, " %s -s S infile\n", prog ); |
| 62 fprintf( stderr, " %s -c infile1 infile2 ...\n", prog ); | |
| 63 fprintf( stderr, " %s -s S -c infile1 infile2 ...\n", prog ); | |
| 64 fprintf( stderr, " %s -s S -ltxt -c infile1 infile2 ...\n", prog ); | |
| 62 fprintf( stderr, " %s -v infile\n", prog ); | 65 fprintf( stderr, " %s -v infile\n", prog ); |
| 63 } | 66 } |
| 64 | 67 |
| 65 void print_now( char const *msg ) { | 68 void print_now( char const *msg ) { |
| 66 time_t now = time( NULL ); | 69 time_t now = time( NULL ); |
| 87 } | 90 } |
| 88 | 91 |
| 89 return api_result; | 92 return api_result; |
| 90 } | 93 } |
| 91 | 94 |
| 92 int main( int argc, char* argv[] ) { | 95 int add_page( const char* file, int sp, bool pleft, const char* ltext ) |
| 93 | 96 { |
| 94 /* オプションの解析 */ | |
| 95 bool pnow = false; | |
| 96 bool pleft = false; | |
| 97 char *ltext = NULL; | |
| 98 int sp = 1; | |
| 99 | |
| 100 int opt; | |
| 101 while ( ( opt = getopt( argc, argv, "vs:l::" ) ) != -1 ) { | |
| 102 switch ( opt ) { | |
| 103 case 'v': | |
| 104 pnow = true; | |
| 105 print_now( "start." ); | |
| 106 break; | |
| 107 case 'l': | |
| 108 pleft = true; | |
| 109 ltext = optarg; | |
| 110 break; | |
| 111 case 's': | |
| 112 sp = atoi( optarg ); | |
| 113 if ( sp == 0 ) { | |
| 114 print_help(); | |
| 115 exit( 1 ); | |
| 116 } | |
| 117 break; | |
| 118 default: | |
| 119 print_help(); | |
| 120 exit( 1 ); | |
| 121 } | |
| 122 } | |
| 123 | |
| 124 char in_path[ _MAX_PATH ]; | |
| 125 _fullpath( in_path, argv[ argc - 1 ], _MAX_PATH ); | |
| 126 | |
| 127 /* 本処理 */ | |
| 128 int api_result = 0; | |
| 129 | |
| 130 XDW_DOCUMENT_HANDLE h = NULL; // 文書ハンドルを開く | 97 XDW_DOCUMENT_HANDLE h = NULL; // 文書ハンドルを開く |
| 131 XDW_OPEN_MODE_EX mode = { sizeof( XDW_OPEN_MODE_EX ), XDW_OPEN_UPDATE, XDW_AUTH_NODIALOGUE }; | 98 XDW_OPEN_MODE_EX mode = { sizeof( XDW_OPEN_MODE_EX ), XDW_OPEN_UPDATE, XDW_AUTH_NODIALOGUE }; |
| 132 api_result = XDW_OpenDocumentHandle( in_path, &h, (XDW_OPEN_MODE*)&mode ); | 99 int api_result = XDW_OpenDocumentHandle( file, &h, (XDW_OPEN_MODE*)&mode ); |
| 133 if ( api_result < 0 ) { | 100 if ( api_result < 0 ) { |
| 134 print_error( api_result ); | 101 print_error( api_result ); |
| 135 return 0; | 102 return 0; |
| 136 } | 103 } |
| 137 | 104 |
| 143 int tr = 1; // 透明フラグ | 110 int tr = 1; // 透明フラグ |
| 144 char pagenum[18], lpagenum[30]; | 111 char pagenum[18], lpagenum[30]; |
| 145 | 112 |
| 146 // アノテーションを貼り付ける | 113 // アノテーションを貼り付ける |
| 147 for ( int p = 0; p < last_page; p++ ) { | 114 for ( int p = 0; p < last_page; p++ ) { |
| 148 sprintf( pagenum, "%05d-%05d-%05d", p + sp, p + 1, last_page ); | 115 sprintf( pagenum, "%05d-%04d-%04d", p + sp, p + 1, last_page ); |
| 149 api_result = add_annotation( h, p + 1, 17500, 28500, pagenum, &sz, tr ); // 右下 | 116 api_result = add_annotation( h, p + 1, 17500, 28500, pagenum, &sz, tr ); // 右下 |
| 150 if ( pleft ) { | 117 if ( pleft ) { |
| 151 if ( ltext != NULL ) | 118 if ( ltext != NULL ) |
| 152 sprintf( lpagenum, "%s%s", pagenum, ltext ); | 119 sprintf( lpagenum, "%s%s", pagenum, ltext ); |
| 153 else | 120 else |
| 162 | 129 |
| 163 if ( api_result >= 0 ) // 変更をファイルに反映する | 130 if ( api_result >= 0 ) // 変更をファイルに反映する |
| 164 api_result = XDW_SaveDocument( h, NULL ); | 131 api_result = XDW_SaveDocument( h, NULL ); |
| 165 | 132 |
| 166 XDW_CloseDocumentHandle( h, NULL ); // 文書ハンドルを閉じる | 133 XDW_CloseDocumentHandle( h, NULL ); // 文書ハンドルを閉じる |
| 134 return sp + last_page; | |
| 135 } | |
| 136 | |
| 137 int main( int argc, char* argv[] ) { | |
| 138 | |
| 139 /* オプションの解析 */ | |
| 140 bool pnow = false; | |
| 141 bool pleft = false; | |
| 142 bool chain = false; | |
| 143 char *ltext = NULL; | |
| 144 int sp = 1; | |
| 145 | |
| 146 int opt; | |
| 147 while ( ( opt = getopt( argc, argv, "vs:l::c" ) ) != -1 ) { | |
| 148 switch ( opt ) { | |
| 149 case 'v': | |
| 150 pnow = true; | |
| 151 print_now( "start." ); | |
| 152 break; | |
| 153 case 'l': | |
| 154 pleft = true; | |
| 155 ltext = optarg; | |
| 156 break; | |
| 157 case 's': | |
| 158 sp = atoi( optarg ); | |
| 159 if ( sp == 0 ) { | |
| 160 print_help(); | |
| 161 exit( 1 ); | |
| 162 } | |
| 163 break; | |
| 164 case 'c': // chain mode | |
| 165 chain = true; | |
| 166 break; | |
| 167 default: | |
| 168 print_help(); | |
| 169 exit( 1 ); | |
| 170 } | |
| 171 } | |
| 172 | |
| 173 char in_path[ _MAX_PATH ]; | |
| 174 | |
| 175 /* 本処理 */ | |
| 176 int api_result = 0; | |
| 177 if ( chain ) { | |
| 178 int lp = sp; | |
| 179 for ( int i = optind; i < argc; i++ ) { | |
| 180 _fullpath( in_path, argv[ i ], _MAX_PATH ); | |
| 181 lp = add_page( in_path, lp, pleft, ltext ); | |
| 182 if ( pnow ) print_now( in_path ); | |
| 183 } | |
| 184 } | |
| 185 else { | |
| 186 _fullpath( in_path, argv[ argc - 1 ], _MAX_PATH ); | |
| 187 add_page( in_path, sp, pleft, ltext ); | |
| 188 } | |
| 167 | 189 |
| 168 if ( pnow ) print_now( "done." ); | 190 if ( pnow ) print_now( "done." ); |
| 169 return 0; | 191 return 0; |
| 170 } | 192 } |
| 171 | 193 |
