mirror of
https://github.com/qpdf/qpdf.git
synced 2024-12-22 10:58:58 +00:00
Change trailer recovery to pickup the last rather than first valid trailer
This commit is contained in:
parent
065bb582a3
commit
5de67d48fb
@ -521,6 +521,9 @@ QPDF::reconstruct_xref(QPDFExc& e)
|
||||
throw e;
|
||||
}
|
||||
|
||||
const bool recover_trailer = !m->trailer.isInitialized();
|
||||
qpdf_offset_t max_offset{-1};
|
||||
|
||||
m->reconstructed_xref = true;
|
||||
// We may find more objects, which may contain dangling references.
|
||||
m->fixed_dangling_refs = false;
|
||||
@ -561,12 +564,13 @@ QPDF::reconstruct_xref(QPDFExc& e)
|
||||
int gen = QUtil::string_to_int(t2.getValue().c_str());
|
||||
insertReconstructedXrefEntry(obj, token_start, gen);
|
||||
}
|
||||
} else if (!m->trailer.isInitialized() && t1.isWord("trailer")) {
|
||||
} else if (recover_trailer && t1.isWord("trailer")) {
|
||||
QPDFObjectHandle t = readTrailer();
|
||||
if (!t.isDictionary()) {
|
||||
// Oh well. It was worth a try.
|
||||
} else {
|
||||
setTrailer(t);
|
||||
max_offset = token_start;
|
||||
m->trailer = t;
|
||||
}
|
||||
}
|
||||
m->file->seek(next_line_start, SEEK_SET);
|
||||
@ -574,15 +578,15 @@ QPDF::reconstruct_xref(QPDFExc& e)
|
||||
}
|
||||
m->deleted_objects.clear();
|
||||
|
||||
if (!m->trailer.isInitialized()) {
|
||||
qpdf_offset_t max_offset{0};
|
||||
// If there are any xref streams, take the last one to appear.
|
||||
for (auto const& iter: m->xref_table) {
|
||||
auto entry = iter.second;
|
||||
if (entry.getType() != 1) {
|
||||
if (recover_trailer) {
|
||||
// If there are any xref streams, take the last one to appear, provided it appears after any
|
||||
// recovered trailer..
|
||||
bool found_xref_stream = false;
|
||||
for (auto const& [og, entry]: m->xref_table) {
|
||||
if (entry.getType() != 1 || entry.getOffset() <= max_offset) {
|
||||
continue;
|
||||
}
|
||||
auto oh = getObjectByObjGen(iter.first);
|
||||
auto oh = getObject(og);
|
||||
try {
|
||||
if (!oh.isStreamOfType("/XRef")) {
|
||||
continue;
|
||||
@ -590,13 +594,14 @@ QPDF::reconstruct_xref(QPDFExc& e)
|
||||
} catch (std::exception&) {
|
||||
continue;
|
||||
}
|
||||
found_xref_stream = true;
|
||||
auto offset = entry.getOffset();
|
||||
if (offset > max_offset) {
|
||||
max_offset = offset;
|
||||
setTrailer(oh.getDict());
|
||||
m->trailer = oh.getDict();
|
||||
}
|
||||
}
|
||||
if (max_offset > 0) {
|
||||
if (found_xref_stream) {
|
||||
try {
|
||||
read_xref(max_offset);
|
||||
} catch (std::exception&) {
|
||||
@ -608,10 +613,6 @@ QPDF::reconstruct_xref(QPDFExc& e)
|
||||
}
|
||||
|
||||
if (!m->trailer.isInitialized()) {
|
||||
// We could check the last encountered object to see if it was an xref stream. If so, we
|
||||
// could try to get the trailer from there. This may make it possible to recover files with
|
||||
// bad startxref pointers even when they have object streams.
|
||||
|
||||
throw damagedPDF("", 0, "unable to find trailer dictionary while recovering damaged file");
|
||||
}
|
||||
|
||||
|
@ -102,11 +102,10 @@ $td->runtest("recover file with xref stream",
|
||||
{$td->COMMAND => "qpdf --static-id --compress-streams=n" .
|
||||
" recover-xref-stream.pdf a.pdf"},
|
||||
{$td->FILE => "recover-xref-stream.out", $td->EXIT_STATUS => 3},
|
||||
$td->EXPECT_FAILURE);
|
||||
$td->NORMALIZE_NEWLINES);
|
||||
$td->runtest("check file",
|
||||
{$td->FILE => "a.pdf"},
|
||||
{$td->FILE => "recover-xref-stream-recovered.pdf"},
|
||||
$td->EXPECT_FAILURE);
|
||||
{$td->FILE => "recover-xref-stream-recovered.pdf"});
|
||||
|
||||
cleanup();
|
||||
$td->report(calc_ntests($n_tests, $n_compare_pdfs));
|
||||
|
@ -2,4 +2,6 @@ WARNING: issue-100.pdf: file is damaged
|
||||
WARNING: issue-100.pdf (offset 736): xref not found
|
||||
WARNING: issue-100.pdf: Attempting to reconstruct cross-reference table
|
||||
WARNING: issue-100.pdf (trailer, offset 488): stream keyword found in trailer
|
||||
WARNING: issue-100.pdf (trailer, offset 953): dictionary ended prematurely; using null as value for last key
|
||||
WARNING: issue-100.pdf (trailer, offset 953): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
qpdf: issue-100.pdf: unable to find /Root dictionary
|
||||
|
@ -2,4 +2,24 @@ WARNING: issue-101.pdf: file is damaged
|
||||
WARNING: issue-101.pdf (offset 3526): xref not found
|
||||
WARNING: issue-101.pdf: Attempting to reconstruct cross-reference table
|
||||
WARNING: issue-101.pdf (trailer, offset 1508): stream keyword found in trailer
|
||||
WARNING: issue-101.pdf (trailer, offset 1701): stream keyword found in trailer
|
||||
WARNING: issue-101.pdf (trailer, offset 2096): stream keyword found in trailer
|
||||
WARNING: issue-101.pdf (trailer, offset 2683): stream keyword found in trailer
|
||||
WARNING: issue-101.pdf (trailer, offset 2928): unknown token while reading object; treating as string
|
||||
WARNING: issue-101.pdf (trailer, offset 2930): unknown token while reading object; treating as string
|
||||
WARNING: issue-101.pdf (trailer, offset 2928): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-101.pdf (trailer, offset 2928): expected dictionary key but found non-name object; inserting key /QPDFFake2
|
||||
WARNING: issue-101.pdf (trailer, offset 2928): expected dictionary key but found non-name object; inserting key /QPDFFake3
|
||||
WARNING: issue-101.pdf (trailer, offset 2995): stream keyword found in trailer
|
||||
WARNING: issue-101.pdf (trailer, offset 3409): stream keyword found in trailer
|
||||
WARNING: issue-101.pdf (trailer, offset 3630): stream keyword found in trailer
|
||||
WARNING: issue-101.pdf (trailer, offset 4183): stream keyword found in trailer
|
||||
WARNING: issue-101.pdf (object 11 0, offset 591): unknown token while reading object; treating as string
|
||||
WARNING: issue-101.pdf (object 11 0, offset 625): treating unexpected brace token as null
|
||||
WARNING: issue-101.pdf (object 11 0, offset 626): unknown token while reading object; treating as string
|
||||
WARNING: issue-101.pdf (object 11 0, offset 637): unknown token while reading object; treating as string
|
||||
WARNING: issue-101.pdf (object 11 0, offset 639): unknown token while reading object; treating as string
|
||||
WARNING: issue-101.pdf (object 11 0, offset 644): unknown token while reading object; treating as string
|
||||
WARNING: issue-101.pdf (object 11 0, offset 644): too many errors; giving up on reading object
|
||||
WARNING: issue-101.pdf (object 11 0, offset 647): expected endobj
|
||||
qpdf: issue-101.pdf: unable to find /Root dictionary
|
||||
|
@ -5,4 +5,5 @@ WARNING: issue-141a.pdf (xref stream: object 9 0, offset 47): unable to recover
|
||||
WARNING: issue-141a.pdf: file is damaged
|
||||
WARNING: issue-141a.pdf (xref stream, offset 3): Cross-reference stream's /W indicates entry size of 0
|
||||
WARNING: issue-141a.pdf: Attempting to reconstruct cross-reference table
|
||||
qpdf: issue-141a.pdf: unable to find trailer dictionary while recovering damaged file
|
||||
WARNING: issue-141a.pdf: reported number of objects (0) is not one plus the highest object number (9)
|
||||
qpdf: issue-141a.pdf: unable to find /Root dictionary
|
||||
|
@ -1020,4 +1020,272 @@ WARNING: issue-335a.pdf (trailer, offset 20606): too many errors; giving up on r
|
||||
WARNING: issue-335a.pdf (trailer, offset 20684): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 20683): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 20747): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 20785): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 20812): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 20803): dictionary has duplicated key /Length; last occurrence overrides earlier ones
|
||||
WARNING: issue-335a.pdf (trailer, offset 20803): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 20842): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 20880): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 20914): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 20898): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 20927): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 20949): unexpected >
|
||||
WARNING: issue-335a.pdf (trailer, offset 20957): unexpected >
|
||||
WARNING: issue-335a.pdf (trailer, offset 20958): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 20960): unexpected >
|
||||
WARNING: issue-335a.pdf (trailer, offset 20961): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 20972): treating unexpected brace token as null
|
||||
WARNING: issue-335a.pdf (trailer, offset 20973): unexpected )
|
||||
WARNING: issue-335a.pdf (trailer, offset 20973): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 21042): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21026): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 21055): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 21077): unexpected >
|
||||
WARNING: issue-335a.pdf (trailer, offset 21085): unexpected >
|
||||
WARNING: issue-335a.pdf (trailer, offset 21086): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21088): unexpected >
|
||||
WARNING: issue-335a.pdf (trailer, offset 21089): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21100): treating unexpected brace token as null
|
||||
WARNING: issue-335a.pdf (trailer, offset 21101): unexpected )
|
||||
WARNING: issue-335a.pdf (trailer, offset 21101): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 21118): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21158): unexpected )
|
||||
WARNING: issue-335a.pdf (trailer, offset 21202): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21205): treating unexpected brace token as null
|
||||
WARNING: issue-335a.pdf (trailer, offset 21207): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21212): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21212): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 21132): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21138): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21156): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21157): unexpected )
|
||||
WARNING: issue-335a.pdf (trailer, offset 21158): unexpected )
|
||||
WARNING: issue-335a.pdf (trailer, offset 21202): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21202): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 21154): treating unexpected brace token as null
|
||||
WARNING: issue-335a.pdf (trailer, offset 21155): unexpected )
|
||||
WARNING: issue-335a.pdf (trailer, offset 21156): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21157): unexpected )
|
||||
WARNING: issue-335a.pdf (trailer, offset 21158): unexpected )
|
||||
WARNING: issue-335a.pdf (trailer, offset 21202): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21202): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 21172): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21199): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21201): unexpected )
|
||||
WARNING: issue-335a.pdf (trailer, offset 21202): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21205): treating unexpected brace token as null
|
||||
WARNING: issue-335a.pdf (trailer, offset 21207): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21207): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 21228): treating unexpected brace token as null
|
||||
WARNING: issue-335a.pdf (trailer, offset 21229): unexpected )
|
||||
WARNING: issue-335a.pdf (trailer, offset 21230): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21262): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21267): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21277): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21277): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 21277): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21287): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21389): unexpected dictionary close token
|
||||
WARNING: issue-335a.pdf (trailer, offset 21392): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21400): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21430): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21438): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21441): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21444): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21452): invalid character (-) in hexstring
|
||||
WARNING: issue-335a.pdf (trailer, offset 21819): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21819): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 21287): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21389): unexpected dictionary close token
|
||||
WARNING: issue-335a.pdf (trailer, offset 21392): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21400): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21430): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21438): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21441): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21444): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21452): invalid character (-) in hexstring
|
||||
WARNING: issue-335a.pdf (trailer, offset 21819): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21819): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 21436): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 21452): invalid character (-) in hexstring
|
||||
WARNING: issue-335a.pdf (trailer, offset 21837): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21850): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 21892): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21900): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21903): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21906): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21918): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21925): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21925): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 21918): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21925): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21937): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21962): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21991): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22000): invalid character (t) in hexstring
|
||||
WARNING: issue-335a.pdf (trailer, offset 22003): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): dictionary has duplicated key /Length; last occurrence overrides earlier ones
|
||||
WARNING: issue-335a.pdf (trailer, offset 22028): unexpected >
|
||||
WARNING: issue-335a.pdf (trailer, offset 22030): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22038): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake2
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake3
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake4
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake5
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake6
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake7
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake8
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake9
|
||||
WARNING: issue-335a.pdf (trailer, offset 22044): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22052): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22064): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22064): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 21937): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21962): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21991): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22000): invalid character (t) in hexstring
|
||||
WARNING: issue-335a.pdf (trailer, offset 22003): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): dictionary has duplicated key /Length; last occurrence overrides earlier ones
|
||||
WARNING: issue-335a.pdf (trailer, offset 22028): unexpected >
|
||||
WARNING: issue-335a.pdf (trailer, offset 22030): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22038): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake2
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake3
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake4
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake5
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake6
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake7
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake8
|
||||
WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake9
|
||||
WARNING: issue-335a.pdf (trailer, offset 22050): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 22000): invalid character (t) in hexstring
|
||||
WARNING: issue-335a.pdf (trailer, offset 22088): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22087): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 22134): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 22178): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22190): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22202): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22218): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22201): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 22201): expected dictionary key but found non-name object; inserting key /QPDFFake2
|
||||
WARNING: issue-335a.pdf (trailer, offset 22230): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22238): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22177): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 22177): expected dictionary key but found non-name object; inserting key /QPDFFake2
|
||||
WARNING: issue-335a.pdf (trailer, offset 22177): expected dictionary key but found non-name object; inserting key /QPDFFake3
|
||||
WARNING: issue-335a.pdf (trailer, offset 22177): expected dictionary key but found non-name object; inserting key /QPDFFake4
|
||||
WARNING: issue-335a.pdf (trailer, offset 22177): expected dictionary key but found non-name object; inserting key /QPDFFake5
|
||||
WARNING: issue-335a.pdf (trailer, offset 22275): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 22202): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22218): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22201): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 22201): expected dictionary key but found non-name object; inserting key /QPDFFake2
|
||||
WARNING: issue-335a.pdf (trailer, offset 22236): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 22327): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22336): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22338): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22355): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22360): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22326): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 22326): expected dictionary key but found non-name object; inserting key /QPDFFake2
|
||||
WARNING: issue-335a.pdf (trailer, offset 22326): expected dictionary key but found non-name object; inserting key /QPDFFake3
|
||||
WARNING: issue-335a.pdf (trailer, offset 22326): expected dictionary key but found non-name object; inserting key /QPDFFake4
|
||||
WARNING: issue-335a.pdf (trailer, offset 22326): expected dictionary key but found non-name object; inserting key /QPDFFake5
|
||||
WARNING: issue-335a.pdf (trailer, offset 22371): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 22437): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22436): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 22482): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 22650): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22656): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22675): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22687): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22690): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22702): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22701): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 22740): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22748): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22761): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22791): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22794): unexpected >
|
||||
WARNING: issue-335a.pdf (trailer, offset 22796): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22804): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake2
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake3
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake4
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake5
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake6
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake7
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake8
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake9
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake10
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake11
|
||||
WARNING: issue-335a.pdf (trailer, offset 22810): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22817): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22817): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 22687): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22690): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22702): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22701): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 22740): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22748): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22761): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22791): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22794): unexpected >
|
||||
WARNING: issue-335a.pdf (trailer, offset 22796): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22804): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake2
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake3
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake4
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake5
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake6
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake7
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake8
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake9
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake10
|
||||
WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake11
|
||||
WARNING: issue-335a.pdf (trailer, offset 22816): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 22702): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22701): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 22746): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 22845): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22869): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 22844): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (trailer, offset 22844): expected dictionary key but found non-name object; inserting key /QPDFFake2
|
||||
WARNING: issue-335a.pdf (trailer, offset 22844): expected dictionary key but found non-name object; inserting key /QPDFFake3
|
||||
WARNING: issue-335a.pdf (trailer, offset 22880): stream keyword found in trailer
|
||||
WARNING: issue-335a.pdf (trailer, offset 23098): invalid character (t) in hexstring
|
||||
WARNING: issue-335a.pdf (trailer, offset 23101): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 23108): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 23130): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 23147): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 23155): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 23155): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 23108): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 23130): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 23147): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 23155): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 23196): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 23324): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 23324): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (trailer, offset 23411): dictionary ended prematurely; using null as value for last key
|
||||
WARNING: issue-335a.pdf (trailer, offset 23508): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 23513): unexpected )
|
||||
WARNING: issue-335a.pdf (trailer, offset 23514): unexpected )
|
||||
WARNING: issue-335a.pdf (trailer, offset 23516): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (trailer, offset 23518): invalid character (R) in hexstring
|
||||
WARNING: issue-335a.pdf (trailer, offset 23525): unexpected >
|
||||
WARNING: issue-335a.pdf (trailer, offset 23525): too many errors; giving up on reading object
|
||||
WARNING: issue-335a.pdf (object 5 0, offset 23451): invalid character (ÿ) in hexstring
|
||||
WARNING: issue-335a.pdf (object 5 0, offset 23458): unknown token while reading object; treating as string
|
||||
WARNING: issue-335a.pdf (object 5 0, offset 23444): expected dictionary key but found non-name object; inserting key /QPDFFake1
|
||||
WARNING: issue-335a.pdf (object 5 0, offset 23444): expected dictionary key but found non-name object; inserting key /QPDFFake2
|
||||
WARNING: issue-335a.pdf (object 5 0, offset 23440): stream dictionary lacks /Length key
|
||||
WARNING: issue-335a.pdf (object 5 0, offset 23485): attempting to recover stream length
|
||||
WARNING: issue-335a.pdf (object 5 0, offset 23485): unable to recover stream data; treating stream as empty
|
||||
WARNING: issue-335a.pdf (object 5 0, offset 24974): expected endobj
|
||||
WARNING: issue-335a.pdf (object 5 0, offset 24974): EOF after endobj
|
||||
qpdf: issue-335a.pdf: unable to find /Root dictionary
|
||||
|
@ -1,5 +1,4 @@
|
||||
WARNING: recover-xref-stream.pdf: file is damaged
|
||||
WARNING: recover-xref-stream.pdf: can't find startxref
|
||||
WARNING: recover-xref-stream.pdf: Attempting to reconstruct cross-reference table
|
||||
WARNING: recover-xref-stream.pdf: reported number of objects (14) is not one plus the highest object number (15)
|
||||
qpdf: operation succeeded with warnings; resulting file may have some problems
|
||||
|
Loading…
Reference in New Issue
Block a user