package cpdf
Install
dune-project
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 ->
unitPrint page info (Mediabox etc) to standard output.
val json_page_info : Pdf.t -> int list -> Cpdfyojson.Safe.tval process_pages :
(int -> Pdfpage.t -> Pdfpage.t * int * Pdftransform.transform_matrix) ->
Pdf.t ->
int list ->
Pdf.tGiven 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.tChange 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.tScale 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.tscale_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.tstamp 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 -> boolTrue 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 -> boolTrue if all pages are "upright" i.e no rotation and (0,0)-based.
val alluprightonly : int list -> Pdf.t -> boolTrue if all pages are "upright" i.e no rotation.
val change_pattern_matrices_page :
Pdf.t ->
Pdftransform.transform_matrix ->
Pdfpage.t ->
Pdfpage.tWhen a page is transformed, its patterns must be too.