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())
{