Commit 0f97e98203dfa78cf3273005f215d2d026390e5c
1 parent
088fabd9
Handle linearization warnings as proper warning (fixes #851)
Showing
23 changed files
with
487 additions
and
482 deletions
ChangeLog
| 1 | +2023-02-18 Jay Berkenbilt <ejb@ql.org> | |
| 2 | + | |
| 3 | + * Treat all linearization errors and warnings as warnings, and | |
| 4 | + issue them through the normal warning system using the new error | |
| 5 | + code qpdf_e_linearization. That means that --no-warn will suppress | |
| 6 | + them, and the file name is included in the warning. Fixes #851. | |
| 7 | + | |
| 1 | 8 | 2023-01-28 Jay Berkenbilt <ejb@ql.org> |
| 2 | 9 | |
| 3 | 10 | * New option --remove-restrictions removes security restrictions | ... | ... |
README-maintainer
| ... | ... | @@ -127,6 +127,8 @@ CODING RULES |
| 127 | 127 | "Code Formatting" section in manual/contributing.rst for details. |
| 128 | 128 | See also "CODE FORMATTING" below. |
| 129 | 129 | |
| 130 | +* Use std::to_string instead of QUtil::int_to_string et al | |
| 131 | + | |
| 130 | 132 | * Use of assert: |
| 131 | 133 | |
| 132 | 134 | * Test code: #include <qpdf/assert_test.h> first. | ... | ... |
TODO
| ... | ... | @@ -11,7 +11,6 @@ Always |
| 11 | 11 | |
| 12 | 12 | * Fix #874 -- make args in --encrypt to match the json and make |
| 13 | 13 | positional fill in the gaps |
| 14 | -* Fix #851 -- not suppressing linearization warnings | |
| 15 | 14 | * Maybe fix #553 -- use file times for attachments |
| 16 | 15 | * Clarify idempotency section to emphasize --deterministic-id over |
| 17 | 16 | --static-id | ... | ... |
include/qpdf/Constants.h
| ... | ... | @@ -83,14 +83,15 @@ enum qpdf_exit_code_e { |
| 83 | 83 | |
| 84 | 84 | enum qpdf_error_code_e { |
| 85 | 85 | qpdf_e_success = 0, |
| 86 | - qpdf_e_internal, /* logic/programming error -- indicates bug */ | |
| 87 | - qpdf_e_system, /* I/O error, memory error, etc. */ | |
| 88 | - qpdf_e_unsupported, /* PDF feature not (yet) supported by qpdf */ | |
| 89 | - qpdf_e_password, /* incorrect password for encrypted file */ | |
| 90 | - qpdf_e_damaged_pdf, /* syntax errors or other damage in PDF */ | |
| 91 | - qpdf_e_pages, /* erroneous or unsupported pages structure */ | |
| 92 | - qpdf_e_object, /* type/bounds errors accessing objects */ | |
| 93 | - qpdf_e_json, /* error in qpdf JSON */ | |
| 86 | + qpdf_e_internal, /* logic/programming error -- indicates bug */ | |
| 87 | + qpdf_e_system, /* I/O error, memory error, etc. */ | |
| 88 | + qpdf_e_unsupported, /* PDF feature not (yet) supported by qpdf */ | |
| 89 | + qpdf_e_password, /* incorrect password for encrypted file */ | |
| 90 | + qpdf_e_damaged_pdf, /* syntax errors or other damage in PDF */ | |
| 91 | + qpdf_e_pages, /* erroneous or unsupported pages structure */ | |
| 92 | + qpdf_e_object, /* type/bounds errors accessing objects */ | |
| 93 | + qpdf_e_json, /* error in qpdf JSON */ | |
| 94 | + qpdf_e_linearization, /* linearization warning */ | |
| 94 | 95 | }; |
| 95 | 96 | |
| 96 | 97 | /* Object Types */ | ... | ... |
include/qpdf/QPDF.hh
| ... | ... | @@ -32,6 +32,7 @@ |
| 32 | 32 | #include <memory> |
| 33 | 33 | #include <stdio.h> |
| 34 | 34 | #include <string> |
| 35 | +#include <string_view> | |
| 35 | 36 | #include <vector> |
| 36 | 37 | |
| 37 | 38 | #include <qpdf/Buffer.hh> |
| ... | ... | @@ -1565,6 +1566,7 @@ class QPDF |
| 1565 | 1566 | void readLinearizationData(); |
| 1566 | 1567 | bool checkLinearizationInternal(); |
| 1567 | 1568 | void dumpLinearizationDataInternal(); |
| 1569 | + void linearizationWarning(std::string_view); | |
| 1568 | 1570 | QPDFObjectHandle |
| 1569 | 1571 | readHintStream(Pipeline&, qpdf_offset_t offset, size_t length); |
| 1570 | 1572 | void readHPageOffset(BitStream); |
| ... | ... | @@ -1574,18 +1576,14 @@ class QPDF |
| 1574 | 1576 | qpdf_offset_t getLinearizationOffset(QPDFObjGen const&); |
| 1575 | 1577 | QPDFObjectHandle getUncompressedObject( |
| 1576 | 1578 | QPDFObjectHandle&, std::map<int, int> const& object_stream_data); |
| 1577 | - int lengthNextN(int first_object, int n, std::list<std::string>& errors); | |
| 1579 | + int lengthNextN(int first_object, int n); | |
| 1578 | 1580 | void checkHPageOffset( |
| 1579 | - std::list<std::string>& errors, | |
| 1580 | - std::list<std::string>& warnings, | |
| 1581 | 1581 | std::vector<QPDFObjectHandle> const& pages, |
| 1582 | 1582 | std::map<int, int>& idx_to_obj); |
| 1583 | 1583 | void checkHSharedObject( |
| 1584 | - std::list<std::string>& warnings, | |
| 1585 | - std::list<std::string>& errors, | |
| 1586 | 1584 | std::vector<QPDFObjectHandle> const& pages, |
| 1587 | 1585 | std::map<int, int>& idx_to_obj); |
| 1588 | - void checkHOutlines(std::list<std::string>& warnings); | |
| 1586 | + void checkHOutlines(); | |
| 1589 | 1587 | void dumpHPageOffset(); |
| 1590 | 1588 | void dumpHSharedObject(); |
| 1591 | 1589 | void dumpHGeneric(HGeneric&); |
| ... | ... | @@ -1728,6 +1726,7 @@ class QPDF |
| 1728 | 1726 | // Linearization data |
| 1729 | 1727 | qpdf_offset_t first_xref_item_offset{0}; // actual value from file |
| 1730 | 1728 | bool uncompressed_after_compressed{false}; |
| 1729 | + bool linearization_warnings{false}; | |
| 1731 | 1730 | |
| 1732 | 1731 | // Linearization parameter dictionary and hint table data: may be |
| 1733 | 1732 | // read from file or computed prior to writing a linearized file | ... | ... |
libqpdf/QPDFJob.cc
| ... | ... | @@ -783,7 +783,6 @@ QPDFJob::doCheck(QPDF& pdf) |
| 783 | 783 | // continue to perform additional checks after finding |
| 784 | 784 | // errors. |
| 785 | 785 | bool okay = true; |
| 786 | - bool warnings = false; | |
| 787 | 786 | auto& cout = *this->m->log->getInfo(); |
| 788 | 787 | cout << "checking " << m->infilename.get() << "\n"; |
| 789 | 788 | try { |
| ... | ... | @@ -796,12 +795,7 @@ QPDFJob::doCheck(QPDF& pdf) |
| 796 | 795 | showEncryption(pdf); |
| 797 | 796 | if (pdf.isLinearized()) { |
| 798 | 797 | cout << "File is linearized\n"; |
| 799 | - // any errors or warnings are reported by | |
| 800 | - // checkLinearization(). We treat all issues reported here | |
| 801 | - // as warnings. | |
| 802 | - if (!pdf.checkLinearization()) { | |
| 803 | - warnings = true; | |
| 804 | - } | |
| 798 | + pdf.checkLinearization(); | |
| 805 | 799 | } else { |
| 806 | 800 | cout << "File is not linearized\n"; |
| 807 | 801 | } |
| ... | ... | @@ -836,7 +830,7 @@ QPDFJob::doCheck(QPDF& pdf) |
| 836 | 830 | throw std::runtime_error("errors detected"); |
| 837 | 831 | } |
| 838 | 832 | |
| 839 | - if ((!pdf.getWarnings().empty()) || warnings) { | |
| 833 | + if (!pdf.getWarnings().empty()) { | |
| 840 | 834 | this->m->warnings = true; |
| 841 | 835 | } else { |
| 842 | 836 | *this->m->log->getInfo() << "No syntax or stream encoding errors" | ... | ... |
libqpdf/QPDF_linearization.cc
| ... | ... | @@ -65,6 +65,13 @@ load_vector_vector( |
| 65 | 65 | bit_stream.skipToNextByte(); |
| 66 | 66 | } |
| 67 | 67 | |
| 68 | +void | |
| 69 | +QPDF::linearizationWarning(std::string_view msg) | |
| 70 | +{ | |
| 71 | + this->m->linearization_warnings = true; | |
| 72 | + warn(qpdf_e_linearization, "", 0, std::string(msg)); | |
| 73 | +} | |
| 74 | + | |
| 68 | 75 | bool |
| 69 | 76 | QPDF::checkLinearization() |
| 70 | 77 | { |
| ... | ... | @@ -73,9 +80,9 @@ QPDF::checkLinearization() |
| 73 | 80 | readLinearizationData(); |
| 74 | 81 | result = checkLinearizationInternal(); |
| 75 | 82 | } catch (std::runtime_error& e) { |
| 76 | - *this->m->log->getError() | |
| 77 | - << "WARNING: error encountered while checking linearization data: " | |
| 78 | - << e.what() << "\n"; | |
| 83 | + linearizationWarning( | |
| 84 | + "error encountered while checking linearization data: " + | |
| 85 | + std::string(e.what())); | |
| 79 | 86 | } |
| 80 | 87 | return result; |
| 81 | 88 | } |
| ... | ... | @@ -333,9 +340,10 @@ QPDF::readHintStream(Pipeline& pl, qpdf_offset_t offset, size_t length) |
| 333 | 340 | } |
| 334 | 341 | qpdf_offset_t computed_end = offset + toO(length); |
| 335 | 342 | if ((computed_end < min_end_offset) || (computed_end > max_end_offset)) { |
| 336 | - *this->m->log->getError() | |
| 337 | - << "expected = " << computed_end << "; actual = " << min_end_offset | |
| 338 | - << ".." << max_end_offset << "\n"; | |
| 343 | + linearizationWarning( | |
| 344 | + "expected = " + std::to_string(computed_end) + | |
| 345 | + "; actual = " + std::to_string(min_end_offset) + ".." + | |
| 346 | + std::to_string(max_end_offset)); | |
| 339 | 347 | throw damagedPDF( |
| 340 | 348 | "linearization dictionary", "hint table length mismatch"); |
| 341 | 349 | } |
| ... | ... | @@ -476,9 +484,6 @@ QPDF::checkLinearizationInternal() |
| 476 | 484 | // All comments referring to the PDF spec refer to the spec for |
| 477 | 485 | // version 1.4. |
| 478 | 486 | |
| 479 | - std::list<std::string> errors; | |
| 480 | - std::list<std::string> warnings; | |
| 481 | - | |
| 482 | 487 | // Check all values in linearization parameter dictionary |
| 483 | 488 | |
| 484 | 489 | LinParameters& p = this->m->linp; |
| ... | ... | @@ -489,21 +494,21 @@ QPDF::checkLinearizationInternal() |
| 489 | 494 | std::vector<QPDFObjectHandle> const& pages = getAllPages(); |
| 490 | 495 | if (p.first_page_object != pages.at(0).getObjectID()) { |
| 491 | 496 | QTC::TC("qpdf", "QPDF err /O mismatch"); |
| 492 | - errors.push_back("first page object (/O) mismatch"); | |
| 497 | + linearizationWarning("first page object (/O) mismatch"); | |
| 493 | 498 | } |
| 494 | 499 | |
| 495 | 500 | // N: number of pages |
| 496 | 501 | int npages = toI(pages.size()); |
| 497 | 502 | if (p.npages != npages) { |
| 498 | 503 | // Not tested in the test suite |
| 499 | - errors.push_back("page count (/N) mismatch"); | |
| 504 | + linearizationWarning("page count (/N) mismatch"); | |
| 500 | 505 | } |
| 501 | 506 | |
| 502 | 507 | for (size_t i = 0; i < toS(npages); ++i) { |
| 503 | 508 | QPDFObjectHandle const& page = pages.at(i); |
| 504 | 509 | QPDFObjGen og(page.getObjGen()); |
| 505 | 510 | if (this->m->xref_table[og].getType() == 2) { |
| 506 | - errors.push_back( | |
| 511 | + linearizationWarning( | |
| 507 | 512 | "page dictionary for page " + std::to_string(i) + |
| 508 | 513 | " is compressed"); |
| 509 | 514 | } |
| ... | ... | @@ -521,7 +526,7 @@ QPDF::checkLinearizationInternal() |
| 521 | 526 | } |
| 522 | 527 | if (this->m->file->tell() != this->m->first_xref_item_offset) { |
| 523 | 528 | QTC::TC("qpdf", "QPDF err /T mismatch"); |
| 524 | - errors.push_back( | |
| 529 | + linearizationWarning( | |
| 525 | 530 | "space before first xref item (/T) mismatch " |
| 526 | 531 | "(computed = " + |
| 527 | 532 | std::to_string(this->m->first_xref_item_offset) + |
| ... | ... | @@ -537,8 +542,9 @@ QPDF::checkLinearizationInternal() |
| 537 | 542 | // are in use. |
| 538 | 543 | |
| 539 | 544 | if (this->m->uncompressed_after_compressed) { |
| 540 | - errors.push_back("linearized file contains an uncompressed object" | |
| 541 | - " after a compressed one in a cross-reference stream"); | |
| 545 | + linearizationWarning( | |
| 546 | + "linearized file contains an uncompressed object" | |
| 547 | + " after a compressed one in a cross-reference stream"); | |
| 542 | 548 | } |
| 543 | 549 | |
| 544 | 550 | // Further checking requires optimization and order calculation. |
| ... | ... | @@ -587,7 +593,7 @@ QPDF::checkLinearizationInternal() |
| 587 | 593 | } |
| 588 | 594 | if ((p.first_page_end < min_E) || (p.first_page_end > max_E)) { |
| 589 | 595 | QTC::TC("qpdf", "QPDF warn /E mismatch"); |
| 590 | - warnings.push_back( | |
| 596 | + linearizationWarning( | |
| 591 | 597 | "end of first page section (/E) mismatch: /E = " + |
| 592 | 598 | std::to_string(p.first_page_end) + "; computed = " + |
| 593 | 599 | std::to_string(min_E) + ".." + std::to_string(max_E)); |
| ... | ... | @@ -596,34 +602,11 @@ QPDF::checkLinearizationInternal() |
| 596 | 602 | // Check hint tables |
| 597 | 603 | |
| 598 | 604 | std::map<int, int> shared_idx_to_obj; |
| 599 | - checkHSharedObject(errors, warnings, pages, shared_idx_to_obj); | |
| 600 | - checkHPageOffset(errors, warnings, pages, shared_idx_to_obj); | |
| 601 | - checkHOutlines(warnings); | |
| 602 | - | |
| 603 | - // Report errors | |
| 604 | - | |
| 605 | - bool result = true; | |
| 606 | - | |
| 607 | - // Treat all linearization errors as warnings. Many of them occur | |
| 608 | - // in otherwise working files, so it's really misleading to treat | |
| 609 | - // them as errors. We'll hang onto the distinction in the code for | |
| 610 | - // now in case we ever have a chance to clean up the linearization | |
| 611 | - // code. | |
| 612 | - if (!errors.empty()) { | |
| 613 | - result = false; | |
| 614 | - for (auto const& error: errors) { | |
| 615 | - *this->m->log->getError() << "WARNING: " << error << "\n"; | |
| 616 | - } | |
| 617 | - } | |
| 605 | + checkHSharedObject(pages, shared_idx_to_obj); | |
| 606 | + checkHPageOffset(pages, shared_idx_to_obj); | |
| 607 | + checkHOutlines(); | |
| 618 | 608 | |
| 619 | - if (!warnings.empty()) { | |
| 620 | - result = false; | |
| 621 | - for (auto const& warning: warnings) { | |
| 622 | - *this->m->log->getError() << "WARNING: " << warning << "\n"; | |
| 623 | - } | |
| 624 | - } | |
| 625 | - | |
| 626 | - return result; | |
| 609 | + return !this->m->linearization_warnings; | |
| 627 | 610 | } |
| 628 | 611 | |
| 629 | 612 | qpdf_offset_t |
| ... | ... | @@ -680,13 +663,13 @@ QPDF::getUncompressedObject( |
| 680 | 663 | } |
| 681 | 664 | |
| 682 | 665 | int |
| 683 | -QPDF::lengthNextN(int first_object, int n, std::list<std::string>& errors) | |
| 666 | +QPDF::lengthNextN(int first_object, int n) | |
| 684 | 667 | { |
| 685 | 668 | int length = 0; |
| 686 | 669 | for (int i = 0; i < n; ++i) { |
| 687 | 670 | QPDFObjGen og(first_object + i, 0); |
| 688 | 671 | if (this->m->xref_table.count(og) == 0) { |
| 689 | - errors.push_back( | |
| 672 | + linearizationWarning( | |
| 690 | 673 | "no xref table entry for " + std::to_string(first_object + i) + |
| 691 | 674 | " 0"); |
| 692 | 675 | } else { |
| ... | ... | @@ -704,8 +687,6 @@ QPDF::lengthNextN(int first_object, int n, std::list<std::string>& errors) |
| 704 | 687 | |
| 705 | 688 | void |
| 706 | 689 | QPDF::checkHPageOffset( |
| 707 | - std::list<std::string>& errors, | |
| 708 | - std::list<std::string>& warnings, | |
| 709 | 690 | std::vector<QPDFObjectHandle> const& pages, |
| 710 | 691 | std::map<int, int>& shared_idx_to_obj) |
| 711 | 692 | { |
| ... | ... | @@ -735,7 +716,7 @@ QPDF::checkHPageOffset( |
| 735 | 716 | } |
| 736 | 717 | qpdf_offset_t offset = getLinearizationOffset(first_page_og); |
| 737 | 718 | if (table_offset != offset) { |
| 738 | - warnings.push_back("first page object offset mismatch"); | |
| 719 | + linearizationWarning("first page object offset mismatch"); | |
| 739 | 720 | } |
| 740 | 721 | |
| 741 | 722 | for (int pageno = 0; pageno < npages; ++pageno) { |
| ... | ... | @@ -754,7 +735,7 @@ QPDF::checkHPageOffset( |
| 754 | 735 | he.delta_nobjects + this->m->page_offset_hints.min_nobjects; |
| 755 | 736 | if (h_nobjects != ce.nobjects) { |
| 756 | 737 | // This happens with pdlin when there are thumbnails. |
| 757 | - warnings.push_back( | |
| 738 | + linearizationWarning( | |
| 758 | 739 | "object count mismatch for page " + std::to_string(pageno) + |
| 759 | 740 | ": hint table = " + std::to_string(h_nobjects) + |
| 760 | 741 | "; computed = " + std::to_string(ce.nobjects)); |
| ... | ... | @@ -762,13 +743,13 @@ QPDF::checkHPageOffset( |
| 762 | 743 | |
| 763 | 744 | // Use value for number of objects in hint table rather than |
| 764 | 745 | // computed value if there is a discrepancy. |
| 765 | - int length = lengthNextN(first_object, h_nobjects, errors); | |
| 746 | + int length = lengthNextN(first_object, h_nobjects); | |
| 766 | 747 | int h_length = toI( |
| 767 | 748 | he.delta_page_length + this->m->page_offset_hints.min_page_length); |
| 768 | 749 | if (length != h_length) { |
| 769 | 750 | // This condition almost certainly indicates a bad hint |
| 770 | 751 | // table or a bug in this code. |
| 771 | - errors.push_back( | |
| 752 | + linearizationWarning( | |
| 772 | 753 | "page length mismatch for page " + std::to_string(pageno) + |
| 773 | 754 | ": hint table = " + std::to_string(h_length) + |
| 774 | 755 | "; computed length = " + std::to_string(length) + |
| ... | ... | @@ -784,7 +765,7 @@ QPDF::checkHPageOffset( |
| 784 | 765 | if ((pageno == 0) && (he.nshared_objects > 0)) { |
| 785 | 766 | // pdlin and Acrobat both do this even though the spec |
| 786 | 767 | // states clearly and unambiguously that they should not. |
| 787 | - warnings.push_back("page 0 has shared identifier entries"); | |
| 768 | + linearizationWarning("page 0 has shared identifier entries"); | |
| 788 | 769 | } |
| 789 | 770 | |
| 790 | 771 | for (size_t i = 0; i < toS(he.nshared_objects); ++i) { |
| ... | ... | @@ -808,7 +789,7 @@ QPDF::checkHPageOffset( |
| 808 | 789 | for (int iter: hint_shared) { |
| 809 | 790 | if (!computed_shared.count(iter)) { |
| 810 | 791 | // pdlin puts thumbnails here even though it shouldn't |
| 811 | - warnings.push_back( | |
| 792 | + linearizationWarning( | |
| 812 | 793 | "page " + std::to_string(pageno) + ": shared object " + |
| 813 | 794 | std::to_string(iter) + |
| 814 | 795 | ": in hint table but not computed list"); |
| ... | ... | @@ -820,10 +801,10 @@ QPDF::checkHPageOffset( |
| 820 | 801 | // Acrobat does not put some things including at least |
| 821 | 802 | // built-in fonts and procsets here, at least in some |
| 822 | 803 | // cases. |
| 823 | - warnings.push_back( | |
| 824 | - "page " + std::to_string(pageno) + ": shared object " + | |
| 825 | - std::to_string(iter) + | |
| 826 | - ": in computed list but not hint table"); | |
| 804 | + linearizationWarning( | |
| 805 | + ("page " + std::to_string(pageno) + ": shared object " + | |
| 806 | + std::to_string(iter) + | |
| 807 | + ": in computed list but not hint table")); | |
| 827 | 808 | } |
| 828 | 809 | } |
| 829 | 810 | } |
| ... | ... | @@ -831,10 +812,7 @@ QPDF::checkHPageOffset( |
| 831 | 812 | |
| 832 | 813 | void |
| 833 | 814 | QPDF::checkHSharedObject( |
| 834 | - std::list<std::string>& errors, | |
| 835 | - std::list<std::string>& warnings, | |
| 836 | - std::vector<QPDFObjectHandle> const& pages, | |
| 837 | - std::map<int, int>& idx_to_obj) | |
| 815 | + std::vector<QPDFObjectHandle> const& pages, std::map<int, int>& idx_to_obj) | |
| 838 | 816 | { |
| 839 | 817 | // Implementation note 125 says shared object groups always |
| 840 | 818 | // contain only one object. Implementation note 128 says that |
| ... | ... | @@ -856,7 +834,7 @@ QPDF::checkHSharedObject( |
| 856 | 834 | |
| 857 | 835 | HSharedObject& so = this->m->shared_object_hints; |
| 858 | 836 | if (so.nshared_total < so.nshared_first_page) { |
| 859 | - errors.push_back("shared object hint table: ntotal < nfirst_page"); | |
| 837 | + linearizationWarning("shared object hint table: ntotal < nfirst_page"); | |
| 860 | 838 | } else { |
| 861 | 839 | // The first nshared_first_page objects are consecutive |
| 862 | 840 | // objects starting with the first page object. The rest are |
| ... | ... | @@ -866,12 +844,12 @@ QPDF::checkHSharedObject( |
| 866 | 844 | if (i == so.nshared_first_page) { |
| 867 | 845 | QTC::TC("qpdf", "QPDF lin check shared past first page"); |
| 868 | 846 | if (this->m->part8.empty()) { |
| 869 | - errors.push_back("part 8 is empty but nshared_total > " | |
| 870 | - "nshared_first_page"); | |
| 847 | + linearizationWarning("part 8 is empty but nshared_total > " | |
| 848 | + "nshared_first_page"); | |
| 871 | 849 | } else { |
| 872 | 850 | int obj = this->m->part8.at(0).getObjectID(); |
| 873 | 851 | if (obj != so.first_shared_obj) { |
| 874 | - errors.push_back( | |
| 852 | + linearizationWarning( | |
| 875 | 853 | "first shared object number mismatch: " |
| 876 | 854 | "hint table = " + |
| 877 | 855 | std::to_string(so.first_shared_obj) + |
| ... | ... | @@ -889,7 +867,7 @@ QPDF::checkHSharedObject( |
| 889 | 867 | qpdf_offset_t h_offset = |
| 890 | 868 | adjusted_offset(so.first_shared_offset); |
| 891 | 869 | if (offset != h_offset) { |
| 892 | - errors.push_back( | |
| 870 | + linearizationWarning( | |
| 893 | 871 | "first shared object offset mismatch: hint table = " + |
| 894 | 872 | std::to_string(h_offset) + |
| 895 | 873 | "; computed = " + std::to_string(offset)); |
| ... | ... | @@ -899,10 +877,10 @@ QPDF::checkHSharedObject( |
| 899 | 877 | idx_to_obj[i] = cur_object; |
| 900 | 878 | HSharedObjectEntry& se = so.entries.at(toS(i)); |
| 901 | 879 | int nobjects = se.nobjects_minus_one + 1; |
| 902 | - int length = lengthNextN(cur_object, nobjects, errors); | |
| 880 | + int length = lengthNextN(cur_object, nobjects); | |
| 903 | 881 | int h_length = so.min_group_length + se.delta_group_length; |
| 904 | 882 | if (length != h_length) { |
| 905 | - errors.push_back( | |
| 883 | + linearizationWarning( | |
| 906 | 884 | "shared object " + std::to_string(i) + |
| 907 | 885 | " length mismatch: hint table = " + |
| 908 | 886 | std::to_string(h_length) + |
| ... | ... | @@ -914,7 +892,7 @@ QPDF::checkHSharedObject( |
| 914 | 892 | } |
| 915 | 893 | |
| 916 | 894 | void |
| 917 | -QPDF::checkHOutlines(std::list<std::string>& warnings) | |
| 895 | +QPDF::checkHOutlines() | |
| 918 | 896 | { |
| 919 | 897 | // Empirically, Acrobat generates the correct value for the object |
| 920 | 898 | // number but incorrectly stores the next object number's offset |
| ... | ... | @@ -937,7 +915,7 @@ QPDF::checkHOutlines(std::list<std::string>& warnings) |
| 937 | 915 | // This case is not exercised in test suite since not |
| 938 | 916 | // permitted by the spec, but if this does occur, the |
| 939 | 917 | // code below would fail. |
| 940 | - warnings.push_back( | |
| 918 | + linearizationWarning( | |
| 941 | 919 | "/Outlines key of root dictionary is not indirect"); |
| 942 | 920 | return; |
| 943 | 921 | } |
| ... | ... | @@ -951,24 +929,24 @@ QPDF::checkHOutlines(std::list<std::string>& warnings) |
| 951 | 929 | qpdf_offset_t table_offset = |
| 952 | 930 | adjusted_offset(this->m->outline_hints.first_object_offset); |
| 953 | 931 | if (offset != table_offset) { |
| 954 | - warnings.push_back( | |
| 932 | + linearizationWarning( | |
| 955 | 933 | "incorrect offset in outlines table: hint table = " + |
| 956 | 934 | std::to_string(table_offset) + |
| 957 | 935 | "; computed = " + std::to_string(offset)); |
| 958 | 936 | } |
| 959 | 937 | int table_length = this->m->outline_hints.group_length; |
| 960 | 938 | if (length != table_length) { |
| 961 | - warnings.push_back( | |
| 939 | + linearizationWarning( | |
| 962 | 940 | "incorrect length in outlines table: hint table = " + |
| 963 | 941 | std::to_string(table_length) + |
| 964 | 942 | "; computed = " + std::to_string(length)); |
| 965 | 943 | } |
| 966 | 944 | } else { |
| 967 | - warnings.push_back("incorrect first object number in outline " | |
| 968 | - "hints table."); | |
| 945 | + linearizationWarning("incorrect first object number in outline " | |
| 946 | + "hints table."); | |
| 969 | 947 | } |
| 970 | 948 | } else { |
| 971 | - warnings.push_back("incorrect object count in outline hint table"); | |
| 949 | + linearizationWarning("incorrect object count in outline hint table"); | |
| 972 | 950 | } |
| 973 | 951 | } |
| 974 | 952 | |
| ... | ... | @@ -980,7 +958,7 @@ QPDF::showLinearizationData() |
| 980 | 958 | checkLinearizationInternal(); |
| 981 | 959 | dumpLinearizationDataInternal(); |
| 982 | 960 | } catch (QPDFExc& e) { |
| 983 | - *this->m->log->getError() << e.what() << "\n"; | |
| 961 | + linearizationWarning(e.what()); | |
| 984 | 962 | } |
| 985 | 963 | } |
| 986 | 964 | ... | ... |
manual/release-notes.rst
| ... | ... | @@ -19,6 +19,12 @@ For a detailed list of changes, please see the file |
| 19 | 19 | - New method ``QPDF::removeSecurityRestrictions`` removes security |
| 20 | 20 | restrictions from digitally signed files. |
| 21 | 21 | |
| 22 | + - Bug fixes | |
| 23 | + | |
| 24 | + - Linearization warnings are now treated like normal warnings in | |
| 25 | + that they include the file name and are suppressed with the | |
| 26 | + :qpdf:ref:`--no-warn` option. | |
| 27 | + | |
| 22 | 28 | - Performance enhancements |
| 23 | 29 | |
| 24 | 30 | - Include more code tidying and performance improvements from M. | ... | ... |
qpdf/qtest/linearization.test
| ... | ... | @@ -45,14 +45,14 @@ my @to_linearize = |
| 45 | 45 | ); |
| 46 | 46 | |
| 47 | 47 | $n_tests += @linearized_files + 6; |
| 48 | -$n_tests += (3 * @to_linearize * 5) + 6; | |
| 48 | +$n_tests += (3 * @to_linearize * 5) + 7; | |
| 49 | 49 | |
| 50 | 50 | foreach my $base (@linearized_files) |
| 51 | 51 | { |
| 52 | 52 | $td->runtest("dump linearization: $base", |
| 53 | 53 | {$td->COMMAND => "qpdf --show-linearization $base.pdf"}, |
| 54 | 54 | {$td->FILE => "$base.out", |
| 55 | - $td->EXIT_STATUS => 0}, | |
| 55 | + $td->EXIT_STATUS => ($base eq 'lin0' ? 0 : 3)}, | |
| 56 | 56 | $td->NORMALIZE_NEWLINES); |
| 57 | 57 | } |
| 58 | 58 | |
| ... | ... | @@ -129,5 +129,10 @@ foreach my $base (@to_linearize) |
| 129 | 129 | } |
| 130 | 130 | } |
| 131 | 131 | |
| 132 | +$td->runtest("suppress linearization warnings", | |
| 133 | + {$td->COMMAND => "qpdf --no-warn --check lin3.pdf"}, | |
| 134 | + {$td->FILE => "lin3-check-nowarn.out", $td->EXIT_STATUS => 3}, | |
| 135 | + $td->NORMALIZE_NEWLINES); | |
| 136 | + | |
| 132 | 137 | cleanup(); |
| 133 | 138 | $td->report($n_tests); | ... | ... |
qpdf/qtest/qpdf/badlin1.out
| 1 | -WARNING: first page object (/O) mismatch | |
| 2 | -WARNING: space before first xref item (/T) mismatch (computed = 11777; file = 11771 | |
| 3 | -WARNING: end of first page section (/E) mismatch: /E = 1827; computed = 3889..3891 | |
| 4 | -WARNING: page 0 has shared identifier entries | |
| 5 | -WARNING: page 0: shared object 62: in hint table but not computed list | |
| 1 | +WARNING: badlin1.pdf: first page object (/O) mismatch | |
| 2 | +WARNING: badlin1.pdf: space before first xref item (/T) mismatch (computed = 11777; file = 11771 | |
| 3 | +WARNING: badlin1.pdf: end of first page section (/E) mismatch: /E = 1827; computed = 3889..3891 | |
| 4 | +WARNING: badlin1.pdf: page 0 has shared identifier entries | |
| 5 | +WARNING: badlin1.pdf: page 0: shared object 62: in hint table but not computed list | |
| 6 | 6 | badlin1.pdf: linearization data: |
| 7 | 7 | |
| 8 | 8 | file_size: 13103 |
| ... | ... | @@ -378,3 +378,4 @@ first_object: 66 |
| 378 | 378 | first_object_offset: 1827 |
| 379 | 379 | nobjects: 12 |
| 380 | 380 | group_length: 2064 |
| 381 | +qpdf: operation succeeded with warnings | ... | ... |
qpdf/qtest/qpdf/lin1.out
| 1 | -WARNING: end of first page section (/E) mismatch: /E = 1827; computed = 3889..3891 | |
| 2 | -WARNING: page 0 has shared identifier entries | |
| 3 | -WARNING: page 0: shared object 62: in hint table but not computed list | |
| 1 | +WARNING: lin1.pdf: end of first page section (/E) mismatch: /E = 1827; computed = 3889..3891 | |
| 2 | +WARNING: lin1.pdf: page 0 has shared identifier entries | |
| 3 | +WARNING: lin1.pdf: page 0: shared object 62: in hint table but not computed list | |
| 4 | 4 | lin1.pdf: linearization data: |
| 5 | 5 | |
| 6 | 6 | file_size: 13103 |
| ... | ... | @@ -376,3 +376,4 @@ first_object: 66 |
| 376 | 376 | first_object_offset: 1827 |
| 377 | 377 | nobjects: 12 |
| 378 | 378 | group_length: 2064 |
| 379 | +qpdf: operation succeeded with warnings | ... | ... |
qpdf/qtest/qpdf/lin2.out
| 1 | -WARNING: end of first page section (/E) mismatch: /E = 1827; computed = 3889..3891 | |
| 2 | -WARNING: page 0 has shared identifier entries | |
| 3 | -WARNING: page 0: shared object 62: in hint table but not computed list | |
| 1 | +WARNING: lin2.pdf: end of first page section (/E) mismatch: /E = 1827; computed = 3889..3891 | |
| 2 | +WARNING: lin2.pdf: page 0 has shared identifier entries | |
| 3 | +WARNING: lin2.pdf: page 0: shared object 62: in hint table but not computed list | |
| 4 | 4 | lin2.pdf: linearization data: |
| 5 | 5 | |
| 6 | 6 | file_size: 13103 |
| ... | ... | @@ -376,3 +376,4 @@ first_object: 66 |
| 376 | 376 | first_object_offset: 1827 |
| 377 | 377 | nobjects: 12 |
| 378 | 378 | group_length: 2064 |
| 379 | +qpdf: operation succeeded with warnings | ... | ... |
qpdf/qtest/qpdf/lin3-check-nowarn.out
0 โ 100644
qpdf/qtest/qpdf/lin3.out
| 1 | -WARNING: end of first page section (/E) mismatch: /E = 3978; computed = 3785..3786 | |
| 2 | -WARNING: page 1: shared object 107: in computed list but not hint table | |
| 3 | -WARNING: page 1: shared object 109: in computed list but not hint table | |
| 4 | -WARNING: page 2: shared object 107: in computed list but not hint table | |
| 5 | -WARNING: page 2: shared object 109: in computed list but not hint table | |
| 6 | -WARNING: page 3: shared object 107: in computed list but not hint table | |
| 7 | -WARNING: page 3: shared object 109: in computed list but not hint table | |
| 8 | -WARNING: page 4: shared object 107: in computed list but not hint table | |
| 9 | -WARNING: page 4: shared object 109: in computed list but not hint table | |
| 10 | -WARNING: page 5: shared object 107: in computed list but not hint table | |
| 11 | -WARNING: page 5: shared object 109: in computed list but not hint table | |
| 12 | -WARNING: page 6: shared object 107: in computed list but not hint table | |
| 13 | -WARNING: page 6: shared object 109: in computed list but not hint table | |
| 14 | -WARNING: page 7: shared object 107: in computed list but not hint table | |
| 15 | -WARNING: page 7: shared object 109: in computed list but not hint table | |
| 16 | -WARNING: page 8: shared object 107: in computed list but not hint table | |
| 17 | -WARNING: page 8: shared object 109: in computed list but not hint table | |
| 18 | -WARNING: page 9: shared object 107: in computed list but not hint table | |
| 19 | -WARNING: page 9: shared object 109: in computed list but not hint table | |
| 20 | -WARNING: page 10: shared object 107: in computed list but not hint table | |
| 21 | -WARNING: page 10: shared object 109: in computed list but not hint table | |
| 22 | -WARNING: page 11: shared object 107: in computed list but not hint table | |
| 23 | -WARNING: page 11: shared object 109: in computed list but not hint table | |
| 24 | -WARNING: page 12: shared object 107: in computed list but not hint table | |
| 25 | -WARNING: page 12: shared object 109: in computed list but not hint table | |
| 26 | -WARNING: page 13: shared object 107: in computed list but not hint table | |
| 27 | -WARNING: page 13: shared object 109: in computed list but not hint table | |
| 28 | -WARNING: page 14: shared object 107: in computed list but not hint table | |
| 29 | -WARNING: page 14: shared object 109: in computed list but not hint table | |
| 30 | -WARNING: page 15: shared object 107: in computed list but not hint table | |
| 31 | -WARNING: page 15: shared object 109: in computed list but not hint table | |
| 32 | -WARNING: page 16: shared object 107: in computed list but not hint table | |
| 33 | -WARNING: page 16: shared object 109: in computed list but not hint table | |
| 34 | -WARNING: page 17: shared object 107: in computed list but not hint table | |
| 35 | -WARNING: page 17: shared object 109: in computed list but not hint table | |
| 36 | -WARNING: page 18: shared object 107: in computed list but not hint table | |
| 37 | -WARNING: page 18: shared object 109: in computed list but not hint table | |
| 38 | -WARNING: page 19: shared object 107: in computed list but not hint table | |
| 39 | -WARNING: page 19: shared object 109: in computed list but not hint table | |
| 40 | -WARNING: page 20: shared object 107: in computed list but not hint table | |
| 41 | -WARNING: page 20: shared object 109: in computed list but not hint table | |
| 42 | -WARNING: page 21: shared object 107: in computed list but not hint table | |
| 43 | -WARNING: page 21: shared object 109: in computed list but not hint table | |
| 44 | -WARNING: page 22: shared object 107: in computed list but not hint table | |
| 45 | -WARNING: page 22: shared object 109: in computed list but not hint table | |
| 46 | -WARNING: page 23: shared object 107: in computed list but not hint table | |
| 47 | -WARNING: page 23: shared object 109: in computed list but not hint table | |
| 48 | -WARNING: page 24: shared object 107: in computed list but not hint table | |
| 49 | -WARNING: page 24: shared object 109: in computed list but not hint table | |
| 50 | -WARNING: page 25: shared object 107: in computed list but not hint table | |
| 51 | -WARNING: page 25: shared object 109: in computed list but not hint table | |
| 52 | -WARNING: page 26: shared object 107: in computed list but not hint table | |
| 53 | -WARNING: page 26: shared object 109: in computed list but not hint table | |
| 54 | -WARNING: page 27: shared object 107: in computed list but not hint table | |
| 55 | -WARNING: page 27: shared object 109: in computed list but not hint table | |
| 56 | -WARNING: page 28: shared object 107: in computed list but not hint table | |
| 57 | -WARNING: page 28: shared object 109: in computed list but not hint table | |
| 58 | -WARNING: page 29: shared object 107: in computed list but not hint table | |
| 59 | -WARNING: page 29: shared object 109: in computed list but not hint table | |
| 60 | -WARNING: incorrect offset in outlines table: hint table = 1627; computed = 1547 | |
| 61 | -WARNING: incorrect length in outlines table: hint table = 1988; computed = 1936 | |
| 1 | +WARNING: lin3.pdf: end of first page section (/E) mismatch: /E = 3978; computed = 3785..3786 | |
| 2 | +WARNING: lin3.pdf: page 1: shared object 107: in computed list but not hint table | |
| 3 | +WARNING: lin3.pdf: page 1: shared object 109: in computed list but not hint table | |
| 4 | +WARNING: lin3.pdf: page 2: shared object 107: in computed list but not hint table | |
| 5 | +WARNING: lin3.pdf: page 2: shared object 109: in computed list but not hint table | |
| 6 | +WARNING: lin3.pdf: page 3: shared object 107: in computed list but not hint table | |
| 7 | +WARNING: lin3.pdf: page 3: shared object 109: in computed list but not hint table | |
| 8 | +WARNING: lin3.pdf: page 4: shared object 107: in computed list but not hint table | |
| 9 | +WARNING: lin3.pdf: page 4: shared object 109: in computed list but not hint table | |
| 10 | +WARNING: lin3.pdf: page 5: shared object 107: in computed list but not hint table | |
| 11 | +WARNING: lin3.pdf: page 5: shared object 109: in computed list but not hint table | |
| 12 | +WARNING: lin3.pdf: page 6: shared object 107: in computed list but not hint table | |
| 13 | +WARNING: lin3.pdf: page 6: shared object 109: in computed list but not hint table | |
| 14 | +WARNING: lin3.pdf: page 7: shared object 107: in computed list but not hint table | |
| 15 | +WARNING: lin3.pdf: page 7: shared object 109: in computed list but not hint table | |
| 16 | +WARNING: lin3.pdf: page 8: shared object 107: in computed list but not hint table | |
| 17 | +WARNING: lin3.pdf: page 8: shared object 109: in computed list but not hint table | |
| 18 | +WARNING: lin3.pdf: page 9: shared object 107: in computed list but not hint table | |
| 19 | +WARNING: lin3.pdf: page 9: shared object 109: in computed list but not hint table | |
| 20 | +WARNING: lin3.pdf: page 10: shared object 107: in computed list but not hint table | |
| 21 | +WARNING: lin3.pdf: page 10: shared object 109: in computed list but not hint table | |
| 22 | +WARNING: lin3.pdf: page 11: shared object 107: in computed list but not hint table | |
| 23 | +WARNING: lin3.pdf: page 11: shared object 109: in computed list but not hint table | |
| 24 | +WARNING: lin3.pdf: page 12: shared object 107: in computed list but not hint table | |
| 25 | +WARNING: lin3.pdf: page 12: shared object 109: in computed list but not hint table | |
| 26 | +WARNING: lin3.pdf: page 13: shared object 107: in computed list but not hint table | |
| 27 | +WARNING: lin3.pdf: page 13: shared object 109: in computed list but not hint table | |
| 28 | +WARNING: lin3.pdf: page 14: shared object 107: in computed list but not hint table | |
| 29 | +WARNING: lin3.pdf: page 14: shared object 109: in computed list but not hint table | |
| 30 | +WARNING: lin3.pdf: page 15: shared object 107: in computed list but not hint table | |
| 31 | +WARNING: lin3.pdf: page 15: shared object 109: in computed list but not hint table | |
| 32 | +WARNING: lin3.pdf: page 16: shared object 107: in computed list but not hint table | |
| 33 | +WARNING: lin3.pdf: page 16: shared object 109: in computed list but not hint table | |
| 34 | +WARNING: lin3.pdf: page 17: shared object 107: in computed list but not hint table | |
| 35 | +WARNING: lin3.pdf: page 17: shared object 109: in computed list but not hint table | |
| 36 | +WARNING: lin3.pdf: page 18: shared object 107: in computed list but not hint table | |
| 37 | +WARNING: lin3.pdf: page 18: shared object 109: in computed list but not hint table | |
| 38 | +WARNING: lin3.pdf: page 19: shared object 107: in computed list but not hint table | |
| 39 | +WARNING: lin3.pdf: page 19: shared object 109: in computed list but not hint table | |
| 40 | +WARNING: lin3.pdf: page 20: shared object 107: in computed list but not hint table | |
| 41 | +WARNING: lin3.pdf: page 20: shared object 109: in computed list but not hint table | |
| 42 | +WARNING: lin3.pdf: page 21: shared object 107: in computed list but not hint table | |
| 43 | +WARNING: lin3.pdf: page 21: shared object 109: in computed list but not hint table | |
| 44 | +WARNING: lin3.pdf: page 22: shared object 107: in computed list but not hint table | |
| 45 | +WARNING: lin3.pdf: page 22: shared object 109: in computed list but not hint table | |
| 46 | +WARNING: lin3.pdf: page 23: shared object 107: in computed list but not hint table | |
| 47 | +WARNING: lin3.pdf: page 23: shared object 109: in computed list but not hint table | |
| 48 | +WARNING: lin3.pdf: page 24: shared object 107: in computed list but not hint table | |
| 49 | +WARNING: lin3.pdf: page 24: shared object 109: in computed list but not hint table | |
| 50 | +WARNING: lin3.pdf: page 25: shared object 107: in computed list but not hint table | |
| 51 | +WARNING: lin3.pdf: page 25: shared object 109: in computed list but not hint table | |
| 52 | +WARNING: lin3.pdf: page 26: shared object 107: in computed list but not hint table | |
| 53 | +WARNING: lin3.pdf: page 26: shared object 109: in computed list but not hint table | |
| 54 | +WARNING: lin3.pdf: page 27: shared object 107: in computed list but not hint table | |
| 55 | +WARNING: lin3.pdf: page 27: shared object 109: in computed list but not hint table | |
| 56 | +WARNING: lin3.pdf: page 28: shared object 107: in computed list but not hint table | |
| 57 | +WARNING: lin3.pdf: page 28: shared object 109: in computed list but not hint table | |
| 58 | +WARNING: lin3.pdf: page 29: shared object 107: in computed list but not hint table | |
| 59 | +WARNING: lin3.pdf: page 29: shared object 109: in computed list but not hint table | |
| 60 | +WARNING: lin3.pdf: incorrect offset in outlines table: hint table = 1627; computed = 1547 | |
| 61 | +WARNING: lin3.pdf: incorrect length in outlines table: hint table = 1988; computed = 1936 | |
| 62 | 62 | lin3.pdf: linearization data: |
| 63 | 63 | |
| 64 | 64 | file_size: 16937 |
| ... | ... | @@ -316,3 +316,4 @@ first_object: 94 |
| 316 | 316 | first_object_offset: 1627 |
| 317 | 317 | nobjects: 12 |
| 318 | 318 | group_length: 1988 |
| 319 | +qpdf: operation succeeded with warnings | ... | ... |
qpdf/qtest/qpdf/lin4.out
| 1 | -WARNING: page 0 has shared identifier entries | |
| 2 | -WARNING: page 0: shared object 74: in hint table but not computed list | |
| 1 | +WARNING: lin4.pdf: page 0 has shared identifier entries | |
| 2 | +WARNING: lin4.pdf: page 0: shared object 74: in hint table but not computed list | |
| 3 | 3 | lin4.pdf: linearization data: |
| 4 | 4 | |
| 5 | 5 | file_size: 13055 |
| ... | ... | @@ -351,3 +351,4 @@ first_object: 60 |
| 351 | 351 | first_object_offset: 9413 |
| 352 | 352 | nobjects: 12 |
| 353 | 353 | group_length: 2064 |
| 354 | +qpdf: operation succeeded with warnings | ... | ... |
qpdf/qtest/qpdf/lin5.out
| 1 | -WARNING: end of first page section (/E) mismatch: /E = 4213; computed = 4004..4005 | |
| 2 | -WARNING: page 1: shared object 170: in computed list but not hint table | |
| 3 | -WARNING: page 1: shared object 172: in computed list but not hint table | |
| 4 | -WARNING: page 2: shared object 170: in computed list but not hint table | |
| 5 | -WARNING: page 2: shared object 172: in computed list but not hint table | |
| 6 | -WARNING: page 3: shared object 170: in computed list but not hint table | |
| 7 | -WARNING: page 3: shared object 172: in computed list but not hint table | |
| 8 | -WARNING: page 4: shared object 170: in computed list but not hint table | |
| 9 | -WARNING: page 4: shared object 172: in computed list but not hint table | |
| 10 | -WARNING: page 5: shared object 170: in computed list but not hint table | |
| 11 | -WARNING: page 5: shared object 172: in computed list but not hint table | |
| 12 | -WARNING: page 6: shared object 170: in computed list but not hint table | |
| 13 | -WARNING: page 6: shared object 172: in computed list but not hint table | |
| 14 | -WARNING: page 7: shared object 170: in computed list but not hint table | |
| 15 | -WARNING: page 7: shared object 172: in computed list but not hint table | |
| 16 | -WARNING: page 8: shared object 170: in computed list but not hint table | |
| 17 | -WARNING: page 8: shared object 172: in computed list but not hint table | |
| 18 | -WARNING: page 9: shared object 170: in computed list but not hint table | |
| 19 | -WARNING: page 9: shared object 172: in computed list but not hint table | |
| 20 | -WARNING: page 10: shared object 170: in computed list but not hint table | |
| 21 | -WARNING: page 10: shared object 172: in computed list but not hint table | |
| 22 | -WARNING: page 11: shared object 170: in computed list but not hint table | |
| 23 | -WARNING: page 11: shared object 172: in computed list but not hint table | |
| 24 | -WARNING: page 12: shared object 170: in computed list but not hint table | |
| 25 | -WARNING: page 12: shared object 172: in computed list but not hint table | |
| 26 | -WARNING: page 13: shared object 170: in computed list but not hint table | |
| 27 | -WARNING: page 13: shared object 172: in computed list but not hint table | |
| 28 | -WARNING: page 14: shared object 170: in computed list but not hint table | |
| 29 | -WARNING: page 14: shared object 172: in computed list but not hint table | |
| 30 | -WARNING: page 15: shared object 170: in computed list but not hint table | |
| 31 | -WARNING: page 15: shared object 172: in computed list but not hint table | |
| 32 | -WARNING: page 16: shared object 170: in computed list but not hint table | |
| 33 | -WARNING: page 16: shared object 172: in computed list but not hint table | |
| 34 | -WARNING: page 17: shared object 170: in computed list but not hint table | |
| 35 | -WARNING: page 17: shared object 172: in computed list but not hint table | |
| 36 | -WARNING: page 18: shared object 170: in computed list but not hint table | |
| 37 | -WARNING: page 18: shared object 172: in computed list but not hint table | |
| 38 | -WARNING: page 19: shared object 170: in computed list but not hint table | |
| 39 | -WARNING: page 19: shared object 172: in computed list but not hint table | |
| 40 | -WARNING: page 20: shared object 170: in computed list but not hint table | |
| 41 | -WARNING: page 20: shared object 172: in computed list but not hint table | |
| 42 | -WARNING: page 21: shared object 170: in computed list but not hint table | |
| 43 | -WARNING: page 21: shared object 172: in computed list but not hint table | |
| 44 | -WARNING: page 22: shared object 170: in computed list but not hint table | |
| 45 | -WARNING: page 22: shared object 172: in computed list but not hint table | |
| 46 | -WARNING: page 23: shared object 170: in computed list but not hint table | |
| 47 | -WARNING: page 23: shared object 172: in computed list but not hint table | |
| 48 | -WARNING: page 24: shared object 170: in computed list but not hint table | |
| 49 | -WARNING: page 24: shared object 172: in computed list but not hint table | |
| 50 | -WARNING: page 25: shared object 170: in computed list but not hint table | |
| 51 | -WARNING: page 25: shared object 172: in computed list but not hint table | |
| 52 | -WARNING: page 26: shared object 170: in computed list but not hint table | |
| 53 | -WARNING: page 26: shared object 172: in computed list but not hint table | |
| 54 | -WARNING: page 27: shared object 170: in computed list but not hint table | |
| 55 | -WARNING: page 27: shared object 172: in computed list but not hint table | |
| 56 | -WARNING: page 28: shared object 170: in computed list but not hint table | |
| 57 | -WARNING: page 28: shared object 172: in computed list but not hint table | |
| 58 | -WARNING: page 29: shared object 170: in computed list but not hint table | |
| 59 | -WARNING: page 29: shared object 172: in computed list but not hint table | |
| 60 | -WARNING: incorrect offset in outlines table: hint table = 1710; computed = 1627 | |
| 61 | -WARNING: incorrect length in outlines table: hint table = 2124; computed = 2075 | |
| 1 | +WARNING: lin5.pdf: end of first page section (/E) mismatch: /E = 4213; computed = 4004..4005 | |
| 2 | +WARNING: lin5.pdf: page 1: shared object 170: in computed list but not hint table | |
| 3 | +WARNING: lin5.pdf: page 1: shared object 172: in computed list but not hint table | |
| 4 | +WARNING: lin5.pdf: page 2: shared object 170: in computed list but not hint table | |
| 5 | +WARNING: lin5.pdf: page 2: shared object 172: in computed list but not hint table | |
| 6 | +WARNING: lin5.pdf: page 3: shared object 170: in computed list but not hint table | |
| 7 | +WARNING: lin5.pdf: page 3: shared object 172: in computed list but not hint table | |
| 8 | +WARNING: lin5.pdf: page 4: shared object 170: in computed list but not hint table | |
| 9 | +WARNING: lin5.pdf: page 4: shared object 172: in computed list but not hint table | |
| 10 | +WARNING: lin5.pdf: page 5: shared object 170: in computed list but not hint table | |
| 11 | +WARNING: lin5.pdf: page 5: shared object 172: in computed list but not hint table | |
| 12 | +WARNING: lin5.pdf: page 6: shared object 170: in computed list but not hint table | |
| 13 | +WARNING: lin5.pdf: page 6: shared object 172: in computed list but not hint table | |
| 14 | +WARNING: lin5.pdf: page 7: shared object 170: in computed list but not hint table | |
| 15 | +WARNING: lin5.pdf: page 7: shared object 172: in computed list but not hint table | |
| 16 | +WARNING: lin5.pdf: page 8: shared object 170: in computed list but not hint table | |
| 17 | +WARNING: lin5.pdf: page 8: shared object 172: in computed list but not hint table | |
| 18 | +WARNING: lin5.pdf: page 9: shared object 170: in computed list but not hint table | |
| 19 | +WARNING: lin5.pdf: page 9: shared object 172: in computed list but not hint table | |
| 20 | +WARNING: lin5.pdf: page 10: shared object 170: in computed list but not hint table | |
| 21 | +WARNING: lin5.pdf: page 10: shared object 172: in computed list but not hint table | |
| 22 | +WARNING: lin5.pdf: page 11: shared object 170: in computed list but not hint table | |
| 23 | +WARNING: lin5.pdf: page 11: shared object 172: in computed list but not hint table | |
| 24 | +WARNING: lin5.pdf: page 12: shared object 170: in computed list but not hint table | |
| 25 | +WARNING: lin5.pdf: page 12: shared object 172: in computed list but not hint table | |
| 26 | +WARNING: lin5.pdf: page 13: shared object 170: in computed list but not hint table | |
| 27 | +WARNING: lin5.pdf: page 13: shared object 172: in computed list but not hint table | |
| 28 | +WARNING: lin5.pdf: page 14: shared object 170: in computed list but not hint table | |
| 29 | +WARNING: lin5.pdf: page 14: shared object 172: in computed list but not hint table | |
| 30 | +WARNING: lin5.pdf: page 15: shared object 170: in computed list but not hint table | |
| 31 | +WARNING: lin5.pdf: page 15: shared object 172: in computed list but not hint table | |
| 32 | +WARNING: lin5.pdf: page 16: shared object 170: in computed list but not hint table | |
| 33 | +WARNING: lin5.pdf: page 16: shared object 172: in computed list but not hint table | |
| 34 | +WARNING: lin5.pdf: page 17: shared object 170: in computed list but not hint table | |
| 35 | +WARNING: lin5.pdf: page 17: shared object 172: in computed list but not hint table | |
| 36 | +WARNING: lin5.pdf: page 18: shared object 170: in computed list but not hint table | |
| 37 | +WARNING: lin5.pdf: page 18: shared object 172: in computed list but not hint table | |
| 38 | +WARNING: lin5.pdf: page 19: shared object 170: in computed list but not hint table | |
| 39 | +WARNING: lin5.pdf: page 19: shared object 172: in computed list but not hint table | |
| 40 | +WARNING: lin5.pdf: page 20: shared object 170: in computed list but not hint table | |
| 41 | +WARNING: lin5.pdf: page 20: shared object 172: in computed list but not hint table | |
| 42 | +WARNING: lin5.pdf: page 21: shared object 170: in computed list but not hint table | |
| 43 | +WARNING: lin5.pdf: page 21: shared object 172: in computed list but not hint table | |
| 44 | +WARNING: lin5.pdf: page 22: shared object 170: in computed list but not hint table | |
| 45 | +WARNING: lin5.pdf: page 22: shared object 172: in computed list but not hint table | |
| 46 | +WARNING: lin5.pdf: page 23: shared object 170: in computed list but not hint table | |
| 47 | +WARNING: lin5.pdf: page 23: shared object 172: in computed list but not hint table | |
| 48 | +WARNING: lin5.pdf: page 24: shared object 170: in computed list but not hint table | |
| 49 | +WARNING: lin5.pdf: page 24: shared object 172: in computed list but not hint table | |
| 50 | +WARNING: lin5.pdf: page 25: shared object 170: in computed list but not hint table | |
| 51 | +WARNING: lin5.pdf: page 25: shared object 172: in computed list but not hint table | |
| 52 | +WARNING: lin5.pdf: page 26: shared object 170: in computed list but not hint table | |
| 53 | +WARNING: lin5.pdf: page 26: shared object 172: in computed list but not hint table | |
| 54 | +WARNING: lin5.pdf: page 27: shared object 170: in computed list but not hint table | |
| 55 | +WARNING: lin5.pdf: page 27: shared object 172: in computed list but not hint table | |
| 56 | +WARNING: lin5.pdf: page 28: shared object 170: in computed list but not hint table | |
| 57 | +WARNING: lin5.pdf: page 28: shared object 172: in computed list but not hint table | |
| 58 | +WARNING: lin5.pdf: page 29: shared object 170: in computed list but not hint table | |
| 59 | +WARNING: lin5.pdf: page 29: shared object 172: in computed list but not hint table | |
| 60 | +WARNING: lin5.pdf: incorrect offset in outlines table: hint table = 1710; computed = 1627 | |
| 61 | +WARNING: lin5.pdf: incorrect length in outlines table: hint table = 2124; computed = 2075 | |
| 62 | 62 | lin5.pdf: linearization data: |
| 63 | 63 | |
| 64 | 64 | file_size: 27464 |
| ... | ... | @@ -316,3 +316,4 @@ first_object: 157 |
| 316 | 316 | first_object_offset: 1710 |
| 317 | 317 | nobjects: 12 |
| 318 | 318 | group_length: 2124 |
| 319 | +qpdf: operation succeeded with warnings | ... | ... |
qpdf/qtest/qpdf/lin6.out
| 1 | -WARNING: end of first page section (/E) mismatch: /E = 2897; computed = 5005..5007 | |
| 2 | -WARNING: object count mismatch for page 0: hint table = 19; computed = 16 | |
| 3 | -WARNING: page 0 has shared identifier entries | |
| 4 | -WARNING: page 0: shared object 93: in hint table but not computed list | |
| 5 | -WARNING: object count mismatch for page 1: hint table = 3; computed = 2 | |
| 6 | -WARNING: page 1: shared object 98: in hint table but not computed list | |
| 7 | -WARNING: page 1: shared object 99: in hint table but not computed list | |
| 8 | -WARNING: object count mismatch for page 2: hint table = 3; computed = 2 | |
| 9 | -WARNING: page 2: shared object 98: in hint table but not computed list | |
| 10 | -WARNING: page 2: shared object 99: in hint table but not computed list | |
| 11 | -WARNING: object count mismatch for page 3: hint table = 3; computed = 2 | |
| 12 | -WARNING: page 3: shared object 98: in hint table but not computed list | |
| 13 | -WARNING: page 3: shared object 99: in hint table but not computed list | |
| 14 | -WARNING: object count mismatch for page 4: hint table = 3; computed = 2 | |
| 15 | -WARNING: page 4: shared object 98: in hint table but not computed list | |
| 16 | -WARNING: page 4: shared object 99: in hint table but not computed list | |
| 17 | -WARNING: object count mismatch for page 5: hint table = 3; computed = 2 | |
| 18 | -WARNING: page 5: shared object 98: in hint table but not computed list | |
| 19 | -WARNING: page 5: shared object 99: in hint table but not computed list | |
| 20 | -WARNING: object count mismatch for page 6: hint table = 3; computed = 2 | |
| 21 | -WARNING: page 6: shared object 98: in hint table but not computed list | |
| 22 | -WARNING: page 6: shared object 99: in hint table but not computed list | |
| 23 | -WARNING: object count mismatch for page 7: hint table = 3; computed = 2 | |
| 24 | -WARNING: page 7: shared object 98: in hint table but not computed list | |
| 25 | -WARNING: page 7: shared object 99: in hint table but not computed list | |
| 26 | -WARNING: object count mismatch for page 8: hint table = 3; computed = 2 | |
| 27 | -WARNING: page 8: shared object 98: in hint table but not computed list | |
| 28 | -WARNING: page 8: shared object 99: in hint table but not computed list | |
| 29 | -WARNING: object count mismatch for page 9: hint table = 3; computed = 2 | |
| 30 | -WARNING: page 9: shared object 98: in hint table but not computed list | |
| 31 | -WARNING: page 9: shared object 99: in hint table but not computed list | |
| 32 | -WARNING: object count mismatch for page 10: hint table = 3; computed = 2 | |
| 33 | -WARNING: page 10: shared object 98: in hint table but not computed list | |
| 34 | -WARNING: page 10: shared object 99: in hint table but not computed list | |
| 35 | -WARNING: object count mismatch for page 11: hint table = 3; computed = 2 | |
| 36 | -WARNING: page 11: shared object 98: in hint table but not computed list | |
| 37 | -WARNING: page 11: shared object 99: in hint table but not computed list | |
| 38 | -WARNING: object count mismatch for page 12: hint table = 3; computed = 2 | |
| 39 | -WARNING: page 12: shared object 98: in hint table but not computed list | |
| 40 | -WARNING: page 12: shared object 99: in hint table but not computed list | |
| 41 | -WARNING: object count mismatch for page 13: hint table = 3; computed = 2 | |
| 42 | -WARNING: page 13: shared object 98: in hint table but not computed list | |
| 43 | -WARNING: page 13: shared object 99: in hint table but not computed list | |
| 44 | -WARNING: object count mismatch for page 14: hint table = 3; computed = 2 | |
| 45 | -WARNING: page 14: shared object 98: in hint table but not computed list | |
| 46 | -WARNING: page 14: shared object 99: in hint table but not computed list | |
| 47 | -WARNING: object count mismatch for page 15: hint table = 3; computed = 2 | |
| 48 | -WARNING: page 15: shared object 98: in hint table but not computed list | |
| 49 | -WARNING: page 15: shared object 99: in hint table but not computed list | |
| 50 | -WARNING: object count mismatch for page 16: hint table = 3; computed = 2 | |
| 51 | -WARNING: page 16: shared object 98: in hint table but not computed list | |
| 52 | -WARNING: page 16: shared object 99: in hint table but not computed list | |
| 53 | -WARNING: object count mismatch for page 17: hint table = 3; computed = 2 | |
| 54 | -WARNING: page 17: shared object 98: in hint table but not computed list | |
| 55 | -WARNING: page 17: shared object 99: in hint table but not computed list | |
| 56 | -WARNING: object count mismatch for page 18: hint table = 3; computed = 2 | |
| 57 | -WARNING: page 18: shared object 98: in hint table but not computed list | |
| 58 | -WARNING: page 18: shared object 99: in hint table but not computed list | |
| 59 | -WARNING: object count mismatch for page 19: hint table = 3; computed = 2 | |
| 60 | -WARNING: page 19: shared object 98: in hint table but not computed list | |
| 61 | -WARNING: page 19: shared object 99: in hint table but not computed list | |
| 62 | -WARNING: object count mismatch for page 20: hint table = 3; computed = 2 | |
| 63 | -WARNING: page 20: shared object 98: in hint table but not computed list | |
| 64 | -WARNING: page 20: shared object 99: in hint table but not computed list | |
| 65 | -WARNING: object count mismatch for page 21: hint table = 3; computed = 2 | |
| 66 | -WARNING: page 21: shared object 98: in hint table but not computed list | |
| 67 | -WARNING: page 21: shared object 99: in hint table but not computed list | |
| 68 | -WARNING: object count mismatch for page 22: hint table = 3; computed = 2 | |
| 69 | -WARNING: page 22: shared object 98: in hint table but not computed list | |
| 70 | -WARNING: page 22: shared object 99: in hint table but not computed list | |
| 71 | -WARNING: object count mismatch for page 23: hint table = 3; computed = 2 | |
| 72 | -WARNING: page 23: shared object 98: in hint table but not computed list | |
| 73 | -WARNING: page 23: shared object 99: in hint table but not computed list | |
| 74 | -WARNING: object count mismatch for page 24: hint table = 3; computed = 2 | |
| 75 | -WARNING: page 24: shared object 98: in hint table but not computed list | |
| 76 | -WARNING: page 24: shared object 99: in hint table but not computed list | |
| 77 | -WARNING: object count mismatch for page 25: hint table = 3; computed = 2 | |
| 78 | -WARNING: page 25: shared object 98: in hint table but not computed list | |
| 79 | -WARNING: page 25: shared object 99: in hint table but not computed list | |
| 80 | -WARNING: object count mismatch for page 26: hint table = 3; computed = 2 | |
| 81 | -WARNING: page 26: shared object 98: in hint table but not computed list | |
| 82 | -WARNING: page 26: shared object 99: in hint table but not computed list | |
| 83 | -WARNING: object count mismatch for page 27: hint table = 3; computed = 2 | |
| 84 | -WARNING: page 27: shared object 98: in hint table but not computed list | |
| 85 | -WARNING: page 27: shared object 99: in hint table but not computed list | |
| 86 | -WARNING: object count mismatch for page 28: hint table = 3; computed = 2 | |
| 87 | -WARNING: page 28: shared object 98: in hint table but not computed list | |
| 88 | -WARNING: page 28: shared object 99: in hint table but not computed list | |
| 89 | -WARNING: object count mismatch for page 29: hint table = 3; computed = 2 | |
| 90 | -WARNING: page 29: shared object 98: in hint table but not computed list | |
| 91 | -WARNING: page 29: shared object 99: in hint table but not computed list | |
| 1 | +WARNING: lin6.pdf: end of first page section (/E) mismatch: /E = 2897; computed = 5005..5007 | |
| 2 | +WARNING: lin6.pdf: object count mismatch for page 0: hint table = 19; computed = 16 | |
| 3 | +WARNING: lin6.pdf: page 0 has shared identifier entries | |
| 4 | +WARNING: lin6.pdf: page 0: shared object 93: in hint table but not computed list | |
| 5 | +WARNING: lin6.pdf: object count mismatch for page 1: hint table = 3; computed = 2 | |
| 6 | +WARNING: lin6.pdf: page 1: shared object 98: in hint table but not computed list | |
| 7 | +WARNING: lin6.pdf: page 1: shared object 99: in hint table but not computed list | |
| 8 | +WARNING: lin6.pdf: object count mismatch for page 2: hint table = 3; computed = 2 | |
| 9 | +WARNING: lin6.pdf: page 2: shared object 98: in hint table but not computed list | |
| 10 | +WARNING: lin6.pdf: page 2: shared object 99: in hint table but not computed list | |
| 11 | +WARNING: lin6.pdf: object count mismatch for page 3: hint table = 3; computed = 2 | |
| 12 | +WARNING: lin6.pdf: page 3: shared object 98: in hint table but not computed list | |
| 13 | +WARNING: lin6.pdf: page 3: shared object 99: in hint table but not computed list | |
| 14 | +WARNING: lin6.pdf: object count mismatch for page 4: hint table = 3; computed = 2 | |
| 15 | +WARNING: lin6.pdf: page 4: shared object 98: in hint table but not computed list | |
| 16 | +WARNING: lin6.pdf: page 4: shared object 99: in hint table but not computed list | |
| 17 | +WARNING: lin6.pdf: object count mismatch for page 5: hint table = 3; computed = 2 | |
| 18 | +WARNING: lin6.pdf: page 5: shared object 98: in hint table but not computed list | |
| 19 | +WARNING: lin6.pdf: page 5: shared object 99: in hint table but not computed list | |
| 20 | +WARNING: lin6.pdf: object count mismatch for page 6: hint table = 3; computed = 2 | |
| 21 | +WARNING: lin6.pdf: page 6: shared object 98: in hint table but not computed list | |
| 22 | +WARNING: lin6.pdf: page 6: shared object 99: in hint table but not computed list | |
| 23 | +WARNING: lin6.pdf: object count mismatch for page 7: hint table = 3; computed = 2 | |
| 24 | +WARNING: lin6.pdf: page 7: shared object 98: in hint table but not computed list | |
| 25 | +WARNING: lin6.pdf: page 7: shared object 99: in hint table but not computed list | |
| 26 | +WARNING: lin6.pdf: object count mismatch for page 8: hint table = 3; computed = 2 | |
| 27 | +WARNING: lin6.pdf: page 8: shared object 98: in hint table but not computed list | |
| 28 | +WARNING: lin6.pdf: page 8: shared object 99: in hint table but not computed list | |
| 29 | +WARNING: lin6.pdf: object count mismatch for page 9: hint table = 3; computed = 2 | |
| 30 | +WARNING: lin6.pdf: page 9: shared object 98: in hint table but not computed list | |
| 31 | +WARNING: lin6.pdf: page 9: shared object 99: in hint table but not computed list | |
| 32 | +WARNING: lin6.pdf: object count mismatch for page 10: hint table = 3; computed = 2 | |
| 33 | +WARNING: lin6.pdf: page 10: shared object 98: in hint table but not computed list | |
| 34 | +WARNING: lin6.pdf: page 10: shared object 99: in hint table but not computed list | |
| 35 | +WARNING: lin6.pdf: object count mismatch for page 11: hint table = 3; computed = 2 | |
| 36 | +WARNING: lin6.pdf: page 11: shared object 98: in hint table but not computed list | |
| 37 | +WARNING: lin6.pdf: page 11: shared object 99: in hint table but not computed list | |
| 38 | +WARNING: lin6.pdf: object count mismatch for page 12: hint table = 3; computed = 2 | |
| 39 | +WARNING: lin6.pdf: page 12: shared object 98: in hint table but not computed list | |
| 40 | +WARNING: lin6.pdf: page 12: shared object 99: in hint table but not computed list | |
| 41 | +WARNING: lin6.pdf: object count mismatch for page 13: hint table = 3; computed = 2 | |
| 42 | +WARNING: lin6.pdf: page 13: shared object 98: in hint table but not computed list | |
| 43 | +WARNING: lin6.pdf: page 13: shared object 99: in hint table but not computed list | |
| 44 | +WARNING: lin6.pdf: object count mismatch for page 14: hint table = 3; computed = 2 | |
| 45 | +WARNING: lin6.pdf: page 14: shared object 98: in hint table but not computed list | |
| 46 | +WARNING: lin6.pdf: page 14: shared object 99: in hint table but not computed list | |
| 47 | +WARNING: lin6.pdf: object count mismatch for page 15: hint table = 3; computed = 2 | |
| 48 | +WARNING: lin6.pdf: page 15: shared object 98: in hint table but not computed list | |
| 49 | +WARNING: lin6.pdf: page 15: shared object 99: in hint table but not computed list | |
| 50 | +WARNING: lin6.pdf: object count mismatch for page 16: hint table = 3; computed = 2 | |
| 51 | +WARNING: lin6.pdf: page 16: shared object 98: in hint table but not computed list | |
| 52 | +WARNING: lin6.pdf: page 16: shared object 99: in hint table but not computed list | |
| 53 | +WARNING: lin6.pdf: object count mismatch for page 17: hint table = 3; computed = 2 | |
| 54 | +WARNING: lin6.pdf: page 17: shared object 98: in hint table but not computed list | |
| 55 | +WARNING: lin6.pdf: page 17: shared object 99: in hint table but not computed list | |
| 56 | +WARNING: lin6.pdf: object count mismatch for page 18: hint table = 3; computed = 2 | |
| 57 | +WARNING: lin6.pdf: page 18: shared object 98: in hint table but not computed list | |
| 58 | +WARNING: lin6.pdf: page 18: shared object 99: in hint table but not computed list | |
| 59 | +WARNING: lin6.pdf: object count mismatch for page 19: hint table = 3; computed = 2 | |
| 60 | +WARNING: lin6.pdf: page 19: shared object 98: in hint table but not computed list | |
| 61 | +WARNING: lin6.pdf: page 19: shared object 99: in hint table but not computed list | |
| 62 | +WARNING: lin6.pdf: object count mismatch for page 20: hint table = 3; computed = 2 | |
| 63 | +WARNING: lin6.pdf: page 20: shared object 98: in hint table but not computed list | |
| 64 | +WARNING: lin6.pdf: page 20: shared object 99: in hint table but not computed list | |
| 65 | +WARNING: lin6.pdf: object count mismatch for page 21: hint table = 3; computed = 2 | |
| 66 | +WARNING: lin6.pdf: page 21: shared object 98: in hint table but not computed list | |
| 67 | +WARNING: lin6.pdf: page 21: shared object 99: in hint table but not computed list | |
| 68 | +WARNING: lin6.pdf: object count mismatch for page 22: hint table = 3; computed = 2 | |
| 69 | +WARNING: lin6.pdf: page 22: shared object 98: in hint table but not computed list | |
| 70 | +WARNING: lin6.pdf: page 22: shared object 99: in hint table but not computed list | |
| 71 | +WARNING: lin6.pdf: object count mismatch for page 23: hint table = 3; computed = 2 | |
| 72 | +WARNING: lin6.pdf: page 23: shared object 98: in hint table but not computed list | |
| 73 | +WARNING: lin6.pdf: page 23: shared object 99: in hint table but not computed list | |
| 74 | +WARNING: lin6.pdf: object count mismatch for page 24: hint table = 3; computed = 2 | |
| 75 | +WARNING: lin6.pdf: page 24: shared object 98: in hint table but not computed list | |
| 76 | +WARNING: lin6.pdf: page 24: shared object 99: in hint table but not computed list | |
| 77 | +WARNING: lin6.pdf: object count mismatch for page 25: hint table = 3; computed = 2 | |
| 78 | +WARNING: lin6.pdf: page 25: shared object 98: in hint table but not computed list | |
| 79 | +WARNING: lin6.pdf: page 25: shared object 99: in hint table but not computed list | |
| 80 | +WARNING: lin6.pdf: object count mismatch for page 26: hint table = 3; computed = 2 | |
| 81 | +WARNING: lin6.pdf: page 26: shared object 98: in hint table but not computed list | |
| 82 | +WARNING: lin6.pdf: page 26: shared object 99: in hint table but not computed list | |
| 83 | +WARNING: lin6.pdf: object count mismatch for page 27: hint table = 3; computed = 2 | |
| 84 | +WARNING: lin6.pdf: page 27: shared object 98: in hint table but not computed list | |
| 85 | +WARNING: lin6.pdf: page 27: shared object 99: in hint table but not computed list | |
| 86 | +WARNING: lin6.pdf: object count mismatch for page 28: hint table = 3; computed = 2 | |
| 87 | +WARNING: lin6.pdf: page 28: shared object 98: in hint table but not computed list | |
| 88 | +WARNING: lin6.pdf: page 28: shared object 99: in hint table but not computed list | |
| 89 | +WARNING: lin6.pdf: object count mismatch for page 29: hint table = 3; computed = 2 | |
| 90 | +WARNING: lin6.pdf: page 29: shared object 98: in hint table but not computed list | |
| 91 | +WARNING: lin6.pdf: page 29: shared object 99: in hint table but not computed list | |
| 92 | 92 | lin6.pdf: linearization data: |
| 93 | 93 | |
| 94 | 94 | file_size: 24824 |
| ... | ... | @@ -590,3 +590,4 @@ first_object: 100 |
| 590 | 590 | first_object_offset: 2897 |
| 591 | 591 | nobjects: 12 |
| 592 | 592 | group_length: 2110 |
| 593 | +qpdf: operation succeeded with warnings | ... | ... |
qpdf/qtest/qpdf/lin7.out
| 1 | -WARNING: end of first page section (/E) mismatch: /E = 1865; computed = 1655..1656 | |
| 2 | -WARNING: page 1: shared object 170: in computed list but not hint table | |
| 3 | -WARNING: page 1: shared object 172: in computed list but not hint table | |
| 4 | -WARNING: page 2: shared object 170: in computed list but not hint table | |
| 5 | -WARNING: page 2: shared object 172: in computed list but not hint table | |
| 6 | -WARNING: page 3: shared object 170: in computed list but not hint table | |
| 7 | -WARNING: page 3: shared object 172: in computed list but not hint table | |
| 8 | -WARNING: page 4: shared object 170: in computed list but not hint table | |
| 9 | -WARNING: page 4: shared object 172: in computed list but not hint table | |
| 10 | -WARNING: page 5: shared object 170: in computed list but not hint table | |
| 11 | -WARNING: page 5: shared object 172: in computed list but not hint table | |
| 12 | -WARNING: page 6: shared object 170: in computed list but not hint table | |
| 13 | -WARNING: page 6: shared object 172: in computed list but not hint table | |
| 14 | -WARNING: page 7: shared object 170: in computed list but not hint table | |
| 15 | -WARNING: page 7: shared object 172: in computed list but not hint table | |
| 16 | -WARNING: page 8: shared object 170: in computed list but not hint table | |
| 17 | -WARNING: page 8: shared object 172: in computed list but not hint table | |
| 18 | -WARNING: page 9: shared object 170: in computed list but not hint table | |
| 19 | -WARNING: page 9: shared object 172: in computed list but not hint table | |
| 20 | -WARNING: page 10: shared object 170: in computed list but not hint table | |
| 21 | -WARNING: page 10: shared object 172: in computed list but not hint table | |
| 22 | -WARNING: page 11: shared object 170: in computed list but not hint table | |
| 23 | -WARNING: page 11: shared object 172: in computed list but not hint table | |
| 24 | -WARNING: page 12: shared object 170: in computed list but not hint table | |
| 25 | -WARNING: page 12: shared object 172: in computed list but not hint table | |
| 26 | -WARNING: page 13: shared object 170: in computed list but not hint table | |
| 27 | -WARNING: page 13: shared object 172: in computed list but not hint table | |
| 28 | -WARNING: page 14: shared object 170: in computed list but not hint table | |
| 29 | -WARNING: page 14: shared object 172: in computed list but not hint table | |
| 30 | -WARNING: page 15: shared object 170: in computed list but not hint table | |
| 31 | -WARNING: page 15: shared object 172: in computed list but not hint table | |
| 32 | -WARNING: page 16: shared object 170: in computed list but not hint table | |
| 33 | -WARNING: page 16: shared object 172: in computed list but not hint table | |
| 34 | -WARNING: page 17: shared object 170: in computed list but not hint table | |
| 35 | -WARNING: page 17: shared object 172: in computed list but not hint table | |
| 36 | -WARNING: page 18: shared object 170: in computed list but not hint table | |
| 37 | -WARNING: page 18: shared object 172: in computed list but not hint table | |
| 38 | -WARNING: page 19: shared object 170: in computed list but not hint table | |
| 39 | -WARNING: page 19: shared object 172: in computed list but not hint table | |
| 40 | -WARNING: page 20: shared object 170: in computed list but not hint table | |
| 41 | -WARNING: page 20: shared object 172: in computed list but not hint table | |
| 42 | -WARNING: page 21: shared object 170: in computed list but not hint table | |
| 43 | -WARNING: page 21: shared object 172: in computed list but not hint table | |
| 44 | -WARNING: page 22: shared object 170: in computed list but not hint table | |
| 45 | -WARNING: page 22: shared object 172: in computed list but not hint table | |
| 46 | -WARNING: page 23: shared object 170: in computed list but not hint table | |
| 47 | -WARNING: page 23: shared object 172: in computed list but not hint table | |
| 48 | -WARNING: page 24: shared object 170: in computed list but not hint table | |
| 49 | -WARNING: page 24: shared object 172: in computed list but not hint table | |
| 50 | -WARNING: page 25: shared object 170: in computed list but not hint table | |
| 51 | -WARNING: page 25: shared object 172: in computed list but not hint table | |
| 52 | -WARNING: page 26: shared object 170: in computed list but not hint table | |
| 53 | -WARNING: page 26: shared object 172: in computed list but not hint table | |
| 54 | -WARNING: page 27: shared object 170: in computed list but not hint table | |
| 55 | -WARNING: page 27: shared object 172: in computed list but not hint table | |
| 56 | -WARNING: page 28: shared object 170: in computed list but not hint table | |
| 57 | -WARNING: page 28: shared object 172: in computed list but not hint table | |
| 58 | -WARNING: page 29: shared object 170: in computed list but not hint table | |
| 59 | -WARNING: page 29: shared object 172: in computed list but not hint table | |
| 1 | +WARNING: lin7.pdf: end of first page section (/E) mismatch: /E = 1865; computed = 1655..1656 | |
| 2 | +WARNING: lin7.pdf: page 1: shared object 170: in computed list but not hint table | |
| 3 | +WARNING: lin7.pdf: page 1: shared object 172: in computed list but not hint table | |
| 4 | +WARNING: lin7.pdf: page 2: shared object 170: in computed list but not hint table | |
| 5 | +WARNING: lin7.pdf: page 2: shared object 172: in computed list but not hint table | |
| 6 | +WARNING: lin7.pdf: page 3: shared object 170: in computed list but not hint table | |
| 7 | +WARNING: lin7.pdf: page 3: shared object 172: in computed list but not hint table | |
| 8 | +WARNING: lin7.pdf: page 4: shared object 170: in computed list but not hint table | |
| 9 | +WARNING: lin7.pdf: page 4: shared object 172: in computed list but not hint table | |
| 10 | +WARNING: lin7.pdf: page 5: shared object 170: in computed list but not hint table | |
| 11 | +WARNING: lin7.pdf: page 5: shared object 172: in computed list but not hint table | |
| 12 | +WARNING: lin7.pdf: page 6: shared object 170: in computed list but not hint table | |
| 13 | +WARNING: lin7.pdf: page 6: shared object 172: in computed list but not hint table | |
| 14 | +WARNING: lin7.pdf: page 7: shared object 170: in computed list but not hint table | |
| 15 | +WARNING: lin7.pdf: page 7: shared object 172: in computed list but not hint table | |
| 16 | +WARNING: lin7.pdf: page 8: shared object 170: in computed list but not hint table | |
| 17 | +WARNING: lin7.pdf: page 8: shared object 172: in computed list but not hint table | |
| 18 | +WARNING: lin7.pdf: page 9: shared object 170: in computed list but not hint table | |
| 19 | +WARNING: lin7.pdf: page 9: shared object 172: in computed list but not hint table | |
| 20 | +WARNING: lin7.pdf: page 10: shared object 170: in computed list but not hint table | |
| 21 | +WARNING: lin7.pdf: page 10: shared object 172: in computed list but not hint table | |
| 22 | +WARNING: lin7.pdf: page 11: shared object 170: in computed list but not hint table | |
| 23 | +WARNING: lin7.pdf: page 11: shared object 172: in computed list but not hint table | |
| 24 | +WARNING: lin7.pdf: page 12: shared object 170: in computed list but not hint table | |
| 25 | +WARNING: lin7.pdf: page 12: shared object 172: in computed list but not hint table | |
| 26 | +WARNING: lin7.pdf: page 13: shared object 170: in computed list but not hint table | |
| 27 | +WARNING: lin7.pdf: page 13: shared object 172: in computed list but not hint table | |
| 28 | +WARNING: lin7.pdf: page 14: shared object 170: in computed list but not hint table | |
| 29 | +WARNING: lin7.pdf: page 14: shared object 172: in computed list but not hint table | |
| 30 | +WARNING: lin7.pdf: page 15: shared object 170: in computed list but not hint table | |
| 31 | +WARNING: lin7.pdf: page 15: shared object 172: in computed list but not hint table | |
| 32 | +WARNING: lin7.pdf: page 16: shared object 170: in computed list but not hint table | |
| 33 | +WARNING: lin7.pdf: page 16: shared object 172: in computed list but not hint table | |
| 34 | +WARNING: lin7.pdf: page 17: shared object 170: in computed list but not hint table | |
| 35 | +WARNING: lin7.pdf: page 17: shared object 172: in computed list but not hint table | |
| 36 | +WARNING: lin7.pdf: page 18: shared object 170: in computed list but not hint table | |
| 37 | +WARNING: lin7.pdf: page 18: shared object 172: in computed list but not hint table | |
| 38 | +WARNING: lin7.pdf: page 19: shared object 170: in computed list but not hint table | |
| 39 | +WARNING: lin7.pdf: page 19: shared object 172: in computed list but not hint table | |
| 40 | +WARNING: lin7.pdf: page 20: shared object 170: in computed list but not hint table | |
| 41 | +WARNING: lin7.pdf: page 20: shared object 172: in computed list but not hint table | |
| 42 | +WARNING: lin7.pdf: page 21: shared object 170: in computed list but not hint table | |
| 43 | +WARNING: lin7.pdf: page 21: shared object 172: in computed list but not hint table | |
| 44 | +WARNING: lin7.pdf: page 22: shared object 170: in computed list but not hint table | |
| 45 | +WARNING: lin7.pdf: page 22: shared object 172: in computed list but not hint table | |
| 46 | +WARNING: lin7.pdf: page 23: shared object 170: in computed list but not hint table | |
| 47 | +WARNING: lin7.pdf: page 23: shared object 172: in computed list but not hint table | |
| 48 | +WARNING: lin7.pdf: page 24: shared object 170: in computed list but not hint table | |
| 49 | +WARNING: lin7.pdf: page 24: shared object 172: in computed list but not hint table | |
| 50 | +WARNING: lin7.pdf: page 25: shared object 170: in computed list but not hint table | |
| 51 | +WARNING: lin7.pdf: page 25: shared object 172: in computed list but not hint table | |
| 52 | +WARNING: lin7.pdf: page 26: shared object 170: in computed list but not hint table | |
| 53 | +WARNING: lin7.pdf: page 26: shared object 172: in computed list but not hint table | |
| 54 | +WARNING: lin7.pdf: page 27: shared object 170: in computed list but not hint table | |
| 55 | +WARNING: lin7.pdf: page 27: shared object 172: in computed list but not hint table | |
| 56 | +WARNING: lin7.pdf: page 28: shared object 170: in computed list but not hint table | |
| 57 | +WARNING: lin7.pdf: page 28: shared object 172: in computed list but not hint table | |
| 58 | +WARNING: lin7.pdf: page 29: shared object 170: in computed list but not hint table | |
| 59 | +WARNING: lin7.pdf: page 29: shared object 172: in computed list but not hint table | |
| 60 | 60 | lin7.pdf: linearization data: |
| 61 | 61 | |
| 62 | 62 | file_size: 27408 |
| ... | ... | @@ -290,3 +290,4 @@ first_object: 88 |
| 290 | 290 | first_object_offset: 12129 |
| 291 | 291 | nobjects: 12 |
| 292 | 292 | group_length: 2030 |
| 293 | +qpdf: operation succeeded with warnings | ... | ... |
qpdf/qtest/qpdf/lin8.out
| 1 | -WARNING: end of first page section (/E) mismatch: /E = 2656; computed = 1768..1770 | |
| 2 | -WARNING: object count mismatch for page 0: hint table = 7; computed = 4 | |
| 3 | -WARNING: page 0 has shared identifier entries | |
| 4 | -WARNING: page 0: shared object 105: in hint table but not computed list | |
| 5 | -WARNING: object count mismatch for page 1: hint table = 3; computed = 2 | |
| 6 | -WARNING: page 1: shared object 110: in hint table but not computed list | |
| 7 | -WARNING: page 1: shared object 111: in hint table but not computed list | |
| 8 | -WARNING: object count mismatch for page 2: hint table = 3; computed = 2 | |
| 9 | -WARNING: page 2: shared object 110: in hint table but not computed list | |
| 10 | -WARNING: page 2: shared object 111: in hint table but not computed list | |
| 11 | -WARNING: object count mismatch for page 3: hint table = 3; computed = 2 | |
| 12 | -WARNING: page 3: shared object 110: in hint table but not computed list | |
| 13 | -WARNING: page 3: shared object 111: in hint table but not computed list | |
| 14 | -WARNING: object count mismatch for page 4: hint table = 3; computed = 2 | |
| 15 | -WARNING: page 4: shared object 110: in hint table but not computed list | |
| 16 | -WARNING: page 4: shared object 111: in hint table but not computed list | |
| 17 | -WARNING: object count mismatch for page 5: hint table = 3; computed = 2 | |
| 18 | -WARNING: page 5: shared object 110: in hint table but not computed list | |
| 19 | -WARNING: page 5: shared object 111: in hint table but not computed list | |
| 20 | -WARNING: object count mismatch for page 6: hint table = 3; computed = 2 | |
| 21 | -WARNING: page 6: shared object 110: in hint table but not computed list | |
| 22 | -WARNING: page 6: shared object 111: in hint table but not computed list | |
| 23 | -WARNING: object count mismatch for page 7: hint table = 3; computed = 2 | |
| 24 | -WARNING: page 7: shared object 110: in hint table but not computed list | |
| 25 | -WARNING: page 7: shared object 111: in hint table but not computed list | |
| 26 | -WARNING: object count mismatch for page 8: hint table = 3; computed = 2 | |
| 27 | -WARNING: page 8: shared object 110: in hint table but not computed list | |
| 28 | -WARNING: page 8: shared object 111: in hint table but not computed list | |
| 29 | -WARNING: object count mismatch for page 9: hint table = 3; computed = 2 | |
| 30 | -WARNING: page 9: shared object 110: in hint table but not computed list | |
| 31 | -WARNING: page 9: shared object 111: in hint table but not computed list | |
| 32 | -WARNING: object count mismatch for page 10: hint table = 3; computed = 2 | |
| 33 | -WARNING: page 10: shared object 110: in hint table but not computed list | |
| 34 | -WARNING: page 10: shared object 111: in hint table but not computed list | |
| 35 | -WARNING: object count mismatch for page 11: hint table = 3; computed = 2 | |
| 36 | -WARNING: page 11: shared object 110: in hint table but not computed list | |
| 37 | -WARNING: page 11: shared object 111: in hint table but not computed list | |
| 38 | -WARNING: object count mismatch for page 12: hint table = 3; computed = 2 | |
| 39 | -WARNING: page 12: shared object 110: in hint table but not computed list | |
| 40 | -WARNING: page 12: shared object 111: in hint table but not computed list | |
| 41 | -WARNING: object count mismatch for page 13: hint table = 3; computed = 2 | |
| 42 | -WARNING: page 13: shared object 110: in hint table but not computed list | |
| 43 | -WARNING: page 13: shared object 111: in hint table but not computed list | |
| 44 | -WARNING: object count mismatch for page 14: hint table = 3; computed = 2 | |
| 45 | -WARNING: page 14: shared object 110: in hint table but not computed list | |
| 46 | -WARNING: page 14: shared object 111: in hint table but not computed list | |
| 47 | -WARNING: object count mismatch for page 15: hint table = 3; computed = 2 | |
| 48 | -WARNING: page 15: shared object 110: in hint table but not computed list | |
| 49 | -WARNING: page 15: shared object 111: in hint table but not computed list | |
| 50 | -WARNING: object count mismatch for page 16: hint table = 3; computed = 2 | |
| 51 | -WARNING: page 16: shared object 110: in hint table but not computed list | |
| 52 | -WARNING: page 16: shared object 111: in hint table but not computed list | |
| 53 | -WARNING: object count mismatch for page 17: hint table = 3; computed = 2 | |
| 54 | -WARNING: page 17: shared object 110: in hint table but not computed list | |
| 55 | -WARNING: page 17: shared object 111: in hint table but not computed list | |
| 56 | -WARNING: object count mismatch for page 18: hint table = 3; computed = 2 | |
| 57 | -WARNING: page 18: shared object 110: in hint table but not computed list | |
| 58 | -WARNING: page 18: shared object 111: in hint table but not computed list | |
| 59 | -WARNING: object count mismatch for page 19: hint table = 3; computed = 2 | |
| 60 | -WARNING: page 19: shared object 110: in hint table but not computed list | |
| 61 | -WARNING: page 19: shared object 111: in hint table but not computed list | |
| 62 | -WARNING: object count mismatch for page 20: hint table = 3; computed = 2 | |
| 63 | -WARNING: page 20: shared object 110: in hint table but not computed list | |
| 64 | -WARNING: page 20: shared object 111: in hint table but not computed list | |
| 65 | -WARNING: object count mismatch for page 21: hint table = 3; computed = 2 | |
| 66 | -WARNING: page 21: shared object 110: in hint table but not computed list | |
| 67 | -WARNING: page 21: shared object 111: in hint table but not computed list | |
| 68 | -WARNING: object count mismatch for page 22: hint table = 3; computed = 2 | |
| 69 | -WARNING: page 22: shared object 110: in hint table but not computed list | |
| 70 | -WARNING: page 22: shared object 111: in hint table but not computed list | |
| 71 | -WARNING: object count mismatch for page 23: hint table = 3; computed = 2 | |
| 72 | -WARNING: page 23: shared object 110: in hint table but not computed list | |
| 73 | -WARNING: page 23: shared object 111: in hint table but not computed list | |
| 74 | -WARNING: object count mismatch for page 24: hint table = 3; computed = 2 | |
| 75 | -WARNING: page 24: shared object 110: in hint table but not computed list | |
| 76 | -WARNING: page 24: shared object 111: in hint table but not computed list | |
| 77 | -WARNING: object count mismatch for page 25: hint table = 3; computed = 2 | |
| 78 | -WARNING: page 25: shared object 110: in hint table but not computed list | |
| 79 | -WARNING: page 25: shared object 111: in hint table but not computed list | |
| 80 | -WARNING: object count mismatch for page 26: hint table = 3; computed = 2 | |
| 81 | -WARNING: page 26: shared object 110: in hint table but not computed list | |
| 82 | -WARNING: page 26: shared object 111: in hint table but not computed list | |
| 83 | -WARNING: object count mismatch for page 27: hint table = 3; computed = 2 | |
| 84 | -WARNING: page 27: shared object 110: in hint table but not computed list | |
| 85 | -WARNING: page 27: shared object 111: in hint table but not computed list | |
| 86 | -WARNING: object count mismatch for page 28: hint table = 3; computed = 2 | |
| 87 | -WARNING: page 28: shared object 110: in hint table but not computed list | |
| 88 | -WARNING: page 28: shared object 111: in hint table but not computed list | |
| 89 | -WARNING: object count mismatch for page 29: hint table = 3; computed = 2 | |
| 90 | -WARNING: page 29: shared object 110: in hint table but not computed list | |
| 91 | -WARNING: page 29: shared object 111: in hint table but not computed list | |
| 1 | +WARNING: lin8.pdf: end of first page section (/E) mismatch: /E = 2656; computed = 1768..1770 | |
| 2 | +WARNING: lin8.pdf: object count mismatch for page 0: hint table = 7; computed = 4 | |
| 3 | +WARNING: lin8.pdf: page 0 has shared identifier entries | |
| 4 | +WARNING: lin8.pdf: page 0: shared object 105: in hint table but not computed list | |
| 5 | +WARNING: lin8.pdf: object count mismatch for page 1: hint table = 3; computed = 2 | |
| 6 | +WARNING: lin8.pdf: page 1: shared object 110: in hint table but not computed list | |
| 7 | +WARNING: lin8.pdf: page 1: shared object 111: in hint table but not computed list | |
| 8 | +WARNING: lin8.pdf: object count mismatch for page 2: hint table = 3; computed = 2 | |
| 9 | +WARNING: lin8.pdf: page 2: shared object 110: in hint table but not computed list | |
| 10 | +WARNING: lin8.pdf: page 2: shared object 111: in hint table but not computed list | |
| 11 | +WARNING: lin8.pdf: object count mismatch for page 3: hint table = 3; computed = 2 | |
| 12 | +WARNING: lin8.pdf: page 3: shared object 110: in hint table but not computed list | |
| 13 | +WARNING: lin8.pdf: page 3: shared object 111: in hint table but not computed list | |
| 14 | +WARNING: lin8.pdf: object count mismatch for page 4: hint table = 3; computed = 2 | |
| 15 | +WARNING: lin8.pdf: page 4: shared object 110: in hint table but not computed list | |
| 16 | +WARNING: lin8.pdf: page 4: shared object 111: in hint table but not computed list | |
| 17 | +WARNING: lin8.pdf: object count mismatch for page 5: hint table = 3; computed = 2 | |
| 18 | +WARNING: lin8.pdf: page 5: shared object 110: in hint table but not computed list | |
| 19 | +WARNING: lin8.pdf: page 5: shared object 111: in hint table but not computed list | |
| 20 | +WARNING: lin8.pdf: object count mismatch for page 6: hint table = 3; computed = 2 | |
| 21 | +WARNING: lin8.pdf: page 6: shared object 110: in hint table but not computed list | |
| 22 | +WARNING: lin8.pdf: page 6: shared object 111: in hint table but not computed list | |
| 23 | +WARNING: lin8.pdf: object count mismatch for page 7: hint table = 3; computed = 2 | |
| 24 | +WARNING: lin8.pdf: page 7: shared object 110: in hint table but not computed list | |
| 25 | +WARNING: lin8.pdf: page 7: shared object 111: in hint table but not computed list | |
| 26 | +WARNING: lin8.pdf: object count mismatch for page 8: hint table = 3; computed = 2 | |
| 27 | +WARNING: lin8.pdf: page 8: shared object 110: in hint table but not computed list | |
| 28 | +WARNING: lin8.pdf: page 8: shared object 111: in hint table but not computed list | |
| 29 | +WARNING: lin8.pdf: object count mismatch for page 9: hint table = 3; computed = 2 | |
| 30 | +WARNING: lin8.pdf: page 9: shared object 110: in hint table but not computed list | |
| 31 | +WARNING: lin8.pdf: page 9: shared object 111: in hint table but not computed list | |
| 32 | +WARNING: lin8.pdf: object count mismatch for page 10: hint table = 3; computed = 2 | |
| 33 | +WARNING: lin8.pdf: page 10: shared object 110: in hint table but not computed list | |
| 34 | +WARNING: lin8.pdf: page 10: shared object 111: in hint table but not computed list | |
| 35 | +WARNING: lin8.pdf: object count mismatch for page 11: hint table = 3; computed = 2 | |
| 36 | +WARNING: lin8.pdf: page 11: shared object 110: in hint table but not computed list | |
| 37 | +WARNING: lin8.pdf: page 11: shared object 111: in hint table but not computed list | |
| 38 | +WARNING: lin8.pdf: object count mismatch for page 12: hint table = 3; computed = 2 | |
| 39 | +WARNING: lin8.pdf: page 12: shared object 110: in hint table but not computed list | |
| 40 | +WARNING: lin8.pdf: page 12: shared object 111: in hint table but not computed list | |
| 41 | +WARNING: lin8.pdf: object count mismatch for page 13: hint table = 3; computed = 2 | |
| 42 | +WARNING: lin8.pdf: page 13: shared object 110: in hint table but not computed list | |
| 43 | +WARNING: lin8.pdf: page 13: shared object 111: in hint table but not computed list | |
| 44 | +WARNING: lin8.pdf: object count mismatch for page 14: hint table = 3; computed = 2 | |
| 45 | +WARNING: lin8.pdf: page 14: shared object 110: in hint table but not computed list | |
| 46 | +WARNING: lin8.pdf: page 14: shared object 111: in hint table but not computed list | |
| 47 | +WARNING: lin8.pdf: object count mismatch for page 15: hint table = 3; computed = 2 | |
| 48 | +WARNING: lin8.pdf: page 15: shared object 110: in hint table but not computed list | |
| 49 | +WARNING: lin8.pdf: page 15: shared object 111: in hint table but not computed list | |
| 50 | +WARNING: lin8.pdf: object count mismatch for page 16: hint table = 3; computed = 2 | |
| 51 | +WARNING: lin8.pdf: page 16: shared object 110: in hint table but not computed list | |
| 52 | +WARNING: lin8.pdf: page 16: shared object 111: in hint table but not computed list | |
| 53 | +WARNING: lin8.pdf: object count mismatch for page 17: hint table = 3; computed = 2 | |
| 54 | +WARNING: lin8.pdf: page 17: shared object 110: in hint table but not computed list | |
| 55 | +WARNING: lin8.pdf: page 17: shared object 111: in hint table but not computed list | |
| 56 | +WARNING: lin8.pdf: object count mismatch for page 18: hint table = 3; computed = 2 | |
| 57 | +WARNING: lin8.pdf: page 18: shared object 110: in hint table but not computed list | |
| 58 | +WARNING: lin8.pdf: page 18: shared object 111: in hint table but not computed list | |
| 59 | +WARNING: lin8.pdf: object count mismatch for page 19: hint table = 3; computed = 2 | |
| 60 | +WARNING: lin8.pdf: page 19: shared object 110: in hint table but not computed list | |
| 61 | +WARNING: lin8.pdf: page 19: shared object 111: in hint table but not computed list | |
| 62 | +WARNING: lin8.pdf: object count mismatch for page 20: hint table = 3; computed = 2 | |
| 63 | +WARNING: lin8.pdf: page 20: shared object 110: in hint table but not computed list | |
| 64 | +WARNING: lin8.pdf: page 20: shared object 111: in hint table but not computed list | |
| 65 | +WARNING: lin8.pdf: object count mismatch for page 21: hint table = 3; computed = 2 | |
| 66 | +WARNING: lin8.pdf: page 21: shared object 110: in hint table but not computed list | |
| 67 | +WARNING: lin8.pdf: page 21: shared object 111: in hint table but not computed list | |
| 68 | +WARNING: lin8.pdf: object count mismatch for page 22: hint table = 3; computed = 2 | |
| 69 | +WARNING: lin8.pdf: page 22: shared object 110: in hint table but not computed list | |
| 70 | +WARNING: lin8.pdf: page 22: shared object 111: in hint table but not computed list | |
| 71 | +WARNING: lin8.pdf: object count mismatch for page 23: hint table = 3; computed = 2 | |
| 72 | +WARNING: lin8.pdf: page 23: shared object 110: in hint table but not computed list | |
| 73 | +WARNING: lin8.pdf: page 23: shared object 111: in hint table but not computed list | |
| 74 | +WARNING: lin8.pdf: object count mismatch for page 24: hint table = 3; computed = 2 | |
| 75 | +WARNING: lin8.pdf: page 24: shared object 110: in hint table but not computed list | |
| 76 | +WARNING: lin8.pdf: page 24: shared object 111: in hint table but not computed list | |
| 77 | +WARNING: lin8.pdf: object count mismatch for page 25: hint table = 3; computed = 2 | |
| 78 | +WARNING: lin8.pdf: page 25: shared object 110: in hint table but not computed list | |
| 79 | +WARNING: lin8.pdf: page 25: shared object 111: in hint table but not computed list | |
| 80 | +WARNING: lin8.pdf: object count mismatch for page 26: hint table = 3; computed = 2 | |
| 81 | +WARNING: lin8.pdf: page 26: shared object 110: in hint table but not computed list | |
| 82 | +WARNING: lin8.pdf: page 26: shared object 111: in hint table but not computed list | |
| 83 | +WARNING: lin8.pdf: object count mismatch for page 27: hint table = 3; computed = 2 | |
| 84 | +WARNING: lin8.pdf: page 27: shared object 110: in hint table but not computed list | |
| 85 | +WARNING: lin8.pdf: page 27: shared object 111: in hint table but not computed list | |
| 86 | +WARNING: lin8.pdf: object count mismatch for page 28: hint table = 3; computed = 2 | |
| 87 | +WARNING: lin8.pdf: page 28: shared object 110: in hint table but not computed list | |
| 88 | +WARNING: lin8.pdf: page 28: shared object 111: in hint table but not computed list | |
| 89 | +WARNING: lin8.pdf: object count mismatch for page 29: hint table = 3; computed = 2 | |
| 90 | +WARNING: lin8.pdf: page 29: shared object 110: in hint table but not computed list | |
| 91 | +WARNING: lin8.pdf: page 29: shared object 111: in hint table but not computed list | |
| 92 | 92 | lin8.pdf: linearization data: |
| 93 | 93 | |
| 94 | 94 | file_size: 24875 |
| ... | ... | @@ -566,3 +566,4 @@ first_object: 89 |
| 566 | 566 | first_object_offset: 20067 |
| 567 | 567 | nobjects: 12 |
| 568 | 568 | group_length: 2069 |
| 569 | +qpdf: operation succeeded with warnings | ... | ... |
qpdf/qtest/qpdf/lin9.out
| 1 | -WARNING: page 0 has shared identifier entries | |
| 2 | -WARNING: page 0: shared object 19: in hint table but not computed list | |
| 1 | +WARNING: lin9.pdf: page 0 has shared identifier entries | |
| 2 | +WARNING: lin9.pdf: page 0: shared object 19: in hint table but not computed list | |
| 3 | 3 | lin9.pdf: linearization data: |
| 4 | 4 | |
| 5 | 5 | file_size: 3316 |
| ... | ... | @@ -102,3 +102,4 @@ Shared Object 5: |
| 102 | 102 | group length: 67 |
| 103 | 103 | Shared Object 6: |
| 104 | 104 | group length: 117 |
| 105 | +qpdf: operation succeeded with warnings | ... | ... |
qpdf/qtest/qpdf/linearization-bounds-1.out
| ... | ... | @@ -5,5 +5,5 @@ File is linearized |
| 5 | 5 | WARNING: linearization-bounds-1.pdf (linearization hint stream: object 62 0, offset 12302): expected endstream |
| 6 | 6 | WARNING: linearization-bounds-1.pdf (linearization hint stream: object 62 0, offset 1183): attempting to recover stream length |
| 7 | 7 | WARNING: linearization-bounds-1.pdf (linearization hint stream: object 62 0, offset 1183): recovered stream length: 106 |
| 8 | -WARNING: error encountered while checking linearization data: linearization-bounds-1.pdf (linearization hint table, offset 1183): /S (shared object) offset is out of bounds | |
| 8 | +WARNING: linearization-bounds-1.pdf: error encountered while checking linearization data: linearization-bounds-1.pdf (linearization hint table, offset 1183): /S (shared object) offset is out of bounds | |
| 9 | 9 | qpdf: operation succeeded with warnings | ... | ... |
qpdf/qtest/qpdf/linearization-bounds-2.out
| ... | ... | @@ -5,5 +5,5 @@ File is linearized |
| 5 | 5 | WARNING: linearization-bounds-2.pdf (linearization hint stream: object 62 0, offset 1282): expected endstream |
| 6 | 6 | WARNING: linearization-bounds-2.pdf (linearization hint stream: object 62 0, offset 1183): attempting to recover stream length |
| 7 | 7 | WARNING: linearization-bounds-2.pdf (linearization hint stream: object 62 0, offset 1183): recovered stream length: 106 |
| 8 | -WARNING: error encountered while checking linearization data: linearization-bounds-2.pdf (linearization hint table, offset 1183): /S (shared object) offset is out of bounds | |
| 8 | +WARNING: linearization-bounds-2.pdf: error encountered while checking linearization data: linearization-bounds-2.pdf (linearization hint table, offset 1183): /S (shared object) offset is out of bounds | |
| 9 | 9 | qpdf: operation succeeded with warnings | ... | ... |
qpdf/qtest/qpdf/linearization-large-vector-alloc.out
| ... | ... | @@ -5,5 +5,5 @@ File is linearized |
| 5 | 5 | WARNING: linearization-large-vector-alloc.pdf (linearization hint stream: object 62 0, offset 1282): expected endstream |
| 6 | 6 | WARNING: linearization-large-vector-alloc.pdf (linearization hint stream: object 62 0, offset 1183): attempting to recover stream length |
| 7 | 7 | WARNING: linearization-large-vector-alloc.pdf (linearization hint stream: object 62 0, offset 1183): recovered stream length: 106 |
| 8 | -WARNING: error encountered while checking linearization data: overflow reading bit stream: wanted = 12556; available = 968 | |
| 8 | +WARNING: linearization-large-vector-alloc.pdf: error encountered while checking linearization data: overflow reading bit stream: wanted = 12556; available = 968 | |
| 9 | 9 | qpdf: operation succeeded with warnings | ... | ... |