mirror of
https://github.com/johnwhitington/cpdf-source.git
synced 2025-06-05 22:09:39 +02:00
removal of old things
This commit is contained in:
@ -147,7 +147,6 @@ type op =
|
|||||||
| RemoveArt
|
| RemoveArt
|
||||||
| RemoveTrim
|
| RemoveTrim
|
||||||
| RemoveBleed
|
| RemoveBleed
|
||||||
| CopyCropBoxToMediaBox
|
|
||||||
| CopyBox
|
| CopyBox
|
||||||
| MediaBox
|
| MediaBox
|
||||||
| HardBox of string
|
| HardBox of string
|
||||||
@ -188,7 +187,6 @@ type op =
|
|||||||
| ExtractImages
|
| ExtractImages
|
||||||
| ImageResolution of float
|
| ImageResolution of float
|
||||||
| MissingFonts
|
| MissingFonts
|
||||||
| RemoveUnusedResources
|
|
||||||
| ExtractFontFile
|
| ExtractFontFile
|
||||||
| ExtractText
|
| ExtractText
|
||||||
| OpenAtPage of string
|
| OpenAtPage of string
|
||||||
@ -275,7 +273,6 @@ let string_of_op = function
|
|||||||
| Decompress -> "Decompress"
|
| Decompress -> "Decompress"
|
||||||
| Crop -> "Crop"
|
| Crop -> "Crop"
|
||||||
| RemoveCrop -> "RemoveCrop"
|
| RemoveCrop -> "RemoveCrop"
|
||||||
| CopyCropBoxToMediaBox -> "CopyCropBoxToMediaBox"
|
|
||||||
| CopyBox -> "CopyBox"
|
| CopyBox -> "CopyBox"
|
||||||
| MediaBox -> "MediaBox"
|
| MediaBox -> "MediaBox"
|
||||||
| HardBox _ -> "HardBox"
|
| HardBox _ -> "HardBox"
|
||||||
@ -316,7 +313,6 @@ let string_of_op = function
|
|||||||
| ExtractImages -> "ExtractImages"
|
| ExtractImages -> "ExtractImages"
|
||||||
| ImageResolution _ -> "ImageResolution"
|
| ImageResolution _ -> "ImageResolution"
|
||||||
| MissingFonts -> "MissingFonts"
|
| MissingFonts -> "MissingFonts"
|
||||||
| RemoveUnusedResources -> "RemoveUnusedResources"
|
|
||||||
| ExtractFontFile -> "ExtractFontFile"
|
| ExtractFontFile -> "ExtractFontFile"
|
||||||
| ExtractText -> "ExtractText"
|
| ExtractText -> "ExtractText"
|
||||||
| OpenAtPage _ -> "OpenAtPage"
|
| OpenAtPage _ -> "OpenAtPage"
|
||||||
@ -820,7 +816,7 @@ let banned banlist = function
|
|||||||
| ListAttachedFiles | ListAnnotations
|
| ListAttachedFiles | ListAnnotations
|
||||||
| ListBookmarks | ImageResolution _ | MissingFonts
|
| ListBookmarks | ImageResolution _ | MissingFonts
|
||||||
| PrintPageLabels | Clean | Compress | Decompress
|
| PrintPageLabels | Clean | Compress | Decompress
|
||||||
| RemoveUnusedResources | ChangeId | CopyId _ | ListSpotColours | Version
|
| ChangeId | CopyId _ | ListSpotColours | Version
|
||||||
| DumpAttachedFiles | RemoveMetadata | EmbedMissingFonts | BookmarksOpenToLevel _ | CreatePDF
|
| DumpAttachedFiles | RemoveMetadata | EmbedMissingFonts | BookmarksOpenToLevel _ | CreatePDF
|
||||||
| SetPageMode _ | HideToolbar _ | HideMenubar _ | HideWindowUI _
|
| SetPageMode _ | HideToolbar _ | HideMenubar _ | HideWindowUI _
|
||||||
| FitWindow _ | CenterWindow _ | DisplayDocTitle _
|
| FitWindow _ | CenterWindow _ | DisplayDocTitle _
|
||||||
@ -842,7 +838,7 @@ let banned banlist = function
|
|||||||
| TwoUp|TwoUpStack|RemoveBookmarks|AddRectangle|RemoveText|
|
| TwoUp|TwoUpStack|RemoveBookmarks|AddRectangle|RemoveText|
|
||||||
Draft|Shift|Scale|ScaleToFit|RemoveAttachedFiles|
|
Draft|Shift|Scale|ScaleToFit|RemoveAttachedFiles|
|
||||||
RemoveAnnotations|RemoveFonts|Crop|RemoveCrop|Trim|RemoveTrim|Bleed|RemoveBleed|Art|RemoveArt|
|
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 _|
|
BlackText|BlackLines|BlackFills|CopyFont _|StampOn _|StampUnder _|StampAsXObject _|
|
||||||
AddText _|ScaleContents _|AttachFile _|CopyAnnotations _| ThinLines _ | RemoveClipping | RemoveAllText
|
AddText _|ScaleContents _|AttachFile _|CopyAnnotations _| ThinLines _ | RemoveClipping | RemoveAllText
|
||||||
| Prepend _ | Postpend _ | Draw ->
|
| Prepend _ | Postpend _ | Draw ->
|
||||||
@ -2866,19 +2862,15 @@ and specs =
|
|||||||
("-draw-png", Arg.String addpng, " Load a PNG from file and name it");
|
("-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");
|
("-image", Arg.String addimage, " Draw an image which has already been loaded");
|
||||||
(* These items are undocumented *)
|
(* 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", Arg.Unit setdebug, "");
|
||||||
("-debug-crypt", Arg.Unit setdebugcrypt, "");
|
("-debug-crypt", Arg.Unit setdebugcrypt, "");
|
||||||
("-debug-force", Arg.Unit setdebugforce, "");
|
("-debug-force", Arg.Unit setdebugforce, "");
|
||||||
("-debug-malformed", Arg.Set Pdfread.debug_always_treat_malformed, "");
|
("-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", Arg.Unit (setop ExtractText), "");
|
||||||
("-extract-text-font-size", Arg.Float setextracttextfontsize, "");
|
("-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 =
|
and usage_msg =
|
||||||
@ -3581,14 +3573,6 @@ let go () =
|
|||||||
error "Must specify one output and at least one input"
|
error "Must specify one output and at least one input"
|
||||||
| _ -> assert false
|
| _ -> assert false
|
||||||
end
|
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) ->
|
| Some (CopyFont fromfile) ->
|
||||||
begin match args.inputs, args.out with
|
begin match args.inputs, args.out with
|
||||||
| (_, pagespec, u, o, _, _)::_, _ ->
|
| (_, pagespec, u, o, _, _)::_, _ ->
|
||||||
@ -3807,15 +3791,6 @@ let go () =
|
|||||||
write_pdf false pdf
|
write_pdf false pdf
|
||||||
| _ -> error "remove-crop: bad command line"
|
| _ -> error "remove-crop: bad command line"
|
||||||
end
|
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 _) ->
|
| Some (Rotate _) | Some (Rotateby _) ->
|
||||||
begin match args.inputs, args.out with
|
begin match args.inputs, args.out with
|
||||||
| (_, pagespec, _, _, _, _)::_, _ ->
|
| (_, pagespec, _, _, _, _)::_, _ ->
|
||||||
|
@ -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 impose ~x ~y ~fit ~columns ~rtl ~btt ~center ~margin ~spacing ~linewidth ~fast pdf =
|
||||||
let endpage = Pdfpage.endpage pdf in
|
let endpage = Pdfpage.endpage pdf in
|
||||||
let pagenums = ilist 1 endpage 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.remove_cropping_pdf pdf pagenums in
|
||||||
let pdf = Cpdfpage.upright pagenums pdf in
|
let pdf = Cpdfpage.upright pagenums pdf in
|
||||||
let pdf = add_border linewidth ~fast pdf in
|
let pdf = add_border linewidth ~fast pdf in
|
||||||
|
10
cpdfpage.ml
10
cpdfpage.ml
@ -325,16 +325,6 @@ let set_mediabox xywhlist pdf range =
|
|||||||
in
|
in
|
||||||
process_pages (Pdfpage.ppstub crop_page) pdf range
|
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_pdf pdf range =
|
||||||
let remove_cropping_page _ page =
|
let remove_cropping_page _ page =
|
||||||
{page with
|
{page with
|
||||||
|
@ -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. *)
|
(** [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 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. *)
|
(** Remove any cropping from the given pages. *)
|
||||||
val remove_cropping_pdf : Pdf.t -> int list -> Pdf.t
|
val remove_cropping_pdf : Pdf.t -> int list -> Pdf.t
|
||||||
|
|
||||||
|
18
cpdftweak.ml
18
cpdftweak.ml
@ -307,21 +307,3 @@ let remove_clipping pdf range =
|
|||||||
{page with Pdfpage.content = content'}
|
{page with Pdfpage.content = content'}
|
||||||
in
|
in
|
||||||
Cpdfpage.process_pages (Pdfpage.ppstub remove_clipping_page) pdf range
|
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))
|
|
||||||
|
@ -29,6 +29,3 @@ val get_dict_entries : utf8:bool -> Pdf.t -> string -> Pdfio.bytes
|
|||||||
|
|
||||||
(** Remove clipping. *)
|
(** Remove clipping. *)
|
||||||
val remove_clipping : Pdf.t -> int list -> Pdf.t
|
val remove_clipping : Pdf.t -> int list -> Pdf.t
|
||||||
|
|
||||||
(** Remove unused resources. *)
|
|
||||||
val remove_unused_resources : Pdf.t -> Pdf.t
|
|
||||||
|
Reference in New Issue
Block a user