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 |