• They have to be ot_* rather than qpdf_ot_* for compatibility.
    
    * Different enumerated types are not assignment-compatible in C++, at
      least with strict compiler settings
    * While you can do `constexpr ot_xyz = ::qpdf_ot_xyz` in QPDFObject.hh to
      make QPDFObject::ot_xyz work, QPDFObject::object_type_e::ot_xyz will
      only work if the enumerated type names are the same.
    Jay Berkenbilt authored
     
    Browse Dir »











  • Don't assume endobj is at the beginning of the line. This means we are
    looking at tokens for every line, but the odds of n n obj appearing in
    the middle of the object are likely much lower than endobj not being
    at the beginning of the line or missing entirely. This will probably
    have a negative impact on recovery time for very large files.
    Hopefully it will be worth it.
    Jay Berkenbilt authored
     
    Browse Dir »



  • The /Subtype entry that specifies the mime type of an embedded file is
    inside the embedded file stream dictionary directly, not it in the
    parameter dictionary.
    
    See Table 45 and 46 in the PDF 1.7 specification:
    https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf#page=112
    Fredrik Fornwall authored
     
    Browse Dir »