package cpdf

  1. Overview
  2. Docs
val debug : bool ref
val xmp_template : string
val report_pdf_size : Pdf.t -> unit
val find_cpdflin : string option -> string
val call_cpdflin : string -> string -> string -> string -> int
val recompress_stream : Pdf.t -> Pdf.pdfobject -> unit
val recompress_pdf : Pdf.t -> Pdf.t
val decompress_pdf : Pdf.t -> Pdf.t
val pdfobjeq : Pdf.t -> int -> int -> int
val really_squeeze : Pdf.t -> unit
val xobjects_done : int list ref
val squeeze_form_xobject : Pdf.t -> int -> unit
val no_duplicates : 'a list -> 'b list -> bool
val content_streams_of_page : Pdf.t -> int -> int list
val squeeze_all_content_streams : Pdf.t -> unit
val squeeze : ?logto:string -> Pdf.t -> unit
type encoding =
  1. | Raw
  2. | UTF8
  3. | Stripped
val crude_de_unicode : string -> string
val encode_output : encoding -> string -> string
val endpage_io : ?revision:int -> Pdfio.input -> string option -> string option -> int
exception PageSpecUnknownPage of int
exception PageSpecWouldBeNoPages
exception PageSpecBadSyntax
val splitat_commas : Pdfgenlex.t list -> Pdfgenlex.t list list
val is_dimension : (float -> float -> 'a) -> Pdfpage.t -> 'b
val select_dimensions : (float -> float -> bool) -> Pdf.t -> int list -> int list
val select_portrait : Pdf.t -> int list -> int list
val select_landscape : Pdf.t -> int list -> int list
val mk_numbers : Pdf.t -> int -> Pdfgenlex.t list -> int list
val add_spaces : char list -> char list
val space_string : string -> string
val fixup_negatives : int -> Pdfgenlex.t -> Pdfgenlex.t
val parse_pagespec_inner : int -> Pdf.t -> string -> int list
val parse_pagespec : Pdf.t -> string -> int list
val validate_pagespec_inner : int -> string -> bool
val validate_pagespec : string -> bool
val parse_pagespec_without_pdf_inner : int -> string -> int list
val parse_pagespec_without_pdf : string -> int list
val string_of_pagespec : Pdf.t -> int list -> string
val string_of_range : int list -> string
val print_pdf_objs : Pdf.t -> unit
val pagelabel : Pdf.t -> int -> string
val process_text : string -> (string * (unit -> string)) list -> string
val expand_date : string -> string
val process_pages : (int -> Pdfpage.t -> Pdfpage.t) -> Pdf.t -> int list -> Pdf.t
val iter_pages : (int -> Pdfpage.t -> unit) -> Pdf.t -> int list -> unit
val map_pages : (int -> Pdfpage.t -> 'a) -> Pdf.t -> int list -> 'b list
val protect : bool -> Pdf.t -> Pdf.pdfobject -> Pdf.pdfobject list -> Pdf.pdfobject list
exception SoftError of string
val error : string -> 'a
exception HardError of string
val combine_pdf_resources : Pdf.t -> Pdf.pdfobject -> Pdf.pdfobject -> Pdf.pdfobject
val change_page_effect : string option -> float option -> bool -> bool -> int -> float -> Pdfpage.t -> Pdfpage.t
val presentation : int list -> string option -> float option -> bool -> bool -> int -> float -> Pdf.t -> Pdf.t
val attach_file : ?memory:Pdfio.bytes -> bool -> int option -> Pdf.t -> string -> Pdf.t
type attachment = {
  1. name : string;
  2. pagenumber : int;
  3. data : unit -> Pdfio.bytes;
}
val list_attached_files : Pdf.t -> attachment list
val remove_attached_files_on_pages : Pdf.t -> Pdf.t
val remove_attached_files : Pdf.t -> Pdf.t
val copy_id : bool -> Pdf.t -> Pdf.t -> Pdf.t
val read_lines : Pdfio.input -> string list
val verify_bookmarks : Pdf.t -> int -> int -> Pdfmarks.t list -> bool
val fixup_characters : char list -> char list -> char list
val debug_bookmark_string : string -> unit
val bookmark_of_data : Pdf.t -> int -> string -> int -> bool -> Pdfgenlex.t list -> Pdfmarks.t
val parse_bookmark_file : bool -> Pdf.t -> Pdfio.input -> Pdfmarks.t list
val add_bookmarks : bool -> Pdfio.input -> Pdf.t -> Pdf.t
val set_page_mode : Pdf.t -> string -> Pdf.t
val set_open_action : Pdf.t -> bool -> int -> Pdf.t
val set_viewer_preference : (string * Pdf.pdfobject * int) -> Pdf.t -> Pdf.t
val set_page_layout : Pdf.t -> string -> Pdf.t
val set_metadata_from_bytes : bool -> Pdfio.bytes -> Pdf.t -> Pdf.t
val set_metadata : bool -> string -> Pdf.t -> Pdf.t
val remove_metadata : Pdf.t -> Pdf.t
val output_string_of_target : Pdf.t -> (int, int) Hashtbl.t -> Pdfdest.t -> string
val list_bookmarks : encoding -> int list -> Pdf.t -> Pdfio.output -> unit
val remove_unsafe_characters : string -> string
val get_bookmark_name : Pdf.t -> Pdfmarks.t list -> int -> int -> 'a -> string
val stem : string -> string
val bookmark_pages : int -> Pdf.t -> int list
val split_on_bookmarks : Pdf.t -> int -> Pdf.t list
val output_page_info : Pdf.t -> int list -> unit
val hasbox : Pdf.t -> int -> string -> bool
val get_metadata : Pdf.t -> Pdfio.bytes option
val print_metadata : Pdf.t -> unit
val list_font : Pdf.t -> 'a -> ('b * Pdf.pdfobject) -> 'c * 'd * string * string * string
val list_fonts : Pdf.t -> (int * string * string * string * string) list
val string_of_font : (int * string * string * string * string) -> string
val print_fonts : Pdf.t -> unit
type position =
  1. | PosCentre of float * float
  2. | PosLeft of float * float
  3. | PosRight of float * float
  4. | Top of float
  5. | TopLeft of float
  6. | TopRight of float
  7. | Left of float
  8. | BottomLeft of float
  9. | Bottom of float
  10. | BottomRight of float
  11. | Right of float
  12. | Diagonal
  13. | ReverseDiagonal
  14. | Centre
val string_of_position : position -> string
type orientation =
  1. | Horizontal
  2. | Vertical
  3. | VerticalDown
type justification =
  1. | LeftJustify
  2. | CentreJustify
  3. | RightJustify
val calculate_position : bool -> float -> (float * float * float * float) -> orientation -> position -> float * float * float
val winansi_of_utf8 : string -> string
val utf8_of_winansi : string -> string
val width_of_text : Pdftext.font -> string -> float
type ops_metrics = {
  1. metrics_text : string;
  2. metrics_x : float;
  3. metrics_y : float;
  4. metrics_rot : float;
}
val ops_metrics : ops_metrics list ref
val ops_baseline_adjustment : float ref
val metrics_howmany : unit -> int
val metrics_text : int -> string
val metrics_x : int -> float
val metrics_y : int -> float
val metrics_rot : int -> float
val metrics_baseline_adjustment : unit -> float
val ops : 'a -> bool -> float -> float -> float -> float -> float -> bool -> float -> string -> string option -> (float * float * float) -> float -> string -> Pdfops.t list
val find_justification_offsets : float -> float -> position -> justification -> float
val extract_num : (string, string) Hashtbl.t -> string -> Pdf.pdfobject
val extract_fontbbox : ('a, string) Hashtbl.t -> 'b -> Pdf.pdfobject list
val remove_slash : string -> string
val extract_widths : (string * int) list -> int list
val make_font : bool -> string -> Pdf.pdfobject
val extract_page_text : float option -> Pdf.t -> 'a -> Pdfpage.t -> string
val extract_text : float option -> Pdf.t -> int list -> string
val addtext : bool -> string list -> float -> bool -> bool -> (float * float * float) -> string -> bool -> int -> int option -> float -> Pdftext.standard_font option -> bool -> position -> float -> float -> string -> int list -> orientation -> bool -> float -> justification -> string -> float option -> Pdf.t -> Pdf.t
val split_at_newline : string -> string list
val unescape_chars : char list -> char list -> char list
val unescape_string : string -> string
val addtexts : bool -> float -> bool -> bool -> string -> Pdftext.standard_font option -> bool -> int -> int option -> (float * float * float) -> position -> float -> float -> bool -> string -> int list -> orientation -> bool -> float -> justification -> bool -> bool -> string -> float option -> Pdf.t -> Pdf.t
val removetext : int list -> Pdf.t -> Pdf.t
val insert_after : int -> 'a -> 'b list -> 'c list
val insert_after_many : 'a list -> (int * 'b) list -> 'a list
val insert_after_many_changes : bool -> int -> int -> int list -> int list -> (int * int) list
val print_changes : (int * int) list -> unit
val pad_with_pdf : int list -> Pdf.t -> bool -> Pdf.t -> Pdf.t
val pad : Pdf.t option -> int list -> Pdf.t -> bool -> Pdf.t
val padafter : ?padwith:Pdf.t -> int list -> Pdf.t -> Pdf.t
val padbefore : ?padwith:Pdf.t -> int list -> Pdf.t -> Pdf.t
val padmultiple : int -> Pdf.t -> Pdf.t
val make_mediabox : (float * float * float * float) -> Pdf.pdfobject
val change_boxes : ((float * float * float * float) -> float * float * float * float) -> Pdf.t -> Pdfpage.t -> Pdfpage.t
val process_xobject : (Pdf.t -> 'a -> Pdf.pdfobject list -> Pdf.pdfobject list) -> Pdf.t -> 'b -> int -> unit
val process_xobjects : Pdf.t -> Pdfpage.t -> (Pdf.t -> Pdf.pdfobject -> Pdf.pdfobject list -> Pdf.pdfobject list) -> unit
val change_pattern_matrices_resources : Pdf.t -> Pdftransform.transform_matrix -> Pdf.pdfobject -> Pdf.pdfobject
val change_pattern_matrices_page : Pdf.t -> Pdftransform.transform_matrix -> Pdfpage.t -> Pdfpage.t
val transform_annotations : Pdf.t -> Pdftransform.transform_matrix -> Pdf.pdfobject -> unit
val shift_page : ?fast:bool -> (float * float) list -> Pdf.t -> int -> Pdfpage.t -> Pdfpage.t
val shift_pdf : ?fast:bool -> (float * float) list -> Pdf.t -> int list -> Pdf.t
val rectify_boxes : ?fast:bool -> Pdf.t -> Pdfpage.t -> Pdfpage.t
val flip_page : ?fast:bool -> (float -> float -> float -> float -> Pdftransform.transform_matrix) -> Pdf.t -> 'a -> Pdfpage.t -> Pdfpage.t
val vflip_pdf : ?fast:bool -> Pdf.t -> int list -> Pdf.t
val hflip_pdf : ?fast:bool -> Pdf.t -> int list -> Pdf.t
val stamp_shift_of_position : bool -> bool -> float -> float -> float -> float -> position -> float * float
val combine_page_items : 'a -> Pdf.pdfobject -> Pdf.pdfobject -> Pdf.pdfobject
val do_stamp : bool -> bool -> position -> bool -> bool -> bool -> bool -> Pdf.t -> Pdfpage.t -> Pdfpage.t -> 'a -> Pdfpage.t
val change_destination : (int, int) Hashtbl.t -> Pdfdest.t -> Pdfdest.t
val change_bookmark : (int, int) Hashtbl.t -> Pdfmarks.t -> Pdfmarks.t
val stamp : bool -> position -> bool -> bool -> bool -> bool -> bool -> int list -> Pdf.t -> Pdf.t -> Pdf.t
val equalize_pages : Pdf.t -> Pdf.t -> Pdf.t * Pdf.t
val combine_pages : bool -> Pdf.t -> Pdf.t -> bool -> bool -> bool -> Pdf.t
val nobble_page : Pdf.t -> 'a -> Pdfpage.t -> Pdfpage.t
val set_mediabox : (float * float * float * float) list -> Pdf.t -> int list -> Pdf.t
val setBox : string -> float -> float -> float -> float -> Pdf.t -> int list -> Pdf.t
val crop_pdf : ?box:string -> (float * float * float * float) list -> Pdf.t -> int list -> Pdf.t
val hard_box : Pdf.t -> int list -> string -> bool -> bool -> Pdf.t
val remove_cropping_pdf : Pdf.t -> int list -> Pdf.t
val remove_trim_pdf : Pdf.t -> int list -> Pdf.t
val remove_art_pdf : Pdf.t -> int list -> Pdf.t
val remove_bleed_pdf : Pdf.t -> int list -> Pdf.t
val rotate_pdf : int -> Pdf.t -> int list -> Pdf.t
val rotate_pdf_by : int -> Pdf.t -> int list -> Pdf.t
val rotate_page_contents : fast:bool -> (float * float) option -> float -> Pdf.t -> 'a -> Pdfpage.t -> Pdfpage.t
val rotate_contents : ?fast:bool -> float -> Pdf.t -> int list -> Pdf.t
val select_pages : int list -> Pdf.t -> Pdfpage.t list
val allupright : int list -> Pdf.t -> bool
val upright_transform : Pdfpage.t -> Pdftransform.transform_matrix
val transform_contents : ?fast:bool -> Pdftransform.transform_matrix -> Pdf.t -> Pdfpage.t -> Pdfpage.t
val upright : ?fast:bool -> int list -> Pdf.t -> Pdf.t
val scale_pdf : ?fast:bool -> (float * float) list -> Pdf.t -> int list -> Pdf.t
val scale_to_fit_pdf : ?fast:bool -> position -> float -> (float * float) list -> 'a -> Pdf.t -> int list -> Pdf.t
val scale_page_contents : ?fast:bool -> float -> position -> Pdf.t -> 'a -> Pdfpage.t -> Pdfpage.t
val scale_contents : ?fast:bool -> position -> float -> Pdf.t -> int list -> Pdf.t
val get_annotation_string : encoding -> Pdf.t -> Pdf.pdfobject -> string
val print_annotation : encoding -> Pdf.t -> int -> Pdf.pdfobject -> unit
val list_page_annotations : encoding -> Pdf.t -> int -> Pdfpage.t -> unit
val list_annotations : encoding -> Pdf.t -> unit
val get_annotations : encoding -> Pdf.t -> (int * string) list
val list_annotations_more : Pdf.t -> unit
val equalise_lengths : Pdf.t -> Pdf.t -> Pdf.t * Pdf.t
val renumber_in_dest : (int, int) Hashtbl.t -> bool -> Pdf.pdfobject -> Pdf.pdfobject
val renumber_in_object : Pdf.t -> int -> (int, int) Hashtbl.t -> unit
val copy_annotations_page : Pdf.t -> Pdf.t -> Pdfpage.t -> Pdfpage.t -> Pdf.t * Pdfpage.t
val copy_annotations : int list -> Pdf.t -> Pdf.t -> Pdf.t
val twoup_transforms : Pdf.pdfobject -> Pdftransform.transform_matrix list
val twoup_stack_transforms : Pdf.pdfobject -> Pdftransform.transform_matrix list
val combine_pdf_rests : Pdf.t -> Pdf.pdfobject -> Pdf.pdfobject -> Pdf.pdfobject
val twoup_pages_inner : bool -> bool -> Pdf.t -> Pdfpage.t list -> Pdfpage.t
val f_twoup : (Pdf.t -> Pdfpage.t list -> Pdfpage.t) -> Pdf.t -> Pdf.t
val twoup : bool -> Pdf.t -> Pdf.t
val twoup_stack : bool -> Pdf.t -> Pdf.t
val get_info : bool -> Pdf.t -> string -> string
val get_info_utf8 : Pdf.t -> string -> string
val getstring : encoding -> Pdf.t -> string -> string
val output_info : encoding -> Pdf.t -> unit
type xmltree =
  1. | E of Xmlm.tag * xmltree list
  2. | D of string
val xmltree_of_bytes : Pdfio.bytes -> Xmlm.dtd * xmltree
val bytes_of_xmltree : (Xmlm.dtd * xmltree) -> Pdfio.bytes
val string_of_xmltree : xmltree -> string
val string_of_tag : Xmlm.tag -> string
val string_of_attribute : Xmlm.attribute -> string
val string_of_attributes : Xmlm.attribute list -> string
val string_of_xmltrees : xmltree list -> string
val adobe : string
val xmp : string
val dc : string
val rdf : string
val string_trim : string -> string
val combine_with_spaces : string list -> string
val collect_list_items : xmltree -> string
val collect_list_items_all : xmltree list -> string option
val get_data_for : string -> string -> xmltree -> string option
val output_xmp_info : 'a -> Pdf.t -> unit
val check : string -> (string * string) list
val get_xmp_info : Pdf.t -> string -> string
val set_xml_field : string -> string -> string -> xmltree -> xmltree
val set_pdf_info_xml : string -> string -> Pdf.pdfobject -> Pdfio.bytes -> 'a -> Pdfio.bytes
val set_pdf_info_xml_many : (string * string) list -> Pdf.pdfobject -> Pdfio.bytes -> 'a -> Pdfio.bytes
type date = {
  1. mutable year : int;
  2. mutable month : int;
  3. mutable day : int;
  4. mutable hour : int;
  5. mutable minute : int;
  6. mutable second : int;
  7. mutable ut_relationship : int;
  8. mutable offset_hours : int;
  9. mutable offset_minutes : int;
}
val default_date : unit -> date
val make_xmp_date_from_components : date -> string
val xmp_date : string -> string
val set_pdf_info : ?xmp_also:bool -> ?xmp_just_set:bool -> (string * Pdf.pdfobject * int) -> Pdf.t -> Pdf.t
val set_metadata_date : Pdf.t -> string -> Pdf.t
val replacements : Pdf.t -> (string * string) list
val create_metadata : Pdf.t -> Pdf.t
val blacktext_ops : (float * float * float) -> Pdf.t -> Pdf.pdfobject -> Pdf.pdfobject list -> Pdf.pdfobject list
val blacktext : (float * float * float) -> int list -> Pdf.t -> Pdf.t
val blacklines_ops : (float * float * float) -> Pdf.t -> Pdf.pdfobject -> Pdf.pdfobject list -> Pdf.pdfobject list
val blacklines : (float * float * float) -> int list -> Pdf.t -> Pdf.t
val blackfills_ops : (float * float * float) -> Pdf.t -> Pdf.pdfobject -> Pdf.pdfobject list -> Pdf.pdfobject list
val blackfills : (float * float * float) -> int list -> Pdf.t -> Pdf.t
val thinlines : int list -> float -> Pdf.t -> Pdf.t
val remove_annotations : int list -> Pdf.t -> Pdf.t
val isimage : Pdf.t -> ('a * Pdf.pdfobject) -> bool
val xobject_isimage : Pdf.t -> Pdf.pdfobject -> string -> bool
val substitute : bool -> Pdfops.t list
val remove_images_stream : string option -> bool -> Pdf.t -> Pdf.pdfobject -> Pdfops.t list -> Pdfops.t list -> Pdfops.t list
val process_form_xobject : string option -> bool -> Pdf.t -> Pdf.pdfobject -> Pdf.pdfobject * Pdf.t
val remove_images_page : string option -> bool -> Pdf.t -> Pdfpage.t -> Pdfpage.t * Pdf.t
val draft : string option -> bool -> int list -> Pdf.t -> Pdf.t
val set_version : int -> Pdf.t -> unit
val custom_csp1_page : Pdf.t -> 'a -> Pdfpage.t -> Pdfpage.t
val custom_csp1 : Pdf.t -> Pdf.t
val custom_csp2 : float -> Pdf.t -> Pdf.t
val blank_document : float -> float -> int -> Pdf.t
val blank_document_paper : Pdfpaper.t -> int -> Pdf.t
val ranges_of_range : int list -> int list list -> int list -> int list list
val page1 : Pdfpagelabels.t list -> bool
val add_page_labels : Pdf.t -> Pdfpagelabels.labelstyle -> string option -> int -> int list -> unit