Multiple content streams in JSON conversion
This commit is contained in:
parent
cbce71cfd1
commit
b09235e28b
|
@ -4443,11 +4443,6 @@ let go () =
|
||||||
write_pdf false (Cpdf.append_page_content s before args.fast range pdf)
|
write_pdf false (Cpdf.append_page_content s before args.fast range pdf)
|
||||||
| Some OutputJSON ->
|
| Some OutputJSON ->
|
||||||
let pdf = get_single_pdf args.op false in
|
let pdf = get_single_pdf args.op false in
|
||||||
Pdf.iter_stream
|
|
||||||
(function stream ->
|
|
||||||
try Pdfcodec.decode_pdfstream_until_unknown pdf stream with
|
|
||||||
e -> Printf.eprintf "Decode failure: %s. Carrying on...\n" (Printexc.to_string e); ())
|
|
||||||
pdf;
|
|
||||||
write_json args.out pdf
|
write_json args.out pdf
|
||||||
|
|
||||||
let parse_argv () =
|
let parse_argv () =
|
||||||
|
|
|
@ -11,7 +11,12 @@ let rec json_of_object fcs = function
|
||||||
| P.Name n -> J.String n
|
| P.Name n -> J.String n
|
||||||
| P.Array objs -> J.Array (List.map (json_of_object fcs) objs)
|
| P.Array objs -> J.Array (List.map (json_of_object fcs) objs)
|
||||||
| P.Dictionary elts ->
|
| P.Dictionary elts ->
|
||||||
List.iter (function ("/Contents", P.Indirect i) -> fcs i | _ -> ()) elts;
|
List.iter
|
||||||
|
(function
|
||||||
|
("/Contents", P.Indirect i) -> fcs i
|
||||||
|
| ("/Contents", P.Array elts) -> List.iter (function P.Indirect i -> fcs i | _ -> ()) elts
|
||||||
|
| _ -> ())
|
||||||
|
elts;
|
||||||
J.Object (List.map (fun (k, v) -> (k, json_of_object fcs v)) elts)
|
J.Object (List.map (fun (k, v) -> (k, json_of_object fcs v)) elts)
|
||||||
| P.Stream {contents = (Pdf.Dictionary dict, stream)} as thestream ->
|
| P.Stream {contents = (Pdf.Dictionary dict, stream)} as thestream ->
|
||||||
Pdf.getstream thestream;
|
Pdf.getstream thestream;
|
||||||
|
@ -130,6 +135,10 @@ let json_of_pdf parse_content pdf =
|
||||||
pdf;
|
pdf;
|
||||||
trailerdict::!ps
|
trailerdict::!ps
|
||||||
in
|
in
|
||||||
|
List.iter (Printf.printf "Found content stream %i\n") !content_streams;
|
||||||
|
List.iter
|
||||||
|
(fun n -> try Pdfcodec.decode_pdfstream_until_unknown pdf (Pdf.lookup_obj pdf n) with _ -> ())
|
||||||
|
!content_streams;
|
||||||
let pairs_parsed =
|
let pairs_parsed =
|
||||||
if not parse_content then pairs else
|
if not parse_content then pairs else
|
||||||
List.map
|
List.map
|
||||||
|
|
Loading…
Reference in New Issue