mirror of
https://github.com/johnwhitington/cpdf-source.git
synced 2025-06-05 22:09:39 +02:00
Rework 01_005
This commit is contained in:
22
cpdfua.ml
22
cpdfua.ml
@@ -1,8 +1,7 @@
|
|||||||
open Pdfutil
|
open Pdfutil
|
||||||
open Cpdferror
|
open Cpdferror
|
||||||
|
|
||||||
(* Implements all Matterhorn checks except for those which require looking
|
(* Implements most Matterhorn checks except for:
|
||||||
deep inside font files. Implemented except:
|
|
||||||
|
|
||||||
Partially implemented:
|
Partially implemented:
|
||||||
31-009 31-027 Can require looking inside font files
|
31-009 31-027 Can require looking inside font files
|
||||||
@@ -14,7 +13,8 @@ open Cpdferror
|
|||||||
files without it.)
|
files without it.)
|
||||||
|
|
||||||
Unimplemented:
|
Unimplemented:
|
||||||
31-007 31-008 31-011 31-012 31-013 31-014 31-015 31-016 31-018 31-030 Fonts *)
|
31-007 31-008 31-011 31-012 31-013 31-014 31-015 31-016 31-018 31-030
|
||||||
|
Require looking inside font files *)
|
||||||
|
|
||||||
type subformat =
|
type subformat =
|
||||||
| PDFUA1
|
| PDFUA1
|
||||||
@@ -209,11 +209,19 @@ let matterhorn_01_004 _ _ pdf =
|
|||||||
iter (fun ops -> content_in_artifact false false ops) (all_ops pdf)
|
iter (fun ops -> content_in_artifact false false ops) (all_ops pdf)
|
||||||
|
|
||||||
(* Content is neither marked as Artifact nor tagged as real content. *)
|
(* Content is neither marked as Artifact nor tagged as real content. *)
|
||||||
|
|
||||||
|
(* Which operations are real? *)
|
||||||
|
let op_is_real = function
|
||||||
|
| Pdfops.( Op_m _ | Op_l _ | Op_c _ | Op_v _ | Op_y _ | Op_h | Op_re _ | Op_S | Op_s | Op_f | Op_F | Op_f'
|
||||||
|
| Op_B | Op_B' | Op_b | Op_b' | Op_n | Op_W | Op_W' | Op_BT | Op_ET | Op_Tj _ | Op_TJ _ | Op_' _
|
||||||
|
| Op_'' _ | Op_sh _ | InlineImage _ | Op_Do _) -> true
|
||||||
|
| _ -> false
|
||||||
|
|
||||||
|
(* Look at a list of ops and return operators neither marked as neither artifect nor content *)
|
||||||
|
let naked_ops ops = []
|
||||||
|
|
||||||
let matterhorn_01_005 _ _ pdf =
|
let matterhorn_01_005 _ _ pdf =
|
||||||
let untagged_content ops =
|
iter (fun ops -> if List.exists op_is_real (naked_ops ops) then merror ()) (all_ops pdf)
|
||||||
if Cpdftype.add_artifacts ops <> ops then merror ()
|
|
||||||
in
|
|
||||||
iter (fun ops -> untagged_content ops) (all_ops pdf)
|
|
||||||
|
|
||||||
(* Suspects entry has a value of true. *)
|
(* Suspects entry has a value of true. *)
|
||||||
let matterhorn_01_007 _ _ pdf =
|
let matterhorn_01_007 _ _ pdf =
|
||||||
|
Reference in New Issue
Block a user