diff --git a/cpdfcommand.ml b/cpdfcommand.ml index 0fd407e..0b7f579 100644 --- a/cpdfcommand.ml +++ b/cpdfcommand.ml @@ -147,7 +147,6 @@ type op = | RemoveArt | RemoveTrim | RemoveBleed - | CopyCropBoxToMediaBox | CopyBox | MediaBox | HardBox of string @@ -188,7 +187,6 @@ type op = | ExtractImages | ImageResolution of float | MissingFonts - | RemoveUnusedResources | ExtractFontFile | ExtractText | OpenAtPage of string @@ -275,7 +273,6 @@ let string_of_op = function | Decompress -> "Decompress" | Crop -> "Crop" | RemoveCrop -> "RemoveCrop" - | CopyCropBoxToMediaBox -> "CopyCropBoxToMediaBox" | CopyBox -> "CopyBox" | MediaBox -> "MediaBox" | HardBox _ -> "HardBox" @@ -316,7 +313,6 @@ let string_of_op = function | ExtractImages -> "ExtractImages" | ImageResolution _ -> "ImageResolution" | MissingFonts -> "MissingFonts" - | RemoveUnusedResources -> "RemoveUnusedResources" | ExtractFontFile -> "ExtractFontFile" | ExtractText -> "ExtractText" | OpenAtPage _ -> "OpenAtPage" @@ -820,7 +816,7 @@ let banned banlist = function | ListAttachedFiles | ListAnnotations | ListBookmarks | ImageResolution _ | MissingFonts | PrintPageLabels | Clean | Compress | Decompress - | RemoveUnusedResources | ChangeId | CopyId _ | ListSpotColours | Version + | ChangeId | CopyId _ | ListSpotColours | Version | DumpAttachedFiles | RemoveMetadata | EmbedMissingFonts | BookmarksOpenToLevel _ | CreatePDF | SetPageMode _ | HideToolbar _ | HideMenubar _ | HideWindowUI _ | FitWindow _ | CenterWindow _ | DisplayDocTitle _ @@ -842,7 +838,7 @@ let banned banlist = function | TwoUp|TwoUpStack|RemoveBookmarks|AddRectangle|RemoveText| Draft|Shift|Scale|ScaleToFit|RemoveAttachedFiles| RemoveAnnotations|RemoveFonts|Crop|RemoveCrop|Trim|RemoveTrim|Bleed|RemoveBleed|Art|RemoveArt| - CopyCropBoxToMediaBox|CopyBox|MediaBox|HardBox _|SetTrapped|SetAnnotations _|SetUntrapped|Presentation| + CopyBox|MediaBox|HardBox _|SetTrapped|SetAnnotations _|SetUntrapped|Presentation| BlackText|BlackLines|BlackFills|CopyFont _|StampOn _|StampUnder _|StampAsXObject _| AddText _|ScaleContents _|AttachFile _|CopyAnnotations _| ThinLines _ | RemoveClipping | RemoveAllText | Prepend _ | Postpend _ | Draw -> @@ -2866,19 +2862,15 @@ and specs = ("-draw-png", Arg.String addpng, " Load a PNG from file and name it"); ("-image", Arg.String addimage, " Draw an image which has already been loaded"); (* These items are undocumented *) - ("-remove-unused-resources", Arg.Unit (setop RemoveUnusedResources), ""); - ("-stay-on-error", Arg.Unit setstayonerror, ""); - ("-extract-fontfile", Arg.Unit (setop ExtractFontFile), ""); ("-debug", Arg.Unit setdebug, ""); ("-debug-crypt", Arg.Unit setdebugcrypt, ""); ("-debug-force", Arg.Unit setdebugforce, ""); ("-debug-malformed", Arg.Set Pdfread.debug_always_treat_malformed, ""); - ("-fix-prince", Arg.Unit (setop RemoveUnusedResources), ""); + ("-stay-on-error", Arg.Unit setstayonerror, ""); + (* These items are unfinished *) + ("-extract-fontfile", Arg.Unit (setop ExtractFontFile), ""); ("-extract-text", Arg.Unit (setop ExtractText), ""); ("-extract-text-font-size", Arg.Float setextracttextfontsize, ""); - ("-copy-cropbox-to-mediabox", - Arg.Unit (setop CopyCropBoxToMediaBox), - ""); (* Undocumented now, since /frombox, /tobox now used *) ] and usage_msg = @@ -3581,14 +3573,6 @@ let go () = error "Must specify one output and at least one input" | _ -> assert false end - | Some RemoveUnusedResources -> - begin match args.inputs, args.out with - | _::_, _ -> - let pdf = get_single_pdf (Some RemoveUnusedResources) false in - let outpdf = Cpdftweak.remove_unused_resources pdf in - write_pdf true outpdf - | _ -> error "RemoveUnusedResources: bad command line" - end | Some (CopyFont fromfile) -> begin match args.inputs, args.out with | (_, pagespec, u, o, _, _)::_, _ -> @@ -3807,15 +3791,6 @@ let go () = write_pdf false pdf | _ -> error "remove-crop: bad command line" end - | Some CopyCropBoxToMediaBox -> - begin match args.inputs, args.out with - | (_, pagespec, _, _, _, _)::_, _ -> - let pdf = get_single_pdf (Some CopyCropBoxToMediaBox) false in - let range = parse_pagespec_allow_empty pdf pagespec in - let pdf = Cpdfpage.copy_cropbox_to_mediabox pdf range in - write_pdf false pdf - | _ -> error "remove-crop: bad command line" - end | Some (Rotate _) | Some (Rotateby _) -> begin match args.inputs, args.out with | (_, pagespec, _, _, _, _)::_, _ -> diff --git a/cpdfimpose.ml b/cpdfimpose.ml index 415c459..1a3531f 100644 --- a/cpdfimpose.ml +++ b/cpdfimpose.ml @@ -193,7 +193,7 @@ let add_border linewidth ~fast pdf = let impose ~x ~y ~fit ~columns ~rtl ~btt ~center ~margin ~spacing ~linewidth ~fast pdf = let endpage = Pdfpage.endpage pdf in let pagenums = ilist 1 endpage in - let pdf = Cpdfpage.copy_cropbox_to_mediabox pdf pagenums in + let pdf = Cpdfpage.copy_box "/CropBox" "/MediaBox" true pdf pagenums in let pdf = Cpdfpage.remove_cropping_pdf pdf pagenums in let pdf = Cpdfpage.upright pagenums pdf in let pdf = add_border linewidth ~fast pdf in diff --git a/cpdfpage.ml b/cpdfpage.ml index cd09d2d..5f6b265 100644 --- a/cpdfpage.ml +++ b/cpdfpage.ml @@ -325,16 +325,6 @@ let set_mediabox xywhlist pdf range = in process_pages (Pdfpage.ppstub crop_page) pdf range -(* If a cropbox exists, make it the mediabox. If not, change nothing. *) -let copy_cropbox_to_mediabox pdf range = - process_pages - (Pdfpage.ppstub (fun _ page -> - match Pdf.lookup_direct pdf "/CropBox" page.Pdfpage.rest with - | Some pdfobject -> {page with Pdfpage.mediabox = Pdf.direct pdf pdfobject} - | None -> page)) - pdf - range - let remove_cropping_pdf pdf range = let remove_cropping_page _ page = {page with diff --git a/cpdfpage.mli b/cpdfpage.mli index 368dbe9..ea01259 100644 --- a/cpdfpage.mli +++ b/cpdfpage.mli @@ -43,8 +43,6 @@ val scale_contents : ?fast:bool -> Cpdfposition.position -> float -> Pdf.t -> in (** [set_mediabox xywhlist pdf range] sets the media box on the given pages. *) val set_mediabox : (float * float * float * float) list -> Pdf.t -> int list -> Pdf.t -val copy_cropbox_to_mediabox : Pdf.t -> int list -> Pdf.t - (** Remove any cropping from the given pages. *) val remove_cropping_pdf : Pdf.t -> int list -> Pdf.t diff --git a/cpdftweak.ml b/cpdftweak.ml index 8f04104..053be62 100644 --- a/cpdftweak.ml +++ b/cpdftweak.ml @@ -307,21 +307,3 @@ let remove_clipping pdf range = {page with Pdfpage.content = content'} in Cpdfpage.process_pages (Pdfpage.ppstub remove_clipping_page) pdf range - -let remove_unused_resources_page pdf n page = - let xobjects, all_names = - match Pdf.lookup_direct pdf "/XObject" page.Pdfpage.resources with - | Some (Pdf.Dictionary d) -> Pdf.Dictionary d, map fst d - | _ -> Pdf.Dictionary [], [] - in - let names_to_keep = - option_map - (function Pdfops.Op_Do n -> Some n | _ -> None) - (Pdfops.parse_operators pdf page.Pdfpage.resources page.Pdfpage.content) - in - let names_to_remove = lose (mem' names_to_keep) all_names in - let xobjdict = fold_left (Pdf.remove_dict_entry) xobjects names_to_remove in - {page with Pdfpage.resources = Pdf.add_dict_entry page.Pdfpage.resources "/XObject" xobjdict} - -let remove_unused_resources pdf = - Cpdfpage.process_pages (Pdfpage.ppstub (remove_unused_resources_page pdf)) pdf (ilist 1 (Pdfpage.endpage pdf)) diff --git a/cpdftweak.mli b/cpdftweak.mli index 5178645..bd32c0d 100644 --- a/cpdftweak.mli +++ b/cpdftweak.mli @@ -29,6 +29,3 @@ val get_dict_entries : utf8:bool -> Pdf.t -> string -> Pdfio.bytes (** Remove clipping. *) val remove_clipping : Pdf.t -> int list -> Pdf.t - -(** Remove unused resources. *) -val remove_unused_resources : Pdf.t -> Pdf.t