diff --git a/cpdfaddtext.ml b/cpdfaddtext.ml index 09bc1cd..1fddecb 100644 --- a/cpdfaddtext.ml +++ b/cpdfaddtext.ml @@ -373,10 +373,10 @@ let addtext let mediabox = if cropbox then match Pdf.lookup_direct pdf "/CropBox" page.Pdfpage.rest with - | Some pdfobject -> Pdf.parse_rectangle (Pdf.direct pdf pdfobject) - | None -> Pdf.parse_rectangle page.Pdfpage.mediabox + | Some pdfobject -> Pdf.parse_rectangle pdf (Pdf.direct pdf pdfobject) + | None -> Pdf.parse_rectangle pdf page.Pdfpage.mediabox else - Pdf.parse_rectangle page.Pdfpage.mediabox + Pdf.parse_rectangle pdf page.Pdfpage.mediabox in let x, y, rotate = Cpdfposition.calculate_position false textwidth mediabox orientation position in let hoffset, voffset = @@ -601,10 +601,10 @@ let addrectangle let mediabox = if relative_to_cropbox then match Pdf.lookup_direct pdf "/CropBox" page.Pdfpage.rest with - | Some pdfobject -> Pdf.parse_rectangle (Pdf.direct pdf pdfobject) - | None -> Pdf.parse_rectangle page.Pdfpage.mediabox + | Some pdfobject -> Pdf.parse_rectangle pdf (Pdf.direct pdf pdfobject) + | None -> Pdf.parse_rectangle pdf page.Pdfpage.mediabox else - Pdf.parse_rectangle page.Pdfpage.mediabox + Pdf.parse_rectangle pdf page.Pdfpage.mediabox in let x, y, _ = Cpdfposition.calculate_position false w mediabox Cpdfposition.Horizontal position diff --git a/cpdfattach.ml b/cpdfattach.ml index a2066c7..05dfdd1 100644 --- a/cpdfattach.ml +++ b/cpdfattach.ml @@ -96,7 +96,7 @@ let attach_file ?memory keepversion topage pdf file = | _ -> [] in let rect = - let minx, miny, maxx, maxy = Pdf.parse_rectangle page.Pdfpage.mediabox in + let minx, miny, maxx, maxy = Pdf.parse_rectangle pdf page.Pdfpage.mediabox in Pdf.Array [Pdf.Real 18.; Pdf.Real (maxy -. 45.); Pdf.Real 45.; Pdf.Real (maxy -. 18.)] in let filespecobj = Pdf.addobj pdf filespec in diff --git a/cpdfcommand.ml b/cpdfcommand.ml index 9cb244e..b407d48 100644 --- a/cpdfcommand.ml +++ b/cpdfcommand.ml @@ -3,7 +3,7 @@ let demo = false let noncomp = false let major_version = 2 let minor_version = 6 -let version_date = "(devel, 3 April 2022)" +let version_date = "(devel, 14 Jul 2022)" open Pdfutil open Pdfio diff --git a/cpdfcoord.ml b/cpdfcoord.ml index 84c8f24..6cf6330 100644 --- a/cpdfcoord.ml +++ b/cpdfcoord.ml @@ -26,25 +26,25 @@ let cropbox pdf page = | Some pdfobject -> Pdf.direct pdf pdfobject | None -> page.Pdfpage.mediabox -let width box = let minx, miny, maxx, maxy = Pdf.parse_rectangle box in maxx -. minx -let height box = let minx, miny, maxx, maxy = Pdf.parse_rectangle box in maxy -. miny -let minx box = let minx, miny, maxx, maxy = Pdf.parse_rectangle box in minx -let miny box = let minx, miny, maxx, maxy = Pdf.parse_rectangle box in miny -let maxx box = let minx, miny, maxx, maxy = Pdf.parse_rectangle box in maxx -let maxy box = let minx, miny, maxx, maxy = Pdf.parse_rectangle box in maxy +let width pdf box = let minx, miny, maxx, maxy = Pdf.parse_rectangle pdf box in maxx -. minx +let height pdf box = let minx, miny, maxx, maxy = Pdf.parse_rectangle pdf box in maxy -. miny +let minx pdf box = let minx, miny, maxx, maxy = Pdf.parse_rectangle pdf box in minx +let miny pdf box = let minx, miny, maxx, maxy = Pdf.parse_rectangle pdf box in miny +let maxx pdf box = let minx, miny, maxx, maxy = Pdf.parse_rectangle pdf box in maxx +let maxy pdf box = let minx, miny, maxx, maxy = Pdf.parse_rectangle pdf box in maxy -let find_page_width pdf page = width page.Pdfpage.mediabox -let find_page_height pdf page = height page.Pdfpage.mediabox -let find_page_crop_width pdf page = width (cropbox pdf page) -let find_page_crop_height pdf page = height (cropbox pdf page) -let find_page_minx pdf page = minx page.Pdfpage.mediabox -let find_page_miny pdf page = miny page.Pdfpage.mediabox -let find_page_maxx pdf page = maxx page.Pdfpage.mediabox -let find_page_maxy pdf page = maxy page.Pdfpage.mediabox -let find_page_crop_minx pdf page = minx (cropbox pdf page) -let find_page_crop_miny pdf page = miny (cropbox pdf page) -let find_page_crop_maxx pdf page = maxx (cropbox pdf page) -let find_page_crop_maxy pdf page = maxy (cropbox pdf page) +let find_page_width pdf page = width pdf page.Pdfpage.mediabox +let find_page_height pdf page = height pdf page.Pdfpage.mediabox +let find_page_crop_width pdf page = width pdf (cropbox pdf page) +let find_page_crop_height pdf page = height pdf (cropbox pdf page) +let find_page_minx pdf page = minx pdf page.Pdfpage.mediabox +let find_page_miny pdf page = miny pdf page.Pdfpage.mediabox +let find_page_maxx pdf page = maxx pdf page.Pdfpage.mediabox +let find_page_maxy pdf page = maxy pdf page.Pdfpage.mediabox +let find_page_crop_minx pdf page = minx pdf (cropbox pdf page) +let find_page_crop_miny pdf page = miny pdf (cropbox pdf page) +let find_page_crop_maxx pdf page = maxx pdf (cropbox pdf page) +let find_page_crop_maxy pdf page = maxy pdf (cropbox pdf page) let find_page_characteristic pdf page = function | "PW" -> find_page_width pdf page diff --git a/cpdfimage.ml b/cpdfimage.ml index 97ddb40..2c23b2a 100644 --- a/cpdfimage.ml +++ b/cpdfimage.ml @@ -225,11 +225,11 @@ and image_resolution pdf range dpi = | Some (Pdf.Name "/Image") -> let width = match Pdf.lookup_direct pdf "/Width" xobject with - | Some x -> Pdf.getnum x + | Some x -> Pdf.getnum pdf x | None -> 1. and height = match Pdf.lookup_direct pdf "/Height" xobject with - | Some x -> Pdf.getnum x + | Some x -> Pdf.getnum pdf x | None -> 1. in images := (pagenum, name, Image (int_of_float width, int_of_float height))::!images @@ -243,8 +243,8 @@ and image_resolution pdf range dpi = and matrix = match Pdf.lookup_direct pdf "/Matrix" xobject with | Some (Pdf.Array [a; b; c; d; e; f]) -> - {Pdftransform.a = Pdf.getnum a; Pdftransform.b = Pdf.getnum b; Pdftransform.c = Pdf.getnum c; - Pdftransform.d = Pdf.getnum d; Pdftransform.e = Pdf.getnum e; Pdftransform.f = Pdf.getnum f} + {Pdftransform.a = Pdf.getnum pdf a; Pdftransform.b = Pdf.getnum pdf b; Pdftransform.c = Pdf.getnum pdf c; + Pdftransform.d = Pdf.getnum pdf d; Pdftransform.e = Pdf.getnum pdf e; Pdftransform.f = Pdf.getnum pdf f} | _ -> Pdftransform.i_matrix in images := (pagenum, name, Form (matrix, contents, resources))::!images diff --git a/cpdfimpose.ml b/cpdfimpose.ml index 3dce589..88052de 100644 --- a/cpdfimpose.ml +++ b/cpdfimpose.ml @@ -41,10 +41,10 @@ let combine_pdf_rests pdf a b = (* Calculate the transformation matrices for a single imposed output page. *) (* make margins by scaling for a fitted impose. *) -let make_margin output_mediabox margin tr = +let make_margin pdf output_mediabox margin tr = if margin = 0. then tr else let width, height = - match Pdf.parse_rectangle output_mediabox with + match Pdf.parse_rectangle pdf output_mediabox with xmin, ymin, xmax, ymax -> xmax -. xmin, ymax -. ymin in if margin > width /. 2. || margin > height /. 2. then error "margin would fill whole page!" else @@ -59,9 +59,9 @@ let make_margin output_mediabox margin tr = (Pdftransform.matrix_compose shift (Pdftransform.matrix_compose scale tr)) (* FIXME fixup -center for next release. For now it has been disabled. *) -let impose_transforms fit fx fy columns rtl btt center margin mediabox output_mediabox fit_extra_hspace fit_extra_vspace len = +let impose_transforms pdf fit fx fy columns rtl btt center margin mediabox output_mediabox fit_extra_hspace fit_extra_vspace len = let width, height = - match Pdf.parse_rectangle mediabox with + match Pdf.parse_rectangle pdf mediabox with xmin, ymin, xmax, ymax -> xmax -. xmin, ymax -. ymin in let trs = ref [] in @@ -116,14 +116,14 @@ let impose_transforms fit fx fy columns rtl btt center margin mediabox output_me len := !len - 1 done done; - map (if fit then make_margin output_mediabox margin else Fun.id) (rev !trs) + map (if fit then make_margin pdf output_mediabox margin else Fun.id) (rev !trs) let impose_pages fit x y columns rtl btt center margin output_mediabox fast fit_extra_hspace fit_extra_vspace pdf = function | [] -> assert false | (h::_) as pages -> let transforms = impose_transforms - fit x y columns rtl btt center margin h.Pdfpage.mediabox + pdf fit x y columns rtl btt center margin h.Pdfpage.mediabox output_mediabox fit_extra_hspace fit_extra_vspace (length pages) in (* Change the pattern matrices before combining resources *) @@ -165,7 +165,7 @@ let make_space fit ~fast spacing pdf = let margin = spacing /. 2. in let firstpage = hd (Pdfpage.pages_of_pagetree pdf) in let width, height = - match Pdf.parse_rectangle firstpage.Pdfpage.mediabox with + match Pdf.parse_rectangle pdf firstpage.Pdfpage.mediabox with xmin, ymin, xmax, ymax -> (xmax -. xmin, ymax -. ymin) in if fit then @@ -185,7 +185,7 @@ let make_space fit ~fast spacing pdf = let add_border linewidth ~fast pdf = if linewidth = 0. then pdf else let firstpage = hd (Pdfpage.pages_of_pagetree pdf) in - let _, _, w, h = Pdf.parse_rectangle firstpage.Pdfpage.mediabox in + let _, _, w, h = Pdf.parse_rectangle pdf firstpage.Pdfpage.mediabox in Cpdfaddtext.addrectangle fast (w -. linewidth, h -. linewidth) (RGB (0., 0., 0.)) true linewidth 1. (Cpdfposition.BottomLeft (linewidth /. 2.)) false false (ilist 1 (Pdfpage.endpage pdf)) pdf @@ -199,7 +199,7 @@ let impose ~x ~y ~fit ~columns ~rtl ~btt ~center ~margin ~spacing ~linewidth ~fa let pdf = add_border linewidth ~fast pdf in let pdf = make_space fit ~fast spacing pdf in let firstpage = hd (Pdfpage.pages_of_pagetree pdf) in - let _, _, w, h = Pdf.parse_rectangle firstpage.Pdfpage.mediabox in + let _, _, w, h = Pdf.parse_rectangle pdf firstpage.Pdfpage.mediabox in let ix = int_of_float x in let iy = int_of_float y in let n, ix, iy, fit_extra_hspace, fit_extra_vspace = @@ -256,7 +256,7 @@ let twoup_stack fast pdf = let twoup fast pdf = let firstpage = hd (Pdfpage.pages_of_pagetree pdf) in let width, height = - match Pdf.parse_rectangle firstpage.Pdfpage.mediabox with + match Pdf.parse_rectangle pdf firstpage.Pdfpage.mediabox with xmin, ymin, xmax, ymax -> xmax -. xmin, ymax -. ymin in let width_exceeds_height = width > height in diff --git a/cpdfpage.ml b/cpdfpage.ml index 1eaff82..4e1a64b 100644 --- a/cpdfpage.ml +++ b/cpdfpage.ml @@ -10,13 +10,13 @@ let output_page_info pdf range = match page.Pdfpage.mediabox with | Pdf.Array [a; b; c; d] -> Printf.sprintf "%f %f %f %f" - (Pdf.getnum a) (Pdf.getnum b) (Pdf.getnum c) (Pdf.getnum d) + (Pdf.getnum pdf a) (Pdf.getnum pdf b) (Pdf.getnum pdf c) (Pdf.getnum pdf d) | _ -> "" else match Pdf.lookup_direct pdf box page.Pdfpage.rest with | Some (Pdf.Array [a; b; c; d]) -> Printf.sprintf "%f %f %f %f" - (Pdf.getnum a) (Pdf.getnum b) (Pdf.getnum c) (Pdf.getnum d) + (Pdf.getnum pdf a) (Pdf.getnum pdf b) (Pdf.getnum pdf c) (Pdf.getnum pdf d) | _ -> "" and rotation page = Pdfpage.int_of_rotation page.Pdfpage.rotate @@ -69,13 +69,13 @@ let hard_box pdf range boxname mediabox_if_missing fast = (Cpdfutil.ppstub (fun pagenum page -> let minx, miny, maxx, maxy = if boxname = "/MediaBox" then - Pdf.parse_rectangle page.Pdfpage.mediabox + Pdf.parse_rectangle pdf page.Pdfpage.mediabox else match Pdf.lookup_direct pdf boxname page.Pdfpage.rest with - | Some a -> Pdf.parse_rectangle a + | Some a -> Pdf.parse_rectangle pdf a | _ -> if mediabox_if_missing - then Pdf.parse_rectangle page.Pdfpage.mediabox + then Pdf.parse_rectangle pdf page.Pdfpage.mediabox else error (Printf.sprintf "hard_box: box %s not found" boxname) in let ops = [Pdfops.Op_re (minx, miny, maxx -. minx, maxy -. miny); Pdfops.Op_W; Pdfops.Op_n] in @@ -120,7 +120,7 @@ let change_boxes f pdf page = fold_left (fun e (k, v) -> let v = - make_mediabox (f (Pdf.parse_rectangle v)) + make_mediabox (f (Pdf.parse_rectangle pdf v)) in Pdf.replace_dict_entry e k v) page.Pdfpage.rest @@ -128,7 +128,7 @@ let change_boxes f pdf page = in {page with Pdfpage.mediabox = - make_mediabox (f (Pdf.parse_rectangle page.Pdfpage.mediabox)); + make_mediabox (f (Pdf.parse_rectangle pdf page.Pdfpage.mediabox)); Pdfpage.rest = rest'} @@ -137,6 +137,7 @@ let scale_page_contents ?(fast=false) scale position pdf pnum page = let (minx, miny, maxx, maxy) as box = (* Use cropbox if available *) Pdf.parse_rectangle + pdf (match Pdf.lookup_direct pdf "/CropBox" page.Pdfpage.rest with | Some r -> r | None -> page.Pdfpage.mediabox) @@ -234,16 +235,16 @@ to save time. *) let allupright range pdf = let page_is_upright page = page.Pdfpage.rotate = Pdfpage.Rotate0 && - (let (minx, miny, _, _) = Pdf.parse_rectangle page.Pdfpage.mediabox in + (let (minx, miny, _, _) = Pdf.parse_rectangle pdf page.Pdfpage.mediabox in minx < 0.001 && miny < 0.001 && minx > ~-.0.001 && miny > ~-.0.001) in not (mem false (map page_is_upright (select_pages range pdf))) -let upright_transform page = +let upright_transform pdf page = let rotate = Pdfpage.int_of_rotation page.Pdfpage.rotate and cx, cy = - let minx, miny, maxx, maxy = Pdf.parse_rectangle page.Pdfpage.mediabox in + let minx, miny, maxx, maxy = Pdf.parse_rectangle pdf page.Pdfpage.mediabox in (minx +. maxx) /. 2., (miny +. maxy) /. 2. in Pdftransform.mkrotate (cx, cy) (rad_of_deg (~-.(float rotate))) @@ -267,7 +268,7 @@ operations simpler to think about. Any shift that is done is reflected in other boxes (clip etc.) *) let rectify_boxes ?(fast=false) pdf page = let minx, miny, _, _ = - Pdf.parse_rectangle page.Pdfpage.mediabox + Pdf.parse_rectangle pdf page.Pdfpage.mediabox in let f (iminx, iminy, imaxx, imaxy) = iminx -. minx, iminy -. miny, imaxx -. minx, imaxy -. miny @@ -281,7 +282,7 @@ let rectify_boxes ?(fast=false) pdf page = let upright ?(fast=false) range pdf = if allupright range pdf then pdf else let upright_page _ pnum page = - let tr = upright_transform page in + let tr = upright_transform pdf page in let page = transform_boxes tr pdf page in let page = transform_contents ~fast tr pdf page in (rectify_boxes ~fast pdf {page with Pdfpage.rotate = Pdfpage.Rotate0}, pnum, tr) @@ -307,7 +308,7 @@ let rotate_page_contents ~fast rotpoint r pdf pnum page = let rotation_point = match rotpoint with | None -> - let minx, miny, maxx, maxy = Pdf.parse_rectangle page.Pdfpage.mediabox in + let minx, miny, maxx, maxy = Pdf.parse_rectangle pdf page.Pdfpage.mediabox in (minx +. maxx) /. 2., (miny +. maxy) /. 2. | Some point -> point in @@ -353,6 +354,7 @@ let scale_to_fit_pdf ?(fast=false) position input_scale xylist op pdf range = let (minx, miny, maxx, maxy) = (* Use cropbox if available *) Pdf.parse_rectangle + pdf (match Pdf.lookup_direct pdf "/CropBox" page.Pdfpage.rest with | Some r -> r | None -> page.Pdfpage.mediabox) @@ -417,7 +419,7 @@ let hasbox pdf page boxname = (* Flip pages *) let flip_page ?(fast=false) transform_op pdf pnum page = let minx, miny, maxx, maxy = - Pdf.parse_rectangle page.Pdfpage.mediabox + Pdf.parse_rectangle pdf page.Pdfpage.mediabox in let tr = transform_op minx miny maxx maxy in let page = Cpdfutil.change_pattern_matrices_page pdf tr page in @@ -484,9 +486,11 @@ let do_stamp relative_to_cropbox fast position topline midline scale_to_fit isov (* Scale page stamp o to fit page u *) let sxmin, symin, sxmax, symax = Pdf.parse_rectangle + pdf (match Pdf.lookup_direct pdf "/CropBox" o.Pdfpage.rest with | Some r -> r | None -> o.Pdfpage.mediabox) in let txmin, tymin, txmax, tymax = Pdf.parse_rectangle + pdf (match Pdf.lookup_direct pdf "/CropBox" u.Pdfpage.rest with | Some r -> r | None -> u.Pdfpage.mediabox) in let o = @@ -688,11 +692,11 @@ let crop_pdf ?(box="/CropBox") xywhlist pdf range = let get_rectangle pdf page box = if box = "/MediaBox" then match page.Pdfpage.mediabox with - Pdf.Array [a; b; c; d] as r -> Some (Pdf.parse_rectangle r) + Pdf.Array [a; b; c; d] as r -> Some (Pdf.parse_rectangle pdf r) | _ -> None else match Pdf.lookup_direct pdf box page.Pdfpage.rest with - Some (Pdf.Array [a; b; c; d] as r) -> Some (Pdf.parse_rectangle r) + Some (Pdf.Array [a; b; c; d] as r) -> Some (Pdf.parse_rectangle pdf r) | _ -> None let show_boxes_page fast pdf _ page = diff --git a/cpdfpagespec.ml b/cpdfpagespec.ml index 194d59c..a325d01 100644 --- a/cpdfpagespec.ml +++ b/cpdfpagespec.ml @@ -19,8 +19,8 @@ let rec splitat_commas toks = | some, [] -> [some] | _::_ as before, _::rest -> before::splitat_commas rest -let is_dimension comparison {Pdfpage.mediabox = box} = - let minx, miny, maxx, maxy = Pdf.parse_rectangle box in +let is_dimension pdf comparison {Pdfpage.mediabox = box} = + let minx, miny, maxx, maxy = Pdf.parse_rectangle pdf box in comparison (maxx -. minx) (maxy -. miny) let select_dimensions comparison pdf candidates = @@ -34,7 +34,7 @@ let select_dimensions comparison pdf candidates = in option_map2 (fun pagenum page -> - if is_dimension comparison page then Some pagenum else None) + if is_dimension pdf comparison page then Some pagenum else None) pagenums kept_pages diff --git a/cpdftoc.ml b/cpdftoc.ml index 569502c..a0f6745 100644 --- a/cpdftoc.ml +++ b/cpdftoc.ml @@ -47,14 +47,14 @@ let typeset_table_of_contents ~font ~fontsize ~title ~bookmark pdf = let firstpage = hd (Pdfpage.pages_of_pagetree pdf) in let width, firstpage_papersize, pmaxx, pmaxy, margin = let width, height, xmax, ymax = - match Pdf.parse_rectangle firstpage.Pdfpage.mediabox with + match Pdf.parse_rectangle pdf firstpage.Pdfpage.mediabox with xmin, ymin, xmax, ymax -> xmax -. xmin, ymax -. ymin, xmax, ymax in width, Pdfpaper.make Pdfunits.PdfPoint width height, xmax, ymax, fmin width height *. 0.1 in let firstpage_cropbox = match Pdf.lookup_direct pdf "/CropBox" firstpage.Pdfpage.rest with - | Some r -> Some (Pdf.parse_rectangle r) + | Some r -> Some (Pdf.parse_rectangle pdf r) | None -> None in let width = diff --git a/cpdftweak.ml b/cpdftweak.ml index bda1ecf..494b3ad 100644 --- a/cpdftweak.ml +++ b/cpdftweak.ml @@ -203,7 +203,7 @@ let thinlines range width pdf = | None -> [] | Some gdict -> match Pdf.lookup_direct pdf "/LW" gdict with - | Some s -> (try [Pdfops.Op_w (Pdf.getnum s)] with _ -> []) + | Some s -> (try [Pdfops.Op_w (Pdf.getnum pdf s)] with _ -> []) | None -> [] in replace_operators (opw @ ((Pdfops.Op_gs gsname)::prev)) more diff --git a/cpdfutil.ml b/cpdfutil.ml index f6ac34c..52c66af 100644 --- a/cpdfutil.ml +++ b/cpdfutil.ml @@ -133,8 +133,8 @@ let combine_pdf_resources pdf a b = (Pdf.Dictionary []) (unknown_keys_a @ unknown_keys_b @ combined_known_entries) -let transform_rect transform rect = - let minx, miny, maxx, maxy = Pdf.parse_rectangle rect in +let transform_rect pdf transform rect = + let minx, miny, maxx, maxy = Pdf.parse_rectangle pdf rect in let (x0, y0) = Pdftransform.transform_matrix transform (minx, miny) in let (x1, y1) = Pdftransform.transform_matrix transform (maxx, maxy) in let (x2, y2) = Pdftransform.transform_matrix transform (minx, maxy) in @@ -145,13 +145,13 @@ let transform_rect transform rect = let maxy = fmax (fmax y0 y1) (fmax y2 y3) in Pdf.Array [Pdf.Real minx; Pdf.Real miny; Pdf.Real maxx; Pdf.Real maxy] -let transform_quadpoint_single transform = function +let transform_quadpoint_single pdf transform = function | [x1; y1; x2; y2; x3; y3; x4; y4] -> let x1, y1, x2, y2, x3, y3, x4, y4 = - Pdf.getnum x1, Pdf.getnum y1, - Pdf.getnum x2, Pdf.getnum y2, - Pdf.getnum x3, Pdf.getnum y3, - Pdf.getnum x4, Pdf.getnum y4 + Pdf.getnum pdf x1, Pdf.getnum pdf y1, + Pdf.getnum pdf x2, Pdf.getnum pdf y2, + Pdf.getnum pdf x3, Pdf.getnum pdf y3, + Pdf.getnum pdf x4, Pdf.getnum pdf y4 in let (x1, y1) = Pdftransform.transform_matrix transform (x1, y1) in let (x2, y2) = Pdftransform.transform_matrix transform (x2, y2) in @@ -162,9 +162,9 @@ let transform_quadpoint_single transform = function Printf.eprintf "Malformed /QuadPoints format: must be a multiple of 8 entries\n"; qp -let transform_quadpoints transform = function +let transform_quadpoints pdf transform = function | Pdf.Array qps -> - Pdf.Array (flatten (map (transform_quadpoint_single transform) (splitinto 8 qps))) + Pdf.Array (flatten (map (transform_quadpoint_single pdf transform) (splitinto 8 qps))) | qp -> Printf.eprintf "Unknown or malformed /QuadPoints format %s\n" (Pdfwrite.string_of_pdf qp); qp @@ -180,12 +180,12 @@ let transform_annotations pdf transform rest = let annot = Pdf.lookup_obj pdf i in let rect' = match Pdf.lookup_direct pdf "/Rect" annot with - | Some rect -> transform_rect transform rect + | Some rect -> transform_rect pdf transform rect | None -> raise (Pdf.PDFError "transform_annotations: no rect") in let quadpoints' = match Pdf.lookup_direct pdf "/QuadPoints" annot with - | Some qp -> Some (transform_quadpoints transform qp) + | Some qp -> Some (transform_quadpoints pdf transform qp) | None -> None in let annot = Pdf.add_dict_entry annot "/Rect" rect' in