From 08c19e5b2ec85f17563275a40148f2b62e613be3 Mon Sep 17 00:00:00 2001 From: John Whitington Date: Thu, 31 Aug 2023 14:52:24 +0100 Subject: [PATCH] Expose into cpdflib --- cpdfcommand.ml | 4 ++-- cpdfcomposition.ml | 3 +++ cpdfcomposition.mli | 2 ++ cpdfmanual.pdf | Bin 393517 -> 393636 bytes cpdfmanual.tex | 2 +- cpdfmetadata.mli | 5 +++++ 6 files changed, 13 insertions(+), 3 deletions(-) diff --git a/cpdfcommand.ml b/cpdfcommand.ml index e37af8c..ba0a4e1 100644 --- a/cpdfcommand.ml +++ b/cpdfcommand.ml @@ -2,8 +2,8 @@ let demo = false let noncomp = false let major_version = 2 -let minor_version = 6 -let version_date = "(24th July 2023)" +let minor_version = 7 +let version_date = "(devel, 21st August 2023)" open Pdfutil open Pdfio diff --git a/cpdfcomposition.ml b/cpdfcomposition.ml index 77859ea..7f1235d 100644 --- a/cpdfcomposition.ml +++ b/cpdfcomposition.ml @@ -137,6 +137,9 @@ let show_composition_json filesize pdf = `Tuple [`String "XRef Table"; `Int xref_table; `Float (perc xref_table)]; `Tuple [`String "Unclassified"; `Int (filesize - r); `Float (perc (filesize - r))]] +let show_composition_json_blob filesize pdf = + Pdfio.bytes_of_string (Cpdfyojson.Safe.pretty_to_string (show_composition_json filesize pdf)) + let show_composition filesize json pdf = let module J = Cpdfyojson.Safe in let j = show_composition_json filesize pdf in diff --git a/cpdfcomposition.mli b/cpdfcomposition.mli index c1907ff..4dcd6c8 100644 --- a/cpdfcomposition.mli +++ b/cpdfcomposition.mli @@ -3,3 +3,5 @@ (** [show_composition filesize json pdf] prints the composition of a document to Standard Output. *) val show_composition : int -> bool -> Pdf.t -> unit + +val show_composition_json_blob : int -> Pdf.t -> Pdfio.bytes diff --git a/cpdfmanual.pdf b/cpdfmanual.pdf index c319a6d25c743a42c83962a6858a0c340b9cc604..53c62141eb269f4a00d779beeb27b8e8f2b5f89d 100644 GIT binary patch delta 14508 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 delta 14351 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]! \vspace{1.5mm} \small\noindent\verb!cpdf -pages in.pdf! diff --git a/cpdfmetadata.mli b/cpdfmetadata.mli index 8084a30..0033c75 100644 --- a/cpdfmetadata.mli +++ b/cpdfmetadata.mli @@ -79,3 +79,8 @@ val set_metadata_date : Pdf.t -> string -> Pdf.t (** Expands the date ["now"] to the date now. Leaves any other string alone. *) val expand_date : string -> string + +(** / **) +val get_catalog_item : string -> Pdf.t -> string + +val get_viewer_pref_item : string -> Pdf.t -> string