diff --git a/src/HTMLRenderer/general.cc b/src/HTMLRenderer/general.cc index cda2d5d..68038c3 100644 --- a/src/HTMLRenderer/general.cc +++ b/src/HTMLRenderer/general.cc @@ -101,7 +101,8 @@ void HTMLRenderer::process(PDFDoc *doc) if(param->split_pages) { - auto page_fn = str_fmt("%s/%s%d.page", param->dest_dir.c_str(), param->output_filename.c_str(), i); + auto page_template_fn = str_fmt("%s/%s", param->dest_dir.c_str(), param->output_filename.c_str()); + auto page_fn = str_fmt(page_template_fn, i); f_pages.fs.open((char*)page_fn, ofstream::binary); if(!f_pages.fs) throw string("Cannot open ") + (char*)page_fn + " for writing"; diff --git a/src/pdf2htmlEX.cc b/src/pdf2htmlEX.cc index 806e91c..a54d5bf 100644 --- a/src/pdf2htmlEX.cc +++ b/src/pdf2htmlEX.cc @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -213,7 +214,7 @@ int main(int argc, char **argv) if(get_suffix(param.input_filename) == ".pdf") { if(param.split_pages) - param.output_filename = s.substr(0, s.size() - 4); + param.output_filename = s.substr(0, s.size() - 4) + "%d.page"; else param.output_filename = s.substr(0, s.size() - 4) + ".html"; @@ -221,11 +222,16 @@ int main(int argc, char **argv) else { if(param.split_pages) - param.output_filename = s; + param.output_filename = s + "%d.page"; else param.output_filename = s + ".html"; } + } + else if(param.split_pages && !std::regex_match(param.output_filename, std::regex("^.*%[0-9]*d.*$"))) + { + const string suffix = get_suffix(param.output_filename); + param.output_filename = param.output_filename.substr(0, param.output_filename.size() - suffix.size()) + "%d" + suffix; } if(param.css_filename.empty()) {