package cpdf
Install
Dune Dependency
Authors
Maintainers
Sources
md5=8dd7b420b71374640679351cfa618c44
sha512=ddb2f30d10699ef4b843d06d30620ba018dbaec1ac9180b3fb7e85d1100718ece13212d56eca18139fdf1a19e4b27dbc6f31f628c4296273813448fb29d624e0
doc/cpdf/Cpdfpage/index.html
Module Cpdfpage
Working with pages
val output_page_info :
?json:bool ->
?raisejson:bool ->
Pdf.t ->
int list ->
unit
Print page info (Mediabox etc) to standard output.
val json_page_info : Pdf.t -> int list -> Cpdfyojson.Safe.t
val process_pages :
(int -> Pdfpage.t -> Pdfpage.t * int * Pdftransform.transform_matrix) ->
Pdf.t ->
int list ->
Pdf.t
Given a function from page number and page to page, a document, and a list of page numbers to apply it to, apply the function to all those pages.
Same as process_pages
, but iterate rather than map.
Same as process_pages
but return the list of outputs of the map function.
Clip a page to one of its boxes, or the media box if that box is not present. This is a hard clip, done by using a clipping rectangle, so that the page may then be used as a stamp without extraneous material reapearing.
Shift a PDF in x and y (in pts) in the given pages. List of (x, y) pairs is for all pages in pdf.
Shift a PDF's boxes in x and y (in pts) in the given pages. List of (x, y) pairs is for all pages in pdf.
Change a page's media box so its minimum x and y are 0, making other operations simpler to think about. Any shift that is done is reflected in other boxes (clip etc.)
val change_boxes :
((float * float * float * float) -> float * float * float * float) ->
Pdf.t ->
Pdfpage.t ->
Pdfpage.t
Change the media box and other known boxes by a function which takes xmin, xmax, ymin, ymax as input.
val scale_contents :
?fast:bool ->
Cpdfposition.position ->
float ->
Pdf.t ->
int list ->
Pdf.t
Scale the contents of a page by a given factor centred around a given point in a given range.
set_mediabox xywhlist pdf range
sets the media box on the given pages.
Modify the rotation of the page and its contents to leave the rotation at 0 with the page effectively unaltered.
Change rotation to a given value 0, 90, 180, 270 on given pages.
Rotate clockwise by 0, 90, 180, 270 on given pages.
Rotate the contents by the given angle on the given pages. If fast
is true, assume PDF is well-formed.
Scale a PDF in sx, sy in the given pages. List of (sx, sy) pairs is for all pages in pdf.
val scale_to_fit_pdf :
?fast:bool ->
Cpdfposition.position ->
float ->
(float * float) list ->
'a ->
Pdf.t ->
int list ->
Pdf.t
scale_to_fit_pdf fast position input_scale x y op pdf range
scales a page to fit the page size given by (x, y) and by the input_scale
(e.g 1.0 = scale to fit, 0.9 = scale to fit leaving a border etc.). op
is unused.
Stamping
combine_pages fast under over scaletofit swap equalize
combines the page content of two PDFs, page-by-page. If equalize
is true the output will have the same number of pages as the shorter file. If scaletofit
is true, the over
file will be scaled to fit. If swap
is true, over
and under
are swapped. If fast
is true, the PDFs are assumed to be well-formed and no fixes are done.
val stamp :
bool ->
Cpdfposition.position ->
bool ->
bool ->
bool ->
bool ->
bool ->
int list ->
Pdf.t ->
Pdf.t ->
Pdf.t
stamp relative_to_cropbox position topline midline fast scale_to_fit isover range over pdf
stamps the first page of over
over each page of the PDF. The arguments have the same meaning as in combine_pages
.
Page geometry
val hasbox : Pdf.t -> int -> string -> bool
True if a given page in a PDF has a given box
crop_pdf xywhlist pdf range
sets the cropbox on the given pages.
setBox boxname x y w h pdf range
sets the given box on the given pages.
Copy one box to another in the given pages.
val allupright : int list -> Pdf.t -> bool
True if all pages are "upright" i.e no rotation and (0,0)-based.
val alluprightonly : int list -> Pdf.t -> bool
True if all pages are "upright" i.e no rotation.
val change_pattern_matrices_page :
Pdf.t ->
Pdftransform.transform_matrix ->
Pdfpage.t ->
Pdfpage.t
When a page is transformed, its patterns must be too.