Commit a5367003c3eaf7f21d369c1c6d11338564cf04f2

Authored by Jay Berkenbilt
1 parent 2118eeca

TODO: add analytics ideas

Showing 1 changed file with 20 additions and 1 deletions
@@ -58,7 +58,6 @@ C++-11 @@ -58,7 +58,6 @@ C++-11
58 definitely break binary compatibility as the PointerHolder<Members> 58 definitely break binary compatibility as the PointerHolder<Members>
59 pattern is part of the ABI for almost every class. 59 pattern is part of the ABI for almost every class.
60 60
61 -  
62 Page splitting/merging 61 Page splitting/merging
63 ====================== 62 ======================
64 63
@@ -208,6 +207,26 @@ Future ideas: @@ -208,6 +207,26 @@ Future ideas:
208 Also, it turns out that PointerHolder is more performant than 207 Also, it turns out that PointerHolder is more performant than
209 std::shared_ptr. 208 std::shared_ptr.
210 209
  210 +Analytics
  211 +=========
  212 +
  213 +Consider features that make it easier to detect certain patterns in
  214 +PDF files. The information below could be computed using an external
  215 +program that reads the existing json, but if it's useful enough, we
  216 +could add it directly to the json output.
  217 +
  218 + * Add to "pages" in the json:
  219 + * "inheritsresources": bool; whether there are any inherited
  220 + attributes from ancestor page tree nodes
  221 + * "sharedresources": a list of indirect objects that are
  222 + "/Resources" dictionaries or "XObject" resource dictionary subkeys
  223 + of either the page itself or of any form XObject referenced by the
  224 + page.
  225 +
  226 + * Add to "objectinfo" in json: "directpagerefcount": the number of
  227 + pages that directly reference this object (i.e., you can find an
  228 + indirect reference to the object in the page dictionary without
  229 + traversing over any indirect objects)
211 230
212 General 231 General
213 ======= 232 =======