mirror of
https://github.com/qpdf/qpdf.git
synced 2024-05-29 16:30:53 +00:00
Move QTC::TC for qpdf to QPDFJob
All the coverage cases that used to be in qpdf.cc are now in QPDFJob*.cc. It doesn't really matter, but better to follow the convention of starting with the class that includes the coverage call.
This commit is contained in:
parent
b42f3e1d15
commit
03e67a28fe
|
@ -141,7 +141,7 @@ ImageOptimizer::makePipeline(std::string const& description, Pipeline* next)
|
||||||
QPDFObjectHandle components_obj = dict.getKey("/BitsPerComponent");
|
QPDFObjectHandle components_obj = dict.getKey("/BitsPerComponent");
|
||||||
if (! (components_obj.isInteger() && (components_obj.getIntValue() == 8)))
|
if (! (components_obj.isInteger() && (components_obj.getIntValue() == 8)))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf image optimize bits per component");
|
QTC::TC("qpdf", "QPDFJob image optimize bits per component");
|
||||||
if (! description.empty())
|
if (! description.empty())
|
||||||
{
|
{
|
||||||
o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
||||||
|
@ -194,7 +194,7 @@ ImageOptimizer::makePipeline(std::string const& description, Pipeline* next)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf image optimize colorspace");
|
QTC::TC("qpdf", "QPDFJob image optimize colorspace");
|
||||||
if (! description.empty())
|
if (! description.empty())
|
||||||
{
|
{
|
||||||
o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
||||||
|
@ -209,7 +209,7 @@ ImageOptimizer::makePipeline(std::string const& description, Pipeline* next)
|
||||||
((this->oi_min_height > 0) && (h <= this->oi_min_height)) ||
|
((this->oi_min_height > 0) && (h <= this->oi_min_height)) ||
|
||||||
((this->oi_min_area > 0) && ((w * h) <= this->oi_min_area)))
|
((this->oi_min_area > 0) && ((w * h) <= this->oi_min_area)))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf image optimize too small");
|
QTC::TC("qpdf", "QPDFJob image optimize too small");
|
||||||
if (! description.empty())
|
if (! description.empty())
|
||||||
{
|
{
|
||||||
o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
||||||
|
@ -231,7 +231,7 @@ ImageOptimizer::evaluate(std::string const& description)
|
||||||
{
|
{
|
||||||
if (! image.pipeStreamData(0, 0, qpdf_dl_specialized, true))
|
if (! image.pipeStreamData(0, 0, qpdf_dl_specialized, true))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf image optimize no pipeline");
|
QTC::TC("qpdf", "QPDFJob image optimize no pipeline");
|
||||||
o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
||||||
cout << prefix << ": " << description
|
cout << prefix << ": " << description
|
||||||
<< ": not optimizing because unable to decode data"
|
<< ": not optimizing because unable to decode data"
|
||||||
|
@ -255,7 +255,7 @@ ImageOptimizer::evaluate(std::string const& description)
|
||||||
long long orig_length = image.getDict().getKey("/Length").getIntValue();
|
long long orig_length = image.getDict().getKey("/Length").getIntValue();
|
||||||
if (c.getCount() >= orig_length)
|
if (c.getCount() >= orig_length)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf image optimize no shrink");
|
QTC::TC("qpdf", "QPDFJob image optimize no shrink");
|
||||||
o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
o.doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
||||||
cout << prefix << ": " << description
|
cout << prefix << ": " << description
|
||||||
<< ": not optimizing because DCT compression does not"
|
<< ": not optimizing because DCT compression does not"
|
||||||
|
@ -668,12 +668,12 @@ QPDFJob::getExitCode() const
|
||||||
{
|
{
|
||||||
if (this->m->encryption_status & qpdf_es_encrypted)
|
if (this->m->encryption_status & qpdf_es_encrypted)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf check encrypted encrypted");
|
QTC::TC("qpdf", "QPDFJob check encrypted encrypted");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf check encrypted not encrypted");
|
QTC::TC("qpdf", "QPDFJob check encrypted not encrypted");
|
||||||
return EXIT_IS_NOT_ENCRYPTED;
|
return EXIT_IS_NOT_ENCRYPTED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -683,18 +683,18 @@ QPDFJob::getExitCode() const
|
||||||
{
|
{
|
||||||
if (this->m->encryption_status & qpdf_es_password_incorrect)
|
if (this->m->encryption_status & qpdf_es_password_incorrect)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf check password password incorrect");
|
QTC::TC("qpdf", "QPDFJob check password password incorrect");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf check password password correct");
|
QTC::TC("qpdf", "QPDFJob check password password correct");
|
||||||
return EXIT_CORRECT_PASSWORD;
|
return EXIT_CORRECT_PASSWORD;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf check password not encrypted");
|
QTC::TC("qpdf", "QPDFJob check password not encrypted");
|
||||||
return EXIT_IS_NOT_ENCRYPTED;
|
return EXIT_IS_NOT_ENCRYPTED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -782,7 +782,7 @@ QPDFJob::checkConfiguration()
|
||||||
if ((! m->split_pages) &&
|
if ((! m->split_pages) &&
|
||||||
QUtil::same_file(m->infilename.get(), m->outfilename.get()))
|
QUtil::same_file(m->infilename.get(), m->outfilename.get()))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf same file error");
|
QTC::TC("qpdf", "QPDFJob same file error");
|
||||||
usage("input file and output file are the same;"
|
usage("input file and output file are the same;"
|
||||||
" use --replace-input to intentionally"
|
" use --replace-input to intentionally"
|
||||||
" overwrite the input file");
|
" overwrite the input file");
|
||||||
|
@ -1028,7 +1028,7 @@ QPDFJob::doShowObj(QPDF& pdf)
|
||||||
if (filter &&
|
if (filter &&
|
||||||
(! obj.pipeStreamData(0, 0, qpdf_dl_all)))
|
(! obj.pipeStreamData(0, 0, qpdf_dl_all)))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf unable to filter");
|
QTC::TC("qpdf", "QPDFJob unable to filter");
|
||||||
obj.warnIfPossible("unable to filter stream data");
|
obj.warnIfPossible("unable to filter stream data");
|
||||||
error = true;
|
error = true;
|
||||||
}
|
}
|
||||||
|
@ -1969,7 +1969,7 @@ QPDFJob::doInspection(QPDF& pdf)
|
||||||
}
|
}
|
||||||
if (m->show_npages)
|
if (m->show_npages)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf npages");
|
QTC::TC("qpdf", "QPDFJob npages");
|
||||||
*(this->m->cout) << pdf.getRoot().getKey("/Pages").
|
*(this->m->cout) << pdf.getRoot().getKey("/Pages").
|
||||||
getKey("/Count").getIntValue() << std::endl;
|
getKey("/Count").getIntValue() << std::endl;
|
||||||
}
|
}
|
||||||
|
@ -2067,7 +2067,7 @@ QPDFJob::doProcess(
|
||||||
{
|
{
|
||||||
// Special case: handle --password-mode=hex-bytes for input
|
// Special case: handle --password-mode=hex-bytes for input
|
||||||
// password as well as output password
|
// password as well as output password
|
||||||
QTC::TC("qpdf", "qpdf input password hex-bytes");
|
QTC::TC("qpdf", "QPDFJob input password hex-bytes");
|
||||||
ptemp = QUtil::hex_decode(password);
|
ptemp = QUtil::hex_decode(password);
|
||||||
password = ptemp.c_str();
|
password = ptemp.c_str();
|
||||||
}
|
}
|
||||||
|
@ -2182,7 +2182,7 @@ QPDFJob::validateUnderOverlay(QPDF& pdf, UnderOverlay* uo)
|
||||||
{
|
{
|
||||||
if (uo->from_nr.empty())
|
if (uo->from_nr.empty())
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf from_nr from repeat_nr");
|
QTC::TC("qpdf", "QPDFJob from_nr from repeat_nr");
|
||||||
uo->from_nr = uo->repeat_nr;
|
uo->from_nr = uo->repeat_nr;
|
||||||
}
|
}
|
||||||
uo->from_pagenos =
|
uo->from_pagenos =
|
||||||
|
@ -2244,7 +2244,7 @@ QPDFJob::doUnderOverlayForPage(
|
||||||
QPDFObjectHandle resources = dest_page.getAttribute("/Resources", true);
|
QPDFObjectHandle resources = dest_page.getAttribute("/Resources", true);
|
||||||
if (! resources.isDictionary())
|
if (! resources.isDictionary())
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf overlay page with no resources");
|
QTC::TC("qpdf", "QPDFJob overlay page with no resources");
|
||||||
resources = QPDFObjectHandle::newDictionary();
|
resources = QPDFObjectHandle::newDictionary();
|
||||||
dest_page.getObjectHandle().replaceKey("/Resources", resources);
|
dest_page.getObjectHandle().replaceKey("/Resources", resources);
|
||||||
}
|
}
|
||||||
|
@ -2668,7 +2668,7 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf)
|
||||||
// This is a non-leaf node.
|
// This is a non-leaf node.
|
||||||
if (dict.hasKey("/Resources"))
|
if (dict.hasKey("/Resources"))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf found resources in non-leaf");
|
QTC::TC("qpdf", "QPDFJob found resources in non-leaf");
|
||||||
doIfVerbose([&](std::ostream& cout,
|
doIfVerbose([&](std::ostream& cout,
|
||||||
std::string const& prefix) {
|
std::string const& prefix) {
|
||||||
cout << " found resources in non-leaf page node "
|
cout << " found resources in non-leaf page node "
|
||||||
|
@ -2692,7 +2692,7 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf)
|
||||||
QPDFObjGen resources_og = resources.getObjGen();
|
QPDFObjGen resources_og = resources.getObjGen();
|
||||||
if (resources_seen.count(resources_og))
|
if (resources_seen.count(resources_og))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf found shared resources in leaf");
|
QTC::TC("qpdf", "QPDFJob found shared resources in leaf");
|
||||||
doIfVerbose([&](std::ostream& cout,
|
doIfVerbose([&](std::ostream& cout,
|
||||||
std::string const& prefix) {
|
std::string const& prefix) {
|
||||||
cout << " found shared resources in leaf node "
|
cout << " found shared resources in leaf node "
|
||||||
|
@ -2714,7 +2714,7 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf)
|
||||||
QPDFObjGen xobject_og = xobject.getObjGen();
|
QPDFObjGen xobject_og = xobject.getObjGen();
|
||||||
if (resources_seen.count(xobject_og))
|
if (resources_seen.count(xobject_og))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf found shared xobject in leaf");
|
QTC::TC("qpdf", "QPDFJob found shared xobject in leaf");
|
||||||
doIfVerbose([&](std::ostream& cout,
|
doIfVerbose([&](std::ostream& cout,
|
||||||
std::string const& prefix) {
|
std::string const& prefix) {
|
||||||
cout << " found shared xobject in leaf node "
|
cout << " found shared xobject in leaf node "
|
||||||
|
@ -2802,7 +2802,7 @@ QPDFJob::handlePageSpecs(
|
||||||
filenames.insert(page_spec.filename);
|
filenames.insert(page_spec.filename);
|
||||||
}
|
}
|
||||||
m->keep_files_open = (filenames.size() <= m->keep_files_open_threshold);
|
m->keep_files_open = (filenames.size() <= m->keep_files_open_threshold);
|
||||||
QTC::TC("qpdf", "qpdf automatically set keep files open",
|
QTC::TC("qpdf", "QPDFJob automatically set keep files open",
|
||||||
m->keep_files_open ? 0 : 1);
|
m->keep_files_open ? 0 : 1);
|
||||||
doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
||||||
cout << prefix << ": selecting --keep-open-files="
|
cout << prefix << ": selecting --keep-open-files="
|
||||||
|
@ -2837,7 +2837,7 @@ QPDFJob::handlePageSpecs(
|
||||||
if ((! m->encryption_file.empty()) && (password == 0) &&
|
if ((! m->encryption_file.empty()) && (password == 0) &&
|
||||||
(page_spec.filename == m->encryption_file))
|
(page_spec.filename == m->encryption_file))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf pages encryption password");
|
QTC::TC("qpdf", "QPDFJob pages encryption password");
|
||||||
password = m->encryption_file_password.get();
|
password = m->encryption_file_password.get();
|
||||||
}
|
}
|
||||||
doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
doIfVerbose([&](std::ostream& cout, std::string const& prefix) {
|
||||||
|
@ -2848,14 +2848,14 @@ QPDFJob::handlePageSpecs(
|
||||||
ClosedFileInputSource* cis = 0;
|
ClosedFileInputSource* cis = 0;
|
||||||
if (! m->keep_files_open)
|
if (! m->keep_files_open)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf keep files open n");
|
QTC::TC("qpdf", "QPDFJob keep files open n");
|
||||||
cis = new ClosedFileInputSource(page_spec.filename.c_str());
|
cis = new ClosedFileInputSource(page_spec.filename.c_str());
|
||||||
is = cis;
|
is = cis;
|
||||||
cis->stayOpen(true);
|
cis->stayOpen(true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf keep files open y");
|
QTC::TC("qpdf", "QPDFJob keep files open y");
|
||||||
FileInputSource* fis = new FileInputSource();
|
FileInputSource* fis = new FileInputSource();
|
||||||
is = fis;
|
is = fis;
|
||||||
fis->setFilename(page_spec.filename.c_str());
|
fis->setFilename(page_spec.filename.c_str());
|
||||||
|
@ -3005,7 +3005,7 @@ QPDFJob::handlePageSpecs(
|
||||||
unsigned long long from_uuid = page_data.qpdf->getUniqueId();
|
unsigned long long from_uuid = page_data.qpdf->getUniqueId();
|
||||||
if (copied_pages[from_uuid].count(to_copy_og))
|
if (copied_pages[from_uuid].count(to_copy_og))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf copy same page more than once",
|
QTC::TC("qpdf", "QPDFJob copy same page more than once",
|
||||||
(page_data.qpdf == &pdf) ? 0 : 1);
|
(page_data.qpdf == &pdf) ? 0 : 1);
|
||||||
to_copy = to_copy.shallowCopyPage();
|
to_copy = to_copy.shallowCopyPage();
|
||||||
}
|
}
|
||||||
|
@ -3043,11 +3043,11 @@ QPDFJob::handlePageSpecs(
|
||||||
{
|
{
|
||||||
if (! this_file)
|
if (! this_file)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf copy fields not this file");
|
QTC::TC("qpdf", "QPDFJob copy fields not this file");
|
||||||
}
|
}
|
||||||
else if (! first_copy_from_orig)
|
else if (! first_copy_from_orig)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf copy fields non-first from orig");
|
QTC::TC("qpdf", "QPDFJob copy fields non-first from orig");
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -3094,7 +3094,7 @@ QPDFJob::handlePageSpecs(
|
||||||
{
|
{
|
||||||
for (auto field: this_afdh->getFormFieldsForPage(page))
|
for (auto field: this_afdh->getFormFieldsForPage(page))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf pages keeping field from original");
|
QTC::TC("qpdf", "QPDFJob pages keeping field from original");
|
||||||
referenced_fields.insert(field.getObjectHandle().getObjGen());
|
referenced_fields.insert(field.getObjectHandle().getObjGen());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3126,12 +3126,12 @@ QPDFJob::handlePageSpecs(
|
||||||
}
|
}
|
||||||
if (new_fields.getArrayNItems() > 0)
|
if (new_fields.getArrayNItems() > 0)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf keep some fields in pages");
|
QTC::TC("qpdf", "QPDFJob keep some fields in pages");
|
||||||
acroform.replaceKey("/Fields", new_fields);
|
acroform.replaceKey("/Fields", new_fields);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf no more fields in pages");
|
QTC::TC("qpdf", "QPDFJob no more fields in pages");
|
||||||
pdf.getRoot().removeKey("/AcroForm");
|
pdf.getRoot().removeKey("/AcroForm");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3172,11 +3172,11 @@ QPDFJob::maybeFixWritePassword(int R, std::string& password)
|
||||||
switch (m->password_mode)
|
switch (m->password_mode)
|
||||||
{
|
{
|
||||||
case QPDFJob::pm_bytes:
|
case QPDFJob::pm_bytes:
|
||||||
QTC::TC("qpdf", "qpdf password mode bytes");
|
QTC::TC("qpdf", "QPDFJob password mode bytes");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QPDFJob::pm_hex_bytes:
|
case QPDFJob::pm_hex_bytes:
|
||||||
QTC::TC("qpdf", "qpdf password mode hex-bytes");
|
QTC::TC("qpdf", "QPDFJob password mode hex-bytes");
|
||||||
password = QUtil::hex_decode(password);
|
password = QUtil::hex_decode(password);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -3198,7 +3198,7 @@ QPDFJob::maybeFixWritePassword(int R, std::string& password)
|
||||||
{
|
{
|
||||||
if (! is_valid_utf8)
|
if (! is_valid_utf8)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf password not unicode");
|
QTC::TC("qpdf", "QPDFJob password not unicode");
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"supplied password is not valid UTF-8");
|
"supplied password is not valid UTF-8");
|
||||||
}
|
}
|
||||||
|
@ -3207,7 +3207,7 @@ QPDFJob::maybeFixWritePassword(int R, std::string& password)
|
||||||
std::string encoded;
|
std::string encoded;
|
||||||
if (! QUtil::utf8_to_pdf_doc(password, encoded))
|
if (! QUtil::utf8_to_pdf_doc(password, encoded))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf password not encodable");
|
QTC::TC("qpdf", "QPDFJob password not encodable");
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"supplied password cannot be encoded for"
|
"supplied password cannot be encoded for"
|
||||||
" 40-bit or 128-bit encryption formats");
|
" 40-bit or 128-bit encryption formats");
|
||||||
|
@ -3222,7 +3222,7 @@ QPDFJob::maybeFixWritePassword(int R, std::string& password)
|
||||||
std::string encoded;
|
std::string encoded;
|
||||||
if (QUtil::utf8_to_pdf_doc(password, encoded))
|
if (QUtil::utf8_to_pdf_doc(password, encoded))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf auto-encode password");
|
QTC::TC("qpdf", "QPDFJob auto-encode password");
|
||||||
doIfVerbose([&](std::ostream& cout,
|
doIfVerbose([&](std::ostream& cout,
|
||||||
std::string const& prefix) {
|
std::string const& prefix) {
|
||||||
cout
|
cout
|
||||||
|
@ -3236,7 +3236,7 @@ QPDFJob::maybeFixWritePassword(int R, std::string& password)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf bytes fallback warning");
|
QTC::TC("qpdf", "QPDFJob bytes fallback warning");
|
||||||
*(this->m->cerr)
|
*(this->m->cerr)
|
||||||
<< this->m->message_prefix << ": WARNING: "
|
<< this->m->message_prefix << ": WARNING: "
|
||||||
<< "supplied password looks like a Unicode"
|
<< "supplied password looks like a Unicode"
|
||||||
|
@ -3251,7 +3251,7 @@ QPDFJob::maybeFixWritePassword(int R, std::string& password)
|
||||||
}
|
}
|
||||||
else if ((R >= 5) && (! is_valid_utf8))
|
else if ((R >= 5) && (! is_valid_utf8))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf invalid utf-8 in auto");
|
QTC::TC("qpdf", "QPDFJob invalid utf-8 in auto");
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"supplied password is not a valid Unicode password,"
|
"supplied password is not a valid Unicode password,"
|
||||||
" which is required for 256-bit encryption; to"
|
" which is required for 256-bit encryption; to"
|
||||||
|
@ -3313,7 +3313,7 @@ QPDFJob::setEncryptionOptions(QPDF& pdf, QPDFWriter& w)
|
||||||
{
|
{
|
||||||
// Do not set warnings = true for this case as this does
|
// Do not set warnings = true for this case as this does
|
||||||
// not reflect a potential problem with the input file.
|
// not reflect a potential problem with the input file.
|
||||||
QTC::TC("qpdf", "qpdf weak crypto warning");
|
QTC::TC("qpdf", "QPDFJob weak crypto warning");
|
||||||
*(this->m->cerr)
|
*(this->m->cerr)
|
||||||
<< this->m->message_prefix
|
<< this->m->message_prefix
|
||||||
<< ": writing a file with RC4, a weak cryptographic algorithm"
|
<< ": writing a file with RC4, a weak cryptographic algorithm"
|
||||||
|
@ -3501,7 +3501,7 @@ QPDFJob::doSplitPages(QPDF& pdf, bool& warnings)
|
||||||
char* num_spot = strstr(const_cast<char*>(m->outfilename.get()), "%d");
|
char* num_spot = strstr(const_cast<char*>(m->outfilename.get()), "%d");
|
||||||
if (num_spot != 0)
|
if (num_spot != 0)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf split-pages %d");
|
QTC::TC("qpdf", "QPDFJob split-pages %d");
|
||||||
before = std::string(m->outfilename.get(),
|
before = std::string(m->outfilename.get(),
|
||||||
QIntC::to_size(num_spot - m->outfilename.get()));
|
QIntC::to_size(num_spot - m->outfilename.get()));
|
||||||
after = num_spot + 2;
|
after = num_spot + 2;
|
||||||
|
@ -3510,13 +3510,13 @@ QPDFJob::doSplitPages(QPDF& pdf, bool& warnings)
|
||||||
(QUtil::str_compare_nocase(
|
(QUtil::str_compare_nocase(
|
||||||
m->outfilename.get() + len - 4, ".pdf") == 0))
|
m->outfilename.get() + len - 4, ".pdf") == 0))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf split-pages .pdf");
|
QTC::TC("qpdf", "QPDFJob split-pages .pdf");
|
||||||
before = std::string(m->outfilename.get(), len - 4) + "-";
|
before = std::string(m->outfilename.get(), len - 4) + "-";
|
||||||
after = m->outfilename.get() + len - 4;
|
after = m->outfilename.get() + len - 4;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf split-pages other");
|
QTC::TC("qpdf", "QPDFJob split-pages other");
|
||||||
before = std::string(m->outfilename.get()) + "-";
|
before = std::string(m->outfilename.get()) + "-";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3556,7 +3556,7 @@ QPDFJob::doSplitPages(QPDF& pdf, bool& warnings)
|
||||||
auto new_page = added_page(outpdf, page);
|
auto new_page = added_page(outpdf, page);
|
||||||
if (out_afdh.get())
|
if (out_afdh.get())
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf copy form fields in split_pages");
|
QTC::TC("qpdf", "QPDFJob copy form fields in split_pages");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
out_afdh->fixCopiedAnnotations(new_page, page, afdh);
|
out_afdh->fixCopiedAnnotations(new_page, page, afdh);
|
||||||
|
|
|
@ -248,12 +248,12 @@ ArgParser::argPagesPassword(char* parameter)
|
||||||
{
|
{
|
||||||
if (this->pages_password != nullptr)
|
if (this->pages_password != nullptr)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf duplicated pages password");
|
QTC::TC("qpdf", "QPDFJob duplicated pages password");
|
||||||
usage("--password already specified for this file");
|
usage("--password already specified for this file");
|
||||||
}
|
}
|
||||||
if (this->accumulated_args.size() != 1)
|
if (this->accumulated_args.size() != 1)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf misplaced pages password");
|
QTC::TC("qpdf", "QPDFJob misplaced pages password");
|
||||||
usage("in --pages, --password must immediately follow a file name");
|
usage("in --pages, --password must immediately follow a file name");
|
||||||
}
|
}
|
||||||
this->pages_password = parameter;
|
this->pages_password = parameter;
|
||||||
|
@ -291,7 +291,7 @@ ArgParser::argPagesPositional(char* arg)
|
||||||
if (arg == nullptr)
|
if (arg == nullptr)
|
||||||
{
|
{
|
||||||
// The filename or password was the last argument
|
// The filename or password was the last argument
|
||||||
QTC::TC("qpdf", "qpdf pages range omitted at end",
|
QTC::TC("qpdf", "QPDFJob pages range omitted at end",
|
||||||
this->pages_password == nullptr ? 0 : 1);
|
this->pages_password == nullptr ? 0 : 1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -312,11 +312,11 @@ ArgParser::argPagesPositional(char* arg)
|
||||||
if (strcmp(range, ".") == 0)
|
if (strcmp(range, ".") == 0)
|
||||||
{
|
{
|
||||||
// "." means the input file.
|
// "." means the input file.
|
||||||
QTC::TC("qpdf", "qpdf pages range omitted with .");
|
QTC::TC("qpdf", "QPDFJob pages range omitted with .");
|
||||||
}
|
}
|
||||||
else if (QUtil::file_can_be_opened(range))
|
else if (QUtil::file_can_be_opened(range))
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "qpdf pages range omitted in middle");
|
QTC::TC("qpdf", "QPDFJob pages range omitted in middle");
|
||||||
// Yup, it's a file.
|
// Yup, it's a file.
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -105,7 +105,7 @@ QPDF found wrong endstream in recovery 0
|
||||||
QPDF_Stream pipeStreamData with null pipeline 0
|
QPDF_Stream pipeStreamData with null pipeline 0
|
||||||
QPDFWriter not recompressing /FlateDecode 0
|
QPDFWriter not recompressing /FlateDecode 0
|
||||||
QPDF_encryption xref stream from encrypted file 0
|
QPDF_encryption xref stream from encrypted file 0
|
||||||
qpdf unable to filter 0
|
QPDFJob unable to filter 0
|
||||||
QUtil non-trivial UTF-16 0
|
QUtil non-trivial UTF-16 0
|
||||||
QPDF xref overwrite object 0
|
QPDF xref overwrite object 0
|
||||||
QPDF decoding error warning 0
|
QPDF decoding error warning 0
|
||||||
|
@ -226,7 +226,7 @@ QPDFWriter foreign object 0
|
||||||
QPDFWriter copy use_aes 1
|
QPDFWriter copy use_aes 1
|
||||||
QPDFObjectHandle indirect without context 0
|
QPDFObjectHandle indirect without context 0
|
||||||
QPDFObjectHandle trailing data in parse 0
|
QPDFObjectHandle trailing data in parse 0
|
||||||
qpdf pages encryption password 0
|
QPDFJob pages encryption password 0
|
||||||
QPDFTokenizer EOF reading token 0
|
QPDFTokenizer EOF reading token 0
|
||||||
QPDFTokenizer EOF reading appendable token 0
|
QPDFTokenizer EOF reading appendable token 0
|
||||||
QPDFWriter extra header text no newline 0
|
QPDFWriter extra header text no newline 0
|
||||||
|
@ -255,9 +255,9 @@ QPDF not caching overridden objstm object 0
|
||||||
QPDFWriter original obj non-zero gen 0
|
QPDFWriter original obj non-zero gen 0
|
||||||
QPDF_optimization indirect outlines 0
|
QPDF_optimization indirect outlines 0
|
||||||
QPDF xref space 2
|
QPDF xref space 2
|
||||||
qpdf pages range omitted at end 1
|
QPDFJob pages range omitted at end 1
|
||||||
qpdf pages range omitted in middle 0
|
QPDFJob pages range omitted in middle 0
|
||||||
qpdf npages 0
|
QPDFJob npages 0
|
||||||
QPDF already reserved object 0
|
QPDF already reserved object 0
|
||||||
QPDFWriter standard deterministic ID 1
|
QPDFWriter standard deterministic ID 1
|
||||||
QPDFWriter linearized deterministic ID 1
|
QPDFWriter linearized deterministic ID 1
|
||||||
|
@ -272,10 +272,10 @@ QPDFObjectHandle no val for last key 0
|
||||||
QPDF resolve failure to null 0
|
QPDF resolve failure to null 0
|
||||||
QPDFWriter preserve unreferenced standard 0
|
QPDFWriter preserve unreferenced standard 0
|
||||||
QPDFObjectHandle errors in parsecontent 0
|
QPDFObjectHandle errors in parsecontent 0
|
||||||
qpdf same file error 0
|
QPDFJob same file error 0
|
||||||
qpdf split-pages %d 0
|
QPDFJob split-pages %d 0
|
||||||
qpdf split-pages .pdf 0
|
QPDFJob split-pages .pdf 0
|
||||||
qpdf split-pages other 0
|
QPDFJob split-pages other 0
|
||||||
QPDFTokenizer allowing bad token 0
|
QPDFTokenizer allowing bad token 0
|
||||||
QPDF ignore first space in xref entry 0
|
QPDF ignore first space in xref entry 0
|
||||||
QPDF ignore first extra space in xref entry 0
|
QPDF ignore first extra space in xref entry 0
|
||||||
|
@ -349,9 +349,9 @@ QPDFAcroFormDocumentHelper non-dictionary field 0
|
||||||
QPDFAcroFormDocumentHelper loop 0
|
QPDFAcroFormDocumentHelper loop 0
|
||||||
QPDFAcroFormDocumentHelper field found 1
|
QPDFAcroFormDocumentHelper field found 1
|
||||||
QPDFAcroFormDocumentHelper annotation found 1
|
QPDFAcroFormDocumentHelper annotation found 1
|
||||||
qpdf keep files open n 0
|
QPDFJob keep files open n 0
|
||||||
qpdf keep files open y 0
|
QPDFJob keep files open y 0
|
||||||
qpdf automatically set keep files open 1
|
QPDFJob automatically set keep files open 1
|
||||||
QPDFPageLabelDocumentHelper skip first 0
|
QPDFPageLabelDocumentHelper skip first 0
|
||||||
QPDFOutlineObjectHelper direct dest 0
|
QPDFOutlineObjectHelper direct dest 0
|
||||||
QPDFOutlineObjectHelper action dest 0
|
QPDFOutlineObjectHelper action dest 0
|
||||||
|
@ -392,24 +392,24 @@ QPDFFormFieldObjectHelper list found 0
|
||||||
QPDFFormFieldObjectHelper list first too low 0
|
QPDFFormFieldObjectHelper list first too low 0
|
||||||
QPDFFormFieldObjectHelper list last too high 0
|
QPDFFormFieldObjectHelper list last too high 0
|
||||||
QPDF detected dangling ref 0
|
QPDF detected dangling ref 0
|
||||||
qpdf image optimize no pipeline 0
|
QPDFJob image optimize no pipeline 0
|
||||||
qpdf image optimize no shrink 0
|
QPDFJob image optimize no shrink 0
|
||||||
qpdf image optimize too small 0
|
QPDFJob image optimize too small 0
|
||||||
QPDFFormFieldObjectHelper WinAnsi 0
|
QPDFFormFieldObjectHelper WinAnsi 0
|
||||||
QPDF pipe foreign encrypted stream 0
|
QPDF pipe foreign encrypted stream 0
|
||||||
QPDF copy foreign stream with provider 0
|
QPDF copy foreign stream with provider 0
|
||||||
QPDF copy foreign stream with buffer 0
|
QPDF copy foreign stream with buffer 0
|
||||||
QPDF immediate copy stream data 0
|
QPDF immediate copy stream data 0
|
||||||
qpdf copy same page more than once 1
|
QPDFJob copy same page more than once 1
|
||||||
QPDFPageObjectHelper bad token finding names 0
|
QPDFPageObjectHelper bad token finding names 0
|
||||||
qpdf password mode bytes 0
|
QPDFJob password mode bytes 0
|
||||||
qpdf password mode hex-bytes 0
|
QPDFJob password mode hex-bytes 0
|
||||||
qpdf password not unicode 0
|
QPDFJob password not unicode 0
|
||||||
qpdf password not encodable 0
|
QPDFJob password not encodable 0
|
||||||
qpdf auto-encode password 0
|
QPDFJob auto-encode password 0
|
||||||
qpdf bytes fallback warning 0
|
QPDFJob bytes fallback warning 0
|
||||||
qpdf invalid utf-8 in auto 0
|
QPDFJob invalid utf-8 in auto 0
|
||||||
qpdf input password hex-bytes 0
|
QPDFJob input password hex-bytes 0
|
||||||
QPDFPageDocumentHelper ignore annotation with no appearance 0
|
QPDFPageDocumentHelper ignore annotation with no appearance 0
|
||||||
QPDFFormFieldObjectHelper create AS from scratch 0
|
QPDFFormFieldObjectHelper create AS from scratch 0
|
||||||
QPDFFormFieldObjectHelper create AP from scratch 0
|
QPDFFormFieldObjectHelper create AP from scratch 0
|
||||||
|
@ -417,7 +417,7 @@ QPDFFormFieldObjectHelper replaced BMC at EOF 0
|
||||||
QPDFFormFieldObjectHelper fallback Tf 0
|
QPDFFormFieldObjectHelper fallback Tf 0
|
||||||
QPDFPageObjectHelper non-trivial inheritance 0
|
QPDFPageObjectHelper non-trivial inheritance 0
|
||||||
QPDFPageObjectHelper copy shared attribute 1
|
QPDFPageObjectHelper copy shared attribute 1
|
||||||
qpdf from_nr from repeat_nr 0
|
QPDFJob from_nr from repeat_nr 0
|
||||||
QPDF resolve duplicated page object 0
|
QPDF resolve duplicated page object 0
|
||||||
QPDF handle direct page object 0
|
QPDF handle direct page object 0
|
||||||
QPDFTokenizer finder found wrong word 0
|
QPDFTokenizer finder found wrong word 0
|
||||||
|
@ -425,8 +425,8 @@ QPDFTokenizer found EI by byte count 0
|
||||||
QPDFTokenizer found EI after more than one try 0
|
QPDFTokenizer found EI after more than one try 0
|
||||||
QPDFPageObjectHelper externalize inline image 0
|
QPDFPageObjectHelper externalize inline image 0
|
||||||
QPDFPageObjectHelper keep inline image 0
|
QPDFPageObjectHelper keep inline image 0
|
||||||
qpdf image optimize colorspace 0
|
QPDFJob image optimize colorspace 0
|
||||||
qpdf image optimize bits per component 0
|
QPDFJob image optimize bits per component 0
|
||||||
QPDFWriter remove empty DecodeParms 0
|
QPDFWriter remove empty DecodeParms 0
|
||||||
QPDFObjectHandle uint returning 0 0
|
QPDFObjectHandle uint returning 0 0
|
||||||
QPDFObjectHandle int returning INT_MIN 0
|
QPDFObjectHandle int returning INT_MIN 0
|
||||||
|
@ -443,13 +443,13 @@ QPDFWriter no encryption sig contents 0
|
||||||
QPDFPageObjectHelper colorspace lookup 0
|
QPDFPageObjectHelper colorspace lookup 0
|
||||||
QPDFWriter ignore XRef in qdf mode 0
|
QPDFWriter ignore XRef in qdf mode 0
|
||||||
QPDFPageObjectHelper filter form xobject 0
|
QPDFPageObjectHelper filter form xobject 0
|
||||||
qpdf found resources in non-leaf 0
|
QPDFJob found resources in non-leaf 0
|
||||||
qpdf found shared resources in leaf 0
|
QPDFJob found shared resources in leaf 0
|
||||||
qpdf found shared xobject in leaf 0
|
QPDFJob found shared xobject in leaf 0
|
||||||
QPDF copy foreign with data 1
|
QPDF copy foreign with data 1
|
||||||
QPDF copy foreign with foreign_stream 1
|
QPDF copy foreign with foreign_stream 1
|
||||||
QPDFObjectHandle need_newline 1
|
QPDFObjectHandle need_newline 1
|
||||||
qpdf pages range omitted with . 0
|
QPDFJob pages range omitted with . 0
|
||||||
qpdf-c invalid object handle 0
|
qpdf-c invalid object handle 0
|
||||||
qpdf-c called qpdf_oh_release 0
|
qpdf-c called qpdf_oh_release 0
|
||||||
qpdf-c called qpdf_oh_release_all 0
|
qpdf-c called qpdf_oh_release_all 0
|
||||||
|
@ -573,10 +573,10 @@ QPDFPageObjectHelper flatten inherit rotate 0
|
||||||
QPDFAcroFormDocumentHelper copy annotation 3
|
QPDFAcroFormDocumentHelper copy annotation 3
|
||||||
QPDFAcroFormDocumentHelper field with parent 3
|
QPDFAcroFormDocumentHelper field with parent 3
|
||||||
QPDFAcroFormDocumentHelper modify ap matrix 0
|
QPDFAcroFormDocumentHelper modify ap matrix 0
|
||||||
qpdf copy form fields in split_pages 0
|
QPDFJob copy form fields in split_pages 0
|
||||||
qpdf keep some fields in pages 0
|
QPDFJob keep some fields in pages 0
|
||||||
qpdf pages keeping field from original 0
|
QPDFJob pages keeping field from original 0
|
||||||
qpdf no more fields in pages 0
|
QPDFJob no more fields in pages 0
|
||||||
QPDFObjectHandle merge reuse 0
|
QPDFObjectHandle merge reuse 0
|
||||||
QPDFObjectHandle merge generate 0
|
QPDFObjectHandle merge generate 0
|
||||||
QPDFFormFieldObjectHelper get font from /DR 0
|
QPDFFormFieldObjectHelper get font from /DR 0
|
||||||
|
@ -587,15 +587,15 @@ QPDFAcroFormDocumentHelper ap conflict 0
|
||||||
QPDFAcroFormDocumentHelper ap rename 0
|
QPDFAcroFormDocumentHelper ap rename 0
|
||||||
QPDFAcroFormDocumentHelper /DA parse error 0
|
QPDFAcroFormDocumentHelper /DA parse error 0
|
||||||
QPDFAcroFormDocumentHelper AP parse error 0
|
QPDFAcroFormDocumentHelper AP parse error 0
|
||||||
qpdf copy fields not this file 0
|
QPDFJob copy fields not this file 0
|
||||||
qpdf copy fields non-first from orig 0
|
QPDFJob copy fields non-first from orig 0
|
||||||
QPDF resolve duplicated page in insert 0
|
QPDF resolve duplicated page in insert 0
|
||||||
QPDFWriter preserve object streams 1
|
QPDFWriter preserve object streams 1
|
||||||
QPDFWriter exclude from object stream 0
|
QPDFWriter exclude from object stream 0
|
||||||
QPDF_pages findPage not found 0
|
QPDF_pages findPage not found 0
|
||||||
qpdf overlay page with no resources 0
|
QPDFJob overlay page with no resources 0
|
||||||
QPDFObjectHandle check ownership 0
|
QPDFObjectHandle check ownership 0
|
||||||
qpdf weak crypto warning 0
|
QPDFJob weak crypto warning 0
|
||||||
qpdf-c called qpdf_oh_is_initialized 0
|
qpdf-c called qpdf_oh_is_initialized 0
|
||||||
qpdf-c registered progress reporter 0
|
qpdf-c registered progress reporter 0
|
||||||
qpdf-c called qpdf_oh_new_uninitialized 0
|
qpdf-c called qpdf_oh_new_uninitialized 0
|
||||||
|
@ -621,13 +621,13 @@ qpdf-c called qpdf_oh_replace_stream_data 0
|
||||||
qpdf-c silence oh errors 0
|
qpdf-c silence oh errors 0
|
||||||
qpdf-c called qpdf_oh_get_binary_string_value 0
|
qpdf-c called qpdf_oh_get_binary_string_value 0
|
||||||
qpdf-c called qpdf_oh_new_binary_string 0
|
qpdf-c called qpdf_oh_new_binary_string 0
|
||||||
qpdf duplicated pages password 0
|
QPDFJob duplicated pages password 0
|
||||||
qpdf misplaced pages password 0
|
QPDFJob misplaced pages password 0
|
||||||
qpdf check encrypted encrypted 0
|
QPDFJob check encrypted encrypted 0
|
||||||
qpdf check encrypted not encrypted 0
|
QPDFJob check encrypted not encrypted 0
|
||||||
qpdf check password password incorrect 0
|
QPDFJob check password password incorrect 0
|
||||||
qpdf check password password correct 0
|
QPDFJob check password password correct 0
|
||||||
qpdf check password not encrypted 0
|
QPDFJob check password not encrypted 0
|
||||||
QPDFJob_config password file 0
|
QPDFJob_config password file 0
|
||||||
QPDFJob_config password stdin 0
|
QPDFJob_config password stdin 0
|
||||||
QPDFJob json bare not empty 0
|
QPDFJob json bare not empty 0
|
||||||
|
|
Loading…
Reference in New Issue
Block a user