sig
  exception PDFReadError of string
  exception PDFSemanticError of string
  val pdf_of_input : string option -> Pdfio.input -> Pdf.pdfdoc
  val pdf_of_input_lazy : string option -> Pdfio.input -> Pdf.pdfdoc
  val pdf_of_channel : string option -> Pervasives.in_channel -> Pdf.pdfdoc
  val pdf_of_channel_lazy :
    string option -> Pervasives.in_channel -> Pdf.pdfdoc
  val pdf_of_file : string option -> string -> Pdf.pdfdoc
  val read_header : Pdfio.input -> int * int
  type lexeme =
      LexNull
    | LexBool of bool
    | LexInt of int
    | LexReal of float
    | LexString of string
    | LexName of string
    | LexLeftSquare
    | LexRightSquare
    | LexLeftDict
    | LexRightDict
    | LexStream of Pdf.stream
    | LexEndStream
    | LexObj
    | LexEndObj
    | LexR
    | LexComment
    | StopLexing
    | LexNone
  val lex_stream_data : Pdfio.input -> int -> bool -> Pdfread.lexeme
  val getuntil_white_or_delimiter : Pdfio.input -> char list
  val lex_name : Pdfio.input -> Pdfread.lexeme
  val lex_number : Pdfio.input -> Pdfread.lexeme
  val lex_string : Pdfio.input -> Pdfread.lexeme
  val lex_hexstring : Pdfio.input -> Pdfread.lexeme
  val lex_comment : Pdfio.input -> Pdfread.lexeme
  val lex_dictionary : Pdfio.input -> Pdfread.lexeme list
  val parse : Pdfread.lexeme list -> int * Pdf.pdfobject
  val dropwhite : Pdfio.input -> unit
  val print_lexeme : Pdfread.lexeme -> unit
  val string_of_lexeme : Pdfread.lexeme -> string
  val what_encryption : Pdf.pdfdoc -> Pdfwrite.encryption_method option
  val permissions : Pdf.pdfdoc -> Pdfcrypt.permission list
  val is_linearized : Pdfio.input -> bool
end