Merge pull request #2 from avsm/annotation-page-numbers
Page numbers in annotations via asvm. Will update the manual for 1.8 release time (it will be found by the standard manual tests).
This commit is contained in:
commit
9208f206be
|
@ -0,0 +1,13 @@
|
||||||
|
*.cmi
|
||||||
|
*.cmo
|
||||||
|
*.cma
|
||||||
|
*.cmx
|
||||||
|
*.cmxa
|
||||||
|
*.top
|
||||||
|
*.o
|
||||||
|
*.a
|
||||||
|
._bcdi/
|
||||||
|
._ncdi/
|
||||||
|
._d/
|
||||||
|
cpdf
|
||||||
|
*.annot
|
2
Makefile
2
Makefile
|
@ -4,7 +4,7 @@ MODS = cpdfstrftime cpdf cpdfcommand
|
||||||
SOURCES = $(foreach x,$(MODS),$(x).ml $(x).mli) cpdfcommandrun.ml
|
SOURCES = $(foreach x,$(MODS),$(x).ml $(x).mli) cpdfcommandrun.ml
|
||||||
|
|
||||||
RESULT = cpdf
|
RESULT = cpdf
|
||||||
|
ANNOTATE = true
|
||||||
PACKS = camlpdf
|
PACKS = camlpdf
|
||||||
|
|
||||||
OCAMLNCFLAGS = -g
|
OCAMLNCFLAGS = -g
|
||||||
|
|
20
README.md
20
README.md
|
@ -32,30 +32,34 @@ If you are using the OPAM package manager:
|
||||||
|
|
||||||
these can be installed by:
|
these can be installed by:
|
||||||
|
|
||||||
opam install ocamlfind camlpdf
|
```
|
||||||
|
opam install camlpdf
|
||||||
|
```
|
||||||
|
|
||||||
To build
|
To build
|
||||||
--------
|
--------
|
||||||
|
|
||||||
1. Type 'make' to make the cpdf executable and the library
|
1. Type `make` to make the cpdf executable and the library
|
||||||
|
|
||||||
2. Type 'make install' to install the OCaml cpdf library.
|
2. Type `make install` to install the OCaml cpdf library.
|
||||||
|
|
||||||
The cpdf executable should be manually placed somewhere suitable.
|
The `cpdf` executable should be manually placed somewhere suitable.
|
||||||
|
|
||||||
Alternatively, the library only can be installed by
|
Alternatively, the library and command-line binary can be installed by
|
||||||
|
|
||||||
|
```
|
||||||
opam install cpdf
|
opam install cpdf
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
The file cpdfmanual.pdf in this folder is the documentation for the command
|
The file `cpdfmanual.pdf` in this folder is the documentation for the command
|
||||||
line tools. The documentation for the cpdf OCaml library is in doc/html/cpdf/
|
line tools. The documentation for the cpdf OCaml library is in `doc/html/cpdf/`
|
||||||
in this folder once the library has been built.
|
in this folder once the library has been built.
|
||||||
|
|
||||||
Contact
|
Contact
|
||||||
-------
|
-------
|
||||||
|
|
||||||
[contact@coherentgraphics.co.uk](contact@coherentgraphics.co.uk)
|
[contact@coherentgraphics.co.uk](contact@coherentgraphics.co.uk)
|
||||||
|
|
||||||
|
|
19
cpdf.ml
19
cpdf.ml
|
@ -2253,21 +2253,24 @@ let get_annotation_string encoding pdf annot =
|
||||||
| Some (Pdf.String s) -> encode_output encoding s
|
| Some (Pdf.String s) -> encode_output encoding s
|
||||||
| _ -> ""
|
| _ -> ""
|
||||||
|
|
||||||
let print_annotation encoding pdf s =
|
let print_annotation encoding pdf num s =
|
||||||
let s = get_annotation_string encoding pdf s in
|
let s = get_annotation_string encoding pdf s in
|
||||||
flprint "------------------------------------------------------------------------\n";
|
match s with
|
||||||
flprint s;
|
| "" -> ()
|
||||||
flprint "\n"
|
| s ->
|
||||||
|
flprint (Printf.sprintf "Page %d: " num);
|
||||||
|
flprint s;
|
||||||
|
flprint "\n"
|
||||||
|
|
||||||
let list_page_annotations encoding pdf page =
|
let list_page_annotations encoding pdf num page =
|
||||||
match Pdf.lookup_direct pdf "/Annots" page.Pdfpage.rest with
|
match Pdf.lookup_direct pdf "/Annots" page.Pdfpage.rest with
|
||||||
| Some (Pdf.Array annots) ->
|
| Some (Pdf.Array annots) ->
|
||||||
iter (print_annotation encoding pdf) (map (Pdf.direct pdf) annots)
|
iter (print_annotation encoding pdf num) (map (Pdf.direct pdf) annots)
|
||||||
| _ -> ()
|
| _ -> ()
|
||||||
|
|
||||||
let list_annotations encoding pdf =
|
let list_annotations encoding pdf =
|
||||||
let pages = Pdfpage.pages_of_pagetree pdf in
|
let range = parse_pagespec pdf "all" in
|
||||||
iter (list_page_annotations encoding pdf) pages
|
iter_pages (list_page_annotations encoding pdf) pdf range
|
||||||
|
|
||||||
let get_annotations encoding pdf =
|
let get_annotations encoding pdf =
|
||||||
let pages = Pdfpage.pages_of_pagetree pdf in
|
let pages = Pdfpage.pages_of_pagetree pdf in
|
||||||
|
|
Loading…
Reference in New Issue