mirror of
https://github.com/qpdf/qpdf.git
synced 2025-02-03 12:28:27 +00:00
In QPDFJob::handlePageSpecs merge remove_unreferenced into FileStore
Move checking whether unreferenced resources should be removed into FileStore::process_file
This commit is contained in:
parent
94701d6e2b
commit
41f6287009
@ -443,6 +443,7 @@ class QPDFJob
|
||||
ClosedFileInputSource* cfis{};
|
||||
std::vector<QPDFObjectHandle> orig_pages;
|
||||
int n_pages;
|
||||
bool remove_unreferenced{false};
|
||||
};
|
||||
|
||||
class FileStore
|
||||
|
@ -2392,6 +2392,11 @@ QPDFJob::FileStore::process_file(std::string const& filename, QPDFJob::InputFile
|
||||
file_spec.qpdf = file_spec.qpdf_p.get();
|
||||
file_spec.orig_pages = file_spec.qpdf->getAllPages();
|
||||
file_spec.n_pages = QIntC::to_int(file_spec.orig_pages.size());
|
||||
|
||||
if (job.m->remove_unreferenced_page_resources != QPDFJob::re_no) {
|
||||
file_spec.remove_unreferenced = job.shouldRemoveUnreferencedResources(*file_spec.qpdf);
|
||||
}
|
||||
|
||||
if (cis) {
|
||||
cis->stayOpen(false);
|
||||
file_spec.cfis = cis;
|
||||
@ -2427,6 +2432,9 @@ QPDFJob::handlePageSpecs(QPDF& pdf)
|
||||
auto res = m->file_store.files.insert({m->infilename, &pdf});
|
||||
res.first->second.orig_pages = pdf.getAllPages();
|
||||
res.first->second.n_pages = QIntC::to_int(res.first->second.orig_pages.size());
|
||||
if (m->remove_unreferenced_page_resources != QPDFJob::re_no) {
|
||||
res.first->second.remove_unreferenced = shouldRemoveUnreferencedResources(pdf);
|
||||
}
|
||||
|
||||
// Parse all page specifications and translate them into lists of actual pages.
|
||||
|
||||
@ -2459,23 +2467,6 @@ QPDFJob::handlePageSpecs(QPDF& pdf)
|
||||
}
|
||||
}
|
||||
|
||||
std::map<unsigned long long, bool> remove_unreferenced;
|
||||
if (m->remove_unreferenced_page_resources != QPDFJob::re_no) {
|
||||
for (auto const& [filename, file_spec]: m->file_store.files) {
|
||||
if (file_spec.cfis) {
|
||||
file_spec.cfis->stayOpen(true);
|
||||
}
|
||||
QPDF& other(*file_spec.qpdf);
|
||||
auto other_uuid = other.getUniqueId();
|
||||
if (remove_unreferenced.count(other_uuid) == 0) {
|
||||
remove_unreferenced[other_uuid] = shouldRemoveUnreferencedResources(other);
|
||||
}
|
||||
if (file_spec.cfis) {
|
||||
file_spec.cfis->stayOpen(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Clear all pages out of the primary QPDF's pages tree but leave the objects in place in the
|
||||
// file so they can be re-added without changing their object numbers. This enables other things
|
||||
// in the original file, such as outlines, to continue to work.
|
||||
@ -2560,7 +2551,7 @@ QPDFJob::handlePageSpecs(QPDF& pdf)
|
||||
to_copy = to_copy.shallowCopyPage();
|
||||
} else {
|
||||
copied_pages[from_uuid].insert(to_copy_og);
|
||||
if (remove_unreferenced[from_uuid]) {
|
||||
if (file_spec.remove_unreferenced) {
|
||||
to_copy.removeUnreferencedResources();
|
||||
}
|
||||
}
|
||||
|
@ -1,157 +1,157 @@
|
||||
qpdf: selecting --keep-open-files=n
|
||||
qpdf: processing 001-kfo.pdf
|
||||
qpdf: processing 002-kfo.pdf
|
||||
qpdf: processing 003-kfo.pdf
|
||||
qpdf: processing 004-kfo.pdf
|
||||
qpdf: processing 005-kfo.pdf
|
||||
qpdf: processing 006-kfo.pdf
|
||||
qpdf: processing 007-kfo.pdf
|
||||
qpdf: processing 008-kfo.pdf
|
||||
qpdf: processing 009-kfo.pdf
|
||||
qpdf: processing 010-kfo.pdf
|
||||
qpdf: processing 011-kfo.pdf
|
||||
qpdf: processing 012-kfo.pdf
|
||||
qpdf: processing 013-kfo.pdf
|
||||
qpdf: processing 014-kfo.pdf
|
||||
qpdf: processing 015-kfo.pdf
|
||||
qpdf: processing 016-kfo.pdf
|
||||
qpdf: processing 017-kfo.pdf
|
||||
qpdf: processing 018-kfo.pdf
|
||||
qpdf: processing 019-kfo.pdf
|
||||
qpdf: processing 020-kfo.pdf
|
||||
qpdf: processing 021-kfo.pdf
|
||||
qpdf: processing 022-kfo.pdf
|
||||
qpdf: processing 023-kfo.pdf
|
||||
qpdf: processing 024-kfo.pdf
|
||||
qpdf: processing 025-kfo.pdf
|
||||
qpdf: processing 026-kfo.pdf
|
||||
qpdf: processing 027-kfo.pdf
|
||||
qpdf: processing 028-kfo.pdf
|
||||
qpdf: processing 029-kfo.pdf
|
||||
qpdf: processing 030-kfo.pdf
|
||||
qpdf: processing 031-kfo.pdf
|
||||
qpdf: processing 032-kfo.pdf
|
||||
qpdf: processing 033-kfo.pdf
|
||||
qpdf: processing 034-kfo.pdf
|
||||
qpdf: processing 035-kfo.pdf
|
||||
qpdf: processing 036-kfo.pdf
|
||||
qpdf: processing 037-kfo.pdf
|
||||
qpdf: processing 038-kfo.pdf
|
||||
qpdf: processing 039-kfo.pdf
|
||||
qpdf: processing 040-kfo.pdf
|
||||
qpdf: processing 041-kfo.pdf
|
||||
qpdf: processing 042-kfo.pdf
|
||||
qpdf: processing 043-kfo.pdf
|
||||
qpdf: processing 044-kfo.pdf
|
||||
qpdf: processing 045-kfo.pdf
|
||||
qpdf: processing 046-kfo.pdf
|
||||
qpdf: processing 047-kfo.pdf
|
||||
qpdf: processing 048-kfo.pdf
|
||||
qpdf: processing 049-kfo.pdf
|
||||
qpdf: processing 050-kfo.pdf
|
||||
qpdf: processing 051-kfo.pdf
|
||||
qpdf: empty PDF: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: selecting --keep-open-files=n
|
||||
qpdf: processing 001-kfo.pdf
|
||||
qpdf: 001-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 002-kfo.pdf
|
||||
qpdf: 002-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 003-kfo.pdf
|
||||
qpdf: 003-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 004-kfo.pdf
|
||||
qpdf: 004-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 005-kfo.pdf
|
||||
qpdf: 005-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 006-kfo.pdf
|
||||
qpdf: 006-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 007-kfo.pdf
|
||||
qpdf: 007-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 008-kfo.pdf
|
||||
qpdf: 008-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 009-kfo.pdf
|
||||
qpdf: 009-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 010-kfo.pdf
|
||||
qpdf: 010-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 011-kfo.pdf
|
||||
qpdf: 011-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 012-kfo.pdf
|
||||
qpdf: 012-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 013-kfo.pdf
|
||||
qpdf: 013-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 014-kfo.pdf
|
||||
qpdf: 014-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 015-kfo.pdf
|
||||
qpdf: 015-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 016-kfo.pdf
|
||||
qpdf: 016-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 017-kfo.pdf
|
||||
qpdf: 017-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 018-kfo.pdf
|
||||
qpdf: 018-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 019-kfo.pdf
|
||||
qpdf: 019-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 020-kfo.pdf
|
||||
qpdf: 020-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 021-kfo.pdf
|
||||
qpdf: 021-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 022-kfo.pdf
|
||||
qpdf: 022-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 023-kfo.pdf
|
||||
qpdf: 023-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 024-kfo.pdf
|
||||
qpdf: 024-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 025-kfo.pdf
|
||||
qpdf: 025-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 026-kfo.pdf
|
||||
qpdf: 026-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 027-kfo.pdf
|
||||
qpdf: 027-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 028-kfo.pdf
|
||||
qpdf: 028-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 029-kfo.pdf
|
||||
qpdf: 029-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 030-kfo.pdf
|
||||
qpdf: 030-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 031-kfo.pdf
|
||||
qpdf: 031-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 032-kfo.pdf
|
||||
qpdf: 032-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 033-kfo.pdf
|
||||
qpdf: 033-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 034-kfo.pdf
|
||||
qpdf: 034-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 035-kfo.pdf
|
||||
qpdf: 035-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 036-kfo.pdf
|
||||
qpdf: 036-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 037-kfo.pdf
|
||||
qpdf: 037-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 038-kfo.pdf
|
||||
qpdf: 038-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 039-kfo.pdf
|
||||
qpdf: 039-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 040-kfo.pdf
|
||||
qpdf: 040-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 041-kfo.pdf
|
||||
qpdf: 041-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 042-kfo.pdf
|
||||
qpdf: 042-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 043-kfo.pdf
|
||||
qpdf: 043-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 044-kfo.pdf
|
||||
qpdf: 044-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 045-kfo.pdf
|
||||
qpdf: 045-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 046-kfo.pdf
|
||||
qpdf: 046-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 047-kfo.pdf
|
||||
qpdf: 047-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 048-kfo.pdf
|
||||
qpdf: 048-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 049-kfo.pdf
|
||||
qpdf: 049-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 050-kfo.pdf
|
||||
qpdf: 050-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 051-kfo.pdf
|
||||
qpdf: 051-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: removing unreferenced pages from primary input
|
||||
|
@ -1,34 +1,34 @@
|
||||
qpdf: selecting --keep-open-files=y
|
||||
qpdf: processing 010-kfo.pdf
|
||||
qpdf: processing 011-kfo.pdf
|
||||
qpdf: processing 012-kfo.pdf
|
||||
qpdf: processing 013-kfo.pdf
|
||||
qpdf: processing 014-kfo.pdf
|
||||
qpdf: processing 015-kfo.pdf
|
||||
qpdf: processing 016-kfo.pdf
|
||||
qpdf: processing 017-kfo.pdf
|
||||
qpdf: processing 018-kfo.pdf
|
||||
qpdf: processing 019-kfo.pdf
|
||||
qpdf: empty PDF: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: selecting --keep-open-files=y
|
||||
qpdf: processing 010-kfo.pdf
|
||||
qpdf: 010-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 011-kfo.pdf
|
||||
qpdf: 011-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 012-kfo.pdf
|
||||
qpdf: 012-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 013-kfo.pdf
|
||||
qpdf: 013-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 014-kfo.pdf
|
||||
qpdf: 014-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 015-kfo.pdf
|
||||
qpdf: 015-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 016-kfo.pdf
|
||||
qpdf: 016-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 017-kfo.pdf
|
||||
qpdf: 017-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 018-kfo.pdf
|
||||
qpdf: 018-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 019-kfo.pdf
|
||||
qpdf: 019-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: removing unreferenced pages from primary input
|
||||
|
@ -1,30 +1,30 @@
|
||||
qpdf: processing 001-kfo.pdf
|
||||
qpdf: processing 002-kfo.pdf
|
||||
qpdf: processing 003-kfo.pdf
|
||||
qpdf: processing 004-kfo.pdf
|
||||
qpdf: processing 005-kfo.pdf
|
||||
qpdf: processing 006-kfo.pdf
|
||||
qpdf: processing 007-kfo.pdf
|
||||
qpdf: processing 008-kfo.pdf
|
||||
qpdf: processing 009-kfo.pdf
|
||||
qpdf: empty PDF: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 001-kfo.pdf
|
||||
qpdf: 001-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 002-kfo.pdf
|
||||
qpdf: 002-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 003-kfo.pdf
|
||||
qpdf: 003-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 004-kfo.pdf
|
||||
qpdf: 004-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 005-kfo.pdf
|
||||
qpdf: 005-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 006-kfo.pdf
|
||||
qpdf: 006-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 007-kfo.pdf
|
||||
qpdf: 007-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 008-kfo.pdf
|
||||
qpdf: 008-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 009-kfo.pdf
|
||||
qpdf: 009-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: removing unreferenced pages from primary input
|
||||
|
@ -1,30 +1,30 @@
|
||||
qpdf: processing 001-kfo.pdf
|
||||
qpdf: processing 002-kfo.pdf
|
||||
qpdf: processing 003-kfo.pdf
|
||||
qpdf: processing 004-kfo.pdf
|
||||
qpdf: processing 005-kfo.pdf
|
||||
qpdf: processing 006-kfo.pdf
|
||||
qpdf: processing 007-kfo.pdf
|
||||
qpdf: processing 008-kfo.pdf
|
||||
qpdf: processing 009-kfo.pdf
|
||||
qpdf: empty PDF: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 001-kfo.pdf
|
||||
qpdf: 001-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 002-kfo.pdf
|
||||
qpdf: 002-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 003-kfo.pdf
|
||||
qpdf: 003-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 004-kfo.pdf
|
||||
qpdf: 004-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 005-kfo.pdf
|
||||
qpdf: 005-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 006-kfo.pdf
|
||||
qpdf: 006-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 007-kfo.pdf
|
||||
qpdf: 007-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 008-kfo.pdf
|
||||
qpdf: 008-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 009-kfo.pdf
|
||||
qpdf: 009-kfo.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: removing unreferenced pages from primary input
|
||||
|
@ -1,6 +1,6 @@
|
||||
qpdf: selecting --keep-open-files=y
|
||||
qpdf: fxo-red.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: selecting --keep-open-files=y
|
||||
qpdf: removing unreferenced pages from primary input
|
||||
qpdf: adding pages from fxo-red.pdf
|
||||
qpdf: processing underlay/overlay
|
||||
|
@ -1,6 +1,6 @@
|
||||
qpdf: selecting --keep-open-files=y
|
||||
qpdf: fxo-red.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: selecting --keep-open-files=y
|
||||
qpdf: removing unreferenced pages from primary input
|
||||
qpdf: adding pages from fxo-red.pdf
|
||||
qpdf: processing underlay/overlay
|
||||
|
@ -1,15 +1,15 @@
|
||||
qpdf: page-labels-and-outlines.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: selecting --keep-open-files=y
|
||||
qpdf: processing ./20-pages.pdf
|
||||
qpdf: processing 20-pages.pdf
|
||||
qpdf: processing minimal.pdf
|
||||
qpdf: ./20-pages.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing 20-pages.pdf
|
||||
qpdf: 20-pages.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: processing minimal.pdf
|
||||
qpdf: minimal.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: page-labels-and-outlines.pdf: checking for shared resources
|
||||
qpdf: no shared resources found
|
||||
qpdf: removing unreferenced pages from primary input
|
||||
qpdf: adding pages from page-labels-and-outlines.pdf
|
||||
qpdf: adding pages from 20-pages.pdf
|
||||
|
Loading…
x
Reference in New Issue
Block a user