diff options
Diffstat (limited to 'libqpdf/QPDFJob_config.cc')
-rw-r--r-- | libqpdf/QPDFJob_config.cc | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/libqpdf/QPDFJob_config.cc b/libqpdf/QPDFJob_config.cc index db6c5948..c43cc82f 100644 --- a/libqpdf/QPDFJob_config.cc +++ b/libqpdf/QPDFJob_config.cc @@ -968,6 +968,45 @@ QPDFJob::PagesConfig::pageSpec( return this; } +QPDFJob::PagesConfig* +QPDFJob::PagesConfig::file(std::string const& arg) +{ + this->config->o.m->page_specs.emplace_back(arg, nullptr, ""); + return this; +} + +QPDFJob::PagesConfig* +QPDFJob::PagesConfig::range(std::string const& arg) +{ + if (config->o.m->page_specs.empty()) { + QTC::TC("qpdf", "QPDFJob misplaced page range"); + usage("in --range must follow a file name"); + } + auto& last = config->o.m->page_specs.back(); + if (!last.range.empty()) { + QTC::TC("qpdf", "QPDFJob duplicated range"); + usage("--range already specified for this file"); + } + last.range = arg; + return this; +} + +QPDFJob::PagesConfig* +QPDFJob::PagesConfig::password(std::string const& arg) +{ + if (config->o.m->page_specs.empty()) { + QTC::TC("qpdf", "QPDFJob misplaced pages password"); + usage("in --pages, --password must follow a file name"); + } + auto& last = config->o.m->page_specs.back(); + if (last.password) { + QTC::TC("qpdf", "QPDFJob duplicated pages password"); + usage("--password already specified for this file"); + } + last.password = QUtil::make_shared_cstr(arg); + return this; +} + std::shared_ptr<QPDFJob::UOConfig> QPDFJob::Config::overlay() { |