Commit 1f5a7cee8501bef5ac569a145870863961f12fc9

Authored by m-holger
1 parent 7aab94c8

Refactor `QPDFJob`: move `remove_unreferenced` logic to `Input`, simplify resour…

…ce removal handling, and cleanup redundant code in `handlePageSpecs`.
libqpdf/QPDFJob.cc
@@ -2372,6 +2372,11 @@ QPDFJob::Inputs::process(std::string const& filename, QPDFJob::Input& input) @@ -2372,6 +2372,11 @@ QPDFJob::Inputs::process(std::string const& filename, QPDFJob::Input& input)
2372 input.qpdf = input.qpdf_p.get(); 2372 input.qpdf = input.qpdf_p.get();
2373 input.orig_pages = input.qpdf->getAllPages(); 2373 input.orig_pages = input.qpdf->getAllPages();
2374 input.n_pages = QIntC::to_int(input.orig_pages.size()); 2374 input.n_pages = QIntC::to_int(input.orig_pages.size());
  2375 +
  2376 + if (job.m->remove_unreferenced_page_resources != QPDFJob::re_no) {
  2377 + input.remove_unreferenced = job.shouldRemoveUnreferencedResources(*input.qpdf);
  2378 + }
  2379 +
2375 if (input.cfis) { 2380 if (input.cfis) {
2376 input.cfis->stayOpen(false); 2381 input.cfis->stayOpen(false);
2377 } 2382 }
@@ -2407,6 +2412,9 @@ QPDFJob::handlePageSpecs(QPDF& pdf) @@ -2407,6 +2412,9 @@ QPDFJob::handlePageSpecs(QPDF& pdf)
2407 in_file.qpdf = &pdf; 2412 in_file.qpdf = &pdf;
2408 in_file.orig_pages = pdf.getAllPages(); 2413 in_file.orig_pages = pdf.getAllPages();
2409 in_file.n_pages = QIntC::to_int(in_file.orig_pages.size()); 2414 in_file.n_pages = QIntC::to_int(in_file.orig_pages.size());
  2415 + if (m->remove_unreferenced_page_resources != QPDFJob::re_no) {
  2416 + in_file.remove_unreferenced = shouldRemoveUnreferencedResources(pdf);
  2417 + }
2410 2418
2411 // Parse all page specifications and translate them into lists of actual pages. 2419 // Parse all page specifications and translate them into lists of actual pages.
2412 2420
@@ -2442,23 +2450,6 @@ QPDFJob::handlePageSpecs(QPDF& pdf) @@ -2442,23 +2450,6 @@ QPDFJob::handlePageSpecs(QPDF& pdf)
2442 } 2450 }
2443 } 2451 }
2444 2452
2445 - std::map<unsigned long long, bool> remove_unreferenced;  
2446 - if (m->remove_unreferenced_page_resources != QPDFJob::re_no) {  
2447 - for (auto const& [filename, input]: m->inputs.files) {  
2448 - if (input.cfis) {  
2449 - input.cfis->stayOpen(true);  
2450 - }  
2451 - QPDF& other(*input.qpdf);  
2452 - auto other_uuid = other.getUniqueId();  
2453 - if (!remove_unreferenced.contains(other_uuid)) {  
2454 - remove_unreferenced[other_uuid] = shouldRemoveUnreferencedResources(other);  
2455 - }  
2456 - if (input.cfis) {  
2457 - input.cfis->stayOpen(false);  
2458 - }  
2459 - }  
2460 - }  
2461 -  
2462 // Clear all pages out of the primary QPDF's pages tree but leave the objects in place in the 2453 // Clear all pages out of the primary QPDF's pages tree but leave the objects in place in the
2463 // file so they can be re-added without changing their object numbers. This enables other things 2454 // file so they can be re-added without changing their object numbers. This enables other things
2464 // in the original file, such as outlines, to continue to work. 2455 // in the original file, such as outlines, to continue to work.
@@ -2540,7 +2531,7 @@ QPDFJob::handlePageSpecs(QPDF&amp; pdf) @@ -2540,7 +2531,7 @@ QPDFJob::handlePageSpecs(QPDF&amp; pdf)
2540 to_copy = to_copy.shallowCopyPage(); 2531 to_copy = to_copy.shallowCopyPage();
2541 } else { 2532 } else {
2542 copied_pages[from_uuid].insert(to_copy_og); 2533 copied_pages[from_uuid].insert(to_copy_og);
2543 - if (remove_unreferenced[from_uuid]) { 2534 + if (input.remove_unreferenced) {
2544 to_copy.removeUnreferencedResources(); 2535 to_copy.removeUnreferencedResources();
2545 } 2536 }
2546 } 2537 }
libqpdf/qpdf/QPDFJob_private.hh
@@ -44,6 +44,7 @@ struct QPDFJob::Input @@ -44,6 +44,7 @@ struct QPDFJob::Input
44 ClosedFileInputSource* cfis{}; 44 ClosedFileInputSource* cfis{};
45 std::vector<QPDFObjectHandle> orig_pages; 45 std::vector<QPDFObjectHandle> orig_pages;
46 int n_pages; 46 int n_pages;
  47 + bool remove_unreferenced{false};
47 }; 48 };
48 49
49 // All PDF input files for a job. 50 // All PDF input files for a job.
qpdf/qtest/qpdf/disable-kfo.out
1 -qpdf: selecting --keep-open-files=n  
2 -qpdf: processing 001-kfo.pdf  
3 -qpdf: processing 002-kfo.pdf  
4 -qpdf: processing 003-kfo.pdf  
5 -qpdf: processing 004-kfo.pdf  
6 -qpdf: processing 005-kfo.pdf  
7 -qpdf: processing 006-kfo.pdf  
8 -qpdf: processing 007-kfo.pdf  
9 -qpdf: processing 008-kfo.pdf  
10 -qpdf: processing 009-kfo.pdf  
11 -qpdf: processing 010-kfo.pdf  
12 -qpdf: processing 011-kfo.pdf  
13 -qpdf: processing 012-kfo.pdf  
14 -qpdf: processing 013-kfo.pdf  
15 -qpdf: processing 014-kfo.pdf  
16 -qpdf: processing 015-kfo.pdf  
17 -qpdf: processing 016-kfo.pdf  
18 -qpdf: processing 017-kfo.pdf  
19 -qpdf: processing 018-kfo.pdf  
20 -qpdf: processing 019-kfo.pdf  
21 -qpdf: processing 020-kfo.pdf  
22 -qpdf: processing 021-kfo.pdf  
23 -qpdf: processing 022-kfo.pdf  
24 -qpdf: processing 023-kfo.pdf  
25 -qpdf: processing 024-kfo.pdf  
26 -qpdf: processing 025-kfo.pdf  
27 -qpdf: processing 026-kfo.pdf  
28 -qpdf: processing 027-kfo.pdf  
29 -qpdf: processing 028-kfo.pdf  
30 -qpdf: processing 029-kfo.pdf  
31 -qpdf: processing 030-kfo.pdf  
32 -qpdf: processing 031-kfo.pdf  
33 -qpdf: processing 032-kfo.pdf  
34 -qpdf: processing 033-kfo.pdf  
35 -qpdf: processing 034-kfo.pdf  
36 -qpdf: processing 035-kfo.pdf  
37 -qpdf: processing 036-kfo.pdf  
38 -qpdf: processing 037-kfo.pdf  
39 -qpdf: processing 038-kfo.pdf  
40 -qpdf: processing 039-kfo.pdf  
41 -qpdf: processing 040-kfo.pdf  
42 -qpdf: processing 041-kfo.pdf  
43 -qpdf: processing 042-kfo.pdf  
44 -qpdf: processing 043-kfo.pdf  
45 -qpdf: processing 044-kfo.pdf  
46 -qpdf: processing 045-kfo.pdf  
47 -qpdf: processing 046-kfo.pdf  
48 -qpdf: processing 047-kfo.pdf  
49 -qpdf: processing 048-kfo.pdf  
50 -qpdf: processing 049-kfo.pdf  
51 -qpdf: processing 050-kfo.pdf  
52 -qpdf: processing 051-kfo.pdf  
53 qpdf: empty PDF: checking for shared resources 1 qpdf: empty PDF: checking for shared resources
54 qpdf: no shared resources found 2 qpdf: no shared resources found
  3 +qpdf: selecting --keep-open-files=n
  4 +qpdf: processing 001-kfo.pdf
55 qpdf: 001-kfo.pdf: checking for shared resources 5 qpdf: 001-kfo.pdf: checking for shared resources
56 qpdf: no shared resources found 6 qpdf: no shared resources found
  7 +qpdf: processing 002-kfo.pdf
57 qpdf: 002-kfo.pdf: checking for shared resources 8 qpdf: 002-kfo.pdf: checking for shared resources
58 qpdf: no shared resources found 9 qpdf: no shared resources found
  10 +qpdf: processing 003-kfo.pdf
59 qpdf: 003-kfo.pdf: checking for shared resources 11 qpdf: 003-kfo.pdf: checking for shared resources
60 qpdf: no shared resources found 12 qpdf: no shared resources found
  13 +qpdf: processing 004-kfo.pdf
61 qpdf: 004-kfo.pdf: checking for shared resources 14 qpdf: 004-kfo.pdf: checking for shared resources
62 qpdf: no shared resources found 15 qpdf: no shared resources found
  16 +qpdf: processing 005-kfo.pdf
63 qpdf: 005-kfo.pdf: checking for shared resources 17 qpdf: 005-kfo.pdf: checking for shared resources
64 qpdf: no shared resources found 18 qpdf: no shared resources found
  19 +qpdf: processing 006-kfo.pdf
65 qpdf: 006-kfo.pdf: checking for shared resources 20 qpdf: 006-kfo.pdf: checking for shared resources
66 qpdf: no shared resources found 21 qpdf: no shared resources found
  22 +qpdf: processing 007-kfo.pdf
67 qpdf: 007-kfo.pdf: checking for shared resources 23 qpdf: 007-kfo.pdf: checking for shared resources
68 qpdf: no shared resources found 24 qpdf: no shared resources found
  25 +qpdf: processing 008-kfo.pdf
69 qpdf: 008-kfo.pdf: checking for shared resources 26 qpdf: 008-kfo.pdf: checking for shared resources
70 qpdf: no shared resources found 27 qpdf: no shared resources found
  28 +qpdf: processing 009-kfo.pdf
71 qpdf: 009-kfo.pdf: checking for shared resources 29 qpdf: 009-kfo.pdf: checking for shared resources
72 qpdf: no shared resources found 30 qpdf: no shared resources found
  31 +qpdf: processing 010-kfo.pdf
73 qpdf: 010-kfo.pdf: checking for shared resources 32 qpdf: 010-kfo.pdf: checking for shared resources
74 qpdf: no shared resources found 33 qpdf: no shared resources found
  34 +qpdf: processing 011-kfo.pdf
75 qpdf: 011-kfo.pdf: checking for shared resources 35 qpdf: 011-kfo.pdf: checking for shared resources
76 qpdf: no shared resources found 36 qpdf: no shared resources found
  37 +qpdf: processing 012-kfo.pdf
77 qpdf: 012-kfo.pdf: checking for shared resources 38 qpdf: 012-kfo.pdf: checking for shared resources
78 qpdf: no shared resources found 39 qpdf: no shared resources found
  40 +qpdf: processing 013-kfo.pdf
79 qpdf: 013-kfo.pdf: checking for shared resources 41 qpdf: 013-kfo.pdf: checking for shared resources
80 qpdf: no shared resources found 42 qpdf: no shared resources found
  43 +qpdf: processing 014-kfo.pdf
81 qpdf: 014-kfo.pdf: checking for shared resources 44 qpdf: 014-kfo.pdf: checking for shared resources
82 qpdf: no shared resources found 45 qpdf: no shared resources found
  46 +qpdf: processing 015-kfo.pdf
83 qpdf: 015-kfo.pdf: checking for shared resources 47 qpdf: 015-kfo.pdf: checking for shared resources
84 qpdf: no shared resources found 48 qpdf: no shared resources found
  49 +qpdf: processing 016-kfo.pdf
85 qpdf: 016-kfo.pdf: checking for shared resources 50 qpdf: 016-kfo.pdf: checking for shared resources
86 qpdf: no shared resources found 51 qpdf: no shared resources found
  52 +qpdf: processing 017-kfo.pdf
87 qpdf: 017-kfo.pdf: checking for shared resources 53 qpdf: 017-kfo.pdf: checking for shared resources
88 qpdf: no shared resources found 54 qpdf: no shared resources found
  55 +qpdf: processing 018-kfo.pdf
89 qpdf: 018-kfo.pdf: checking for shared resources 56 qpdf: 018-kfo.pdf: checking for shared resources
90 qpdf: no shared resources found 57 qpdf: no shared resources found
  58 +qpdf: processing 019-kfo.pdf
91 qpdf: 019-kfo.pdf: checking for shared resources 59 qpdf: 019-kfo.pdf: checking for shared resources
92 qpdf: no shared resources found 60 qpdf: no shared resources found
  61 +qpdf: processing 020-kfo.pdf
93 qpdf: 020-kfo.pdf: checking for shared resources 62 qpdf: 020-kfo.pdf: checking for shared resources
94 qpdf: no shared resources found 63 qpdf: no shared resources found
  64 +qpdf: processing 021-kfo.pdf
95 qpdf: 021-kfo.pdf: checking for shared resources 65 qpdf: 021-kfo.pdf: checking for shared resources
96 qpdf: no shared resources found 66 qpdf: no shared resources found
  67 +qpdf: processing 022-kfo.pdf
97 qpdf: 022-kfo.pdf: checking for shared resources 68 qpdf: 022-kfo.pdf: checking for shared resources
98 qpdf: no shared resources found 69 qpdf: no shared resources found
  70 +qpdf: processing 023-kfo.pdf
99 qpdf: 023-kfo.pdf: checking for shared resources 71 qpdf: 023-kfo.pdf: checking for shared resources
100 qpdf: no shared resources found 72 qpdf: no shared resources found
  73 +qpdf: processing 024-kfo.pdf
101 qpdf: 024-kfo.pdf: checking for shared resources 74 qpdf: 024-kfo.pdf: checking for shared resources
102 qpdf: no shared resources found 75 qpdf: no shared resources found
  76 +qpdf: processing 025-kfo.pdf
103 qpdf: 025-kfo.pdf: checking for shared resources 77 qpdf: 025-kfo.pdf: checking for shared resources
104 qpdf: no shared resources found 78 qpdf: no shared resources found
  79 +qpdf: processing 026-kfo.pdf
105 qpdf: 026-kfo.pdf: checking for shared resources 80 qpdf: 026-kfo.pdf: checking for shared resources
106 qpdf: no shared resources found 81 qpdf: no shared resources found
  82 +qpdf: processing 027-kfo.pdf
107 qpdf: 027-kfo.pdf: checking for shared resources 83 qpdf: 027-kfo.pdf: checking for shared resources
108 qpdf: no shared resources found 84 qpdf: no shared resources found
  85 +qpdf: processing 028-kfo.pdf
109 qpdf: 028-kfo.pdf: checking for shared resources 86 qpdf: 028-kfo.pdf: checking for shared resources
110 qpdf: no shared resources found 87 qpdf: no shared resources found
  88 +qpdf: processing 029-kfo.pdf
111 qpdf: 029-kfo.pdf: checking for shared resources 89 qpdf: 029-kfo.pdf: checking for shared resources
112 qpdf: no shared resources found 90 qpdf: no shared resources found
  91 +qpdf: processing 030-kfo.pdf
113 qpdf: 030-kfo.pdf: checking for shared resources 92 qpdf: 030-kfo.pdf: checking for shared resources
114 qpdf: no shared resources found 93 qpdf: no shared resources found
  94 +qpdf: processing 031-kfo.pdf
115 qpdf: 031-kfo.pdf: checking for shared resources 95 qpdf: 031-kfo.pdf: checking for shared resources
116 qpdf: no shared resources found 96 qpdf: no shared resources found
  97 +qpdf: processing 032-kfo.pdf
117 qpdf: 032-kfo.pdf: checking for shared resources 98 qpdf: 032-kfo.pdf: checking for shared resources
118 qpdf: no shared resources found 99 qpdf: no shared resources found
  100 +qpdf: processing 033-kfo.pdf
119 qpdf: 033-kfo.pdf: checking for shared resources 101 qpdf: 033-kfo.pdf: checking for shared resources
120 qpdf: no shared resources found 102 qpdf: no shared resources found
  103 +qpdf: processing 034-kfo.pdf
121 qpdf: 034-kfo.pdf: checking for shared resources 104 qpdf: 034-kfo.pdf: checking for shared resources
122 qpdf: no shared resources found 105 qpdf: no shared resources found
  106 +qpdf: processing 035-kfo.pdf
123 qpdf: 035-kfo.pdf: checking for shared resources 107 qpdf: 035-kfo.pdf: checking for shared resources
124 qpdf: no shared resources found 108 qpdf: no shared resources found
  109 +qpdf: processing 036-kfo.pdf
125 qpdf: 036-kfo.pdf: checking for shared resources 110 qpdf: 036-kfo.pdf: checking for shared resources
126 qpdf: no shared resources found 111 qpdf: no shared resources found
  112 +qpdf: processing 037-kfo.pdf
127 qpdf: 037-kfo.pdf: checking for shared resources 113 qpdf: 037-kfo.pdf: checking for shared resources
128 qpdf: no shared resources found 114 qpdf: no shared resources found
  115 +qpdf: processing 038-kfo.pdf
129 qpdf: 038-kfo.pdf: checking for shared resources 116 qpdf: 038-kfo.pdf: checking for shared resources
130 qpdf: no shared resources found 117 qpdf: no shared resources found
  118 +qpdf: processing 039-kfo.pdf
131 qpdf: 039-kfo.pdf: checking for shared resources 119 qpdf: 039-kfo.pdf: checking for shared resources
132 qpdf: no shared resources found 120 qpdf: no shared resources found
  121 +qpdf: processing 040-kfo.pdf
133 qpdf: 040-kfo.pdf: checking for shared resources 122 qpdf: 040-kfo.pdf: checking for shared resources
134 qpdf: no shared resources found 123 qpdf: no shared resources found
  124 +qpdf: processing 041-kfo.pdf
135 qpdf: 041-kfo.pdf: checking for shared resources 125 qpdf: 041-kfo.pdf: checking for shared resources
136 qpdf: no shared resources found 126 qpdf: no shared resources found
  127 +qpdf: processing 042-kfo.pdf
137 qpdf: 042-kfo.pdf: checking for shared resources 128 qpdf: 042-kfo.pdf: checking for shared resources
138 qpdf: no shared resources found 129 qpdf: no shared resources found
  130 +qpdf: processing 043-kfo.pdf
139 qpdf: 043-kfo.pdf: checking for shared resources 131 qpdf: 043-kfo.pdf: checking for shared resources
140 qpdf: no shared resources found 132 qpdf: no shared resources found
  133 +qpdf: processing 044-kfo.pdf
141 qpdf: 044-kfo.pdf: checking for shared resources 134 qpdf: 044-kfo.pdf: checking for shared resources
142 qpdf: no shared resources found 135 qpdf: no shared resources found
  136 +qpdf: processing 045-kfo.pdf
143 qpdf: 045-kfo.pdf: checking for shared resources 137 qpdf: 045-kfo.pdf: checking for shared resources
144 qpdf: no shared resources found 138 qpdf: no shared resources found
  139 +qpdf: processing 046-kfo.pdf
145 qpdf: 046-kfo.pdf: checking for shared resources 140 qpdf: 046-kfo.pdf: checking for shared resources
146 qpdf: no shared resources found 141 qpdf: no shared resources found
  142 +qpdf: processing 047-kfo.pdf
147 qpdf: 047-kfo.pdf: checking for shared resources 143 qpdf: 047-kfo.pdf: checking for shared resources
148 qpdf: no shared resources found 144 qpdf: no shared resources found
  145 +qpdf: processing 048-kfo.pdf
149 qpdf: 048-kfo.pdf: checking for shared resources 146 qpdf: 048-kfo.pdf: checking for shared resources
150 qpdf: no shared resources found 147 qpdf: no shared resources found
  148 +qpdf: processing 049-kfo.pdf
151 qpdf: 049-kfo.pdf: checking for shared resources 149 qpdf: 049-kfo.pdf: checking for shared resources
152 qpdf: no shared resources found 150 qpdf: no shared resources found
  151 +qpdf: processing 050-kfo.pdf
153 qpdf: 050-kfo.pdf: checking for shared resources 152 qpdf: 050-kfo.pdf: checking for shared resources
154 qpdf: no shared resources found 153 qpdf: no shared resources found
  154 +qpdf: processing 051-kfo.pdf
155 qpdf: 051-kfo.pdf: checking for shared resources 155 qpdf: 051-kfo.pdf: checking for shared resources
156 qpdf: no shared resources found 156 qpdf: no shared resources found
157 qpdf: removing unreferenced pages from primary input 157 qpdf: removing unreferenced pages from primary input
qpdf/qtest/qpdf/enable-kfo.out
1 -qpdf: selecting --keep-open-files=y  
2 -qpdf: processing 010-kfo.pdf  
3 -qpdf: processing 011-kfo.pdf  
4 -qpdf: processing 012-kfo.pdf  
5 -qpdf: processing 013-kfo.pdf  
6 -qpdf: processing 014-kfo.pdf  
7 -qpdf: processing 015-kfo.pdf  
8 -qpdf: processing 016-kfo.pdf  
9 -qpdf: processing 017-kfo.pdf  
10 -qpdf: processing 018-kfo.pdf  
11 -qpdf: processing 019-kfo.pdf  
12 qpdf: empty PDF: checking for shared resources 1 qpdf: empty PDF: checking for shared resources
13 qpdf: no shared resources found 2 qpdf: no shared resources found
  3 +qpdf: selecting --keep-open-files=y
  4 +qpdf: processing 010-kfo.pdf
14 qpdf: 010-kfo.pdf: checking for shared resources 5 qpdf: 010-kfo.pdf: checking for shared resources
15 qpdf: no shared resources found 6 qpdf: no shared resources found
  7 +qpdf: processing 011-kfo.pdf
16 qpdf: 011-kfo.pdf: checking for shared resources 8 qpdf: 011-kfo.pdf: checking for shared resources
17 qpdf: no shared resources found 9 qpdf: no shared resources found
  10 +qpdf: processing 012-kfo.pdf
18 qpdf: 012-kfo.pdf: checking for shared resources 11 qpdf: 012-kfo.pdf: checking for shared resources
19 qpdf: no shared resources found 12 qpdf: no shared resources found
  13 +qpdf: processing 013-kfo.pdf
20 qpdf: 013-kfo.pdf: checking for shared resources 14 qpdf: 013-kfo.pdf: checking for shared resources
21 qpdf: no shared resources found 15 qpdf: no shared resources found
  16 +qpdf: processing 014-kfo.pdf
22 qpdf: 014-kfo.pdf: checking for shared resources 17 qpdf: 014-kfo.pdf: checking for shared resources
23 qpdf: no shared resources found 18 qpdf: no shared resources found
  19 +qpdf: processing 015-kfo.pdf
24 qpdf: 015-kfo.pdf: checking for shared resources 20 qpdf: 015-kfo.pdf: checking for shared resources
25 qpdf: no shared resources found 21 qpdf: no shared resources found
  22 +qpdf: processing 016-kfo.pdf
26 qpdf: 016-kfo.pdf: checking for shared resources 23 qpdf: 016-kfo.pdf: checking for shared resources
27 qpdf: no shared resources found 24 qpdf: no shared resources found
  25 +qpdf: processing 017-kfo.pdf
28 qpdf: 017-kfo.pdf: checking for shared resources 26 qpdf: 017-kfo.pdf: checking for shared resources
29 qpdf: no shared resources found 27 qpdf: no shared resources found
  28 +qpdf: processing 018-kfo.pdf
30 qpdf: 018-kfo.pdf: checking for shared resources 29 qpdf: 018-kfo.pdf: checking for shared resources
31 qpdf: no shared resources found 30 qpdf: no shared resources found
  31 +qpdf: processing 019-kfo.pdf
32 qpdf: 019-kfo.pdf: checking for shared resources 32 qpdf: 019-kfo.pdf: checking for shared resources
33 qpdf: no shared resources found 33 qpdf: no shared resources found
34 qpdf: removing unreferenced pages from primary input 34 qpdf: removing unreferenced pages from primary input
qpdf/qtest/qpdf/kfo-n.out
1 -qpdf: processing 001-kfo.pdf  
2 -qpdf: processing 002-kfo.pdf  
3 -qpdf: processing 003-kfo.pdf  
4 -qpdf: processing 004-kfo.pdf  
5 -qpdf: processing 005-kfo.pdf  
6 -qpdf: processing 006-kfo.pdf  
7 -qpdf: processing 007-kfo.pdf  
8 -qpdf: processing 008-kfo.pdf  
9 -qpdf: processing 009-kfo.pdf  
10 qpdf: empty PDF: checking for shared resources 1 qpdf: empty PDF: checking for shared resources
11 qpdf: no shared resources found 2 qpdf: no shared resources found
  3 +qpdf: processing 001-kfo.pdf
12 qpdf: 001-kfo.pdf: checking for shared resources 4 qpdf: 001-kfo.pdf: checking for shared resources
13 qpdf: no shared resources found 5 qpdf: no shared resources found
  6 +qpdf: processing 002-kfo.pdf
14 qpdf: 002-kfo.pdf: checking for shared resources 7 qpdf: 002-kfo.pdf: checking for shared resources
15 qpdf: no shared resources found 8 qpdf: no shared resources found
  9 +qpdf: processing 003-kfo.pdf
16 qpdf: 003-kfo.pdf: checking for shared resources 10 qpdf: 003-kfo.pdf: checking for shared resources
17 qpdf: no shared resources found 11 qpdf: no shared resources found
  12 +qpdf: processing 004-kfo.pdf
18 qpdf: 004-kfo.pdf: checking for shared resources 13 qpdf: 004-kfo.pdf: checking for shared resources
19 qpdf: no shared resources found 14 qpdf: no shared resources found
  15 +qpdf: processing 005-kfo.pdf
20 qpdf: 005-kfo.pdf: checking for shared resources 16 qpdf: 005-kfo.pdf: checking for shared resources
21 qpdf: no shared resources found 17 qpdf: no shared resources found
  18 +qpdf: processing 006-kfo.pdf
22 qpdf: 006-kfo.pdf: checking for shared resources 19 qpdf: 006-kfo.pdf: checking for shared resources
23 qpdf: no shared resources found 20 qpdf: no shared resources found
  21 +qpdf: processing 007-kfo.pdf
24 qpdf: 007-kfo.pdf: checking for shared resources 22 qpdf: 007-kfo.pdf: checking for shared resources
25 qpdf: no shared resources found 23 qpdf: no shared resources found
  24 +qpdf: processing 008-kfo.pdf
26 qpdf: 008-kfo.pdf: checking for shared resources 25 qpdf: 008-kfo.pdf: checking for shared resources
27 qpdf: no shared resources found 26 qpdf: no shared resources found
  27 +qpdf: processing 009-kfo.pdf
28 qpdf: 009-kfo.pdf: checking for shared resources 28 qpdf: 009-kfo.pdf: checking for shared resources
29 qpdf: no shared resources found 29 qpdf: no shared resources found
30 qpdf: removing unreferenced pages from primary input 30 qpdf: removing unreferenced pages from primary input
qpdf/qtest/qpdf/kfo-y.out
1 -qpdf: processing 001-kfo.pdf  
2 -qpdf: processing 002-kfo.pdf  
3 -qpdf: processing 003-kfo.pdf  
4 -qpdf: processing 004-kfo.pdf  
5 -qpdf: processing 005-kfo.pdf  
6 -qpdf: processing 006-kfo.pdf  
7 -qpdf: processing 007-kfo.pdf  
8 -qpdf: processing 008-kfo.pdf  
9 -qpdf: processing 009-kfo.pdf  
10 qpdf: empty PDF: checking for shared resources 1 qpdf: empty PDF: checking for shared resources
11 qpdf: no shared resources found 2 qpdf: no shared resources found
  3 +qpdf: processing 001-kfo.pdf
12 qpdf: 001-kfo.pdf: checking for shared resources 4 qpdf: 001-kfo.pdf: checking for shared resources
13 qpdf: no shared resources found 5 qpdf: no shared resources found
  6 +qpdf: processing 002-kfo.pdf
14 qpdf: 002-kfo.pdf: checking for shared resources 7 qpdf: 002-kfo.pdf: checking for shared resources
15 qpdf: no shared resources found 8 qpdf: no shared resources found
  9 +qpdf: processing 003-kfo.pdf
16 qpdf: 003-kfo.pdf: checking for shared resources 10 qpdf: 003-kfo.pdf: checking for shared resources
17 qpdf: no shared resources found 11 qpdf: no shared resources found
  12 +qpdf: processing 004-kfo.pdf
18 qpdf: 004-kfo.pdf: checking for shared resources 13 qpdf: 004-kfo.pdf: checking for shared resources
19 qpdf: no shared resources found 14 qpdf: no shared resources found
  15 +qpdf: processing 005-kfo.pdf
20 qpdf: 005-kfo.pdf: checking for shared resources 16 qpdf: 005-kfo.pdf: checking for shared resources
21 qpdf: no shared resources found 17 qpdf: no shared resources found
  18 +qpdf: processing 006-kfo.pdf
22 qpdf: 006-kfo.pdf: checking for shared resources 19 qpdf: 006-kfo.pdf: checking for shared resources
23 qpdf: no shared resources found 20 qpdf: no shared resources found
  21 +qpdf: processing 007-kfo.pdf
24 qpdf: 007-kfo.pdf: checking for shared resources 22 qpdf: 007-kfo.pdf: checking for shared resources
25 qpdf: no shared resources found 23 qpdf: no shared resources found
  24 +qpdf: processing 008-kfo.pdf
26 qpdf: 008-kfo.pdf: checking for shared resources 25 qpdf: 008-kfo.pdf: checking for shared resources
27 qpdf: no shared resources found 26 qpdf: no shared resources found
  27 +qpdf: processing 009-kfo.pdf
28 qpdf: 009-kfo.pdf: checking for shared resources 28 qpdf: 009-kfo.pdf: checking for shared resources
29 qpdf: no shared resources found 29 qpdf: no shared resources found
30 qpdf: removing unreferenced pages from primary input 30 qpdf: removing unreferenced pages from primary input
qpdf/qtest/qpdf/uo-6.out
1 -qpdf: selecting --keep-open-files=y  
2 qpdf: fxo-red.pdf: checking for shared resources 1 qpdf: fxo-red.pdf: checking for shared resources
3 qpdf: no shared resources found 2 qpdf: no shared resources found
  3 +qpdf: selecting --keep-open-files=y
4 qpdf: removing unreferenced pages from primary input 4 qpdf: removing unreferenced pages from primary input
5 qpdf: adding pages from fxo-red.pdf 5 qpdf: adding pages from fxo-red.pdf
6 qpdf: processing underlay/overlay 6 qpdf: processing underlay/overlay
qpdf/qtest/qpdf/uo-8.out
1 -qpdf: selecting --keep-open-files=y  
2 qpdf: fxo-red.pdf: checking for shared resources 1 qpdf: fxo-red.pdf: checking for shared resources
3 qpdf: no shared resources found 2 qpdf: no shared resources found
  3 +qpdf: selecting --keep-open-files=y
4 qpdf: removing unreferenced pages from primary input 4 qpdf: removing unreferenced pages from primary input
5 qpdf: adding pages from fxo-red.pdf 5 qpdf: adding pages from fxo-red.pdf
6 qpdf: processing underlay/overlay 6 qpdf: processing underlay/overlay
qpdf/qtest/qpdf/verbose-merge.out
  1 +qpdf: page-labels-and-outlines.pdf: checking for shared resources
  2 +qpdf: no shared resources found
1 qpdf: selecting --keep-open-files=y 3 qpdf: selecting --keep-open-files=y
2 qpdf: processing ./20-pages.pdf 4 qpdf: processing ./20-pages.pdf
3 -qpdf: processing 20-pages.pdf  
4 -qpdf: processing minimal.pdf  
5 qpdf: ./20-pages.pdf: checking for shared resources 5 qpdf: ./20-pages.pdf: checking for shared resources
6 qpdf: no shared resources found 6 qpdf: no shared resources found
  7 +qpdf: processing 20-pages.pdf
7 qpdf: 20-pages.pdf: checking for shared resources 8 qpdf: 20-pages.pdf: checking for shared resources
8 qpdf: no shared resources found 9 qpdf: no shared resources found
  10 +qpdf: processing minimal.pdf
9 qpdf: minimal.pdf: checking for shared resources 11 qpdf: minimal.pdf: checking for shared resources
10 qpdf: no shared resources found 12 qpdf: no shared resources found
11 -qpdf: page-labels-and-outlines.pdf: checking for shared resources  
12 -qpdf: no shared resources found  
13 qpdf: removing unreferenced pages from primary input 13 qpdf: removing unreferenced pages from primary input
14 qpdf: adding pages from page-labels-and-outlines.pdf 14 qpdf: adding pages from page-labels-and-outlines.pdf
15 qpdf: adding pages from 20-pages.pdf 15 qpdf: adding pages from 20-pages.pdf