From 5b8d928c622b7d9b0713391489a56854b7861b50 Mon Sep 17 00:00:00 2001 From: John Whitington Date: Mon, 15 Sep 2014 19:12:04 +0100 Subject: [PATCH] Began support for portrait and landscape-only page specifications --- cpdf.ml | 53 +++++++++++++++++++++++++++++++++++++++---------- cpdfcommand.ml | 2 +- cpdfmanual.pdf | Bin 196964 -> 193659 bytes 3 files changed, 44 insertions(+), 11 deletions(-) diff --git a/cpdf.ml b/cpdf.ml index f699c79..fd69696 100644 --- a/cpdf.ml +++ b/cpdf.ml @@ -231,7 +231,23 @@ let rec splitat_commas toks = | some, [] -> [some] | _::_ as before, _::rest -> before::splitat_commas rest -let rec mk_numbers endpage = function +let is_dimension comparison {Pdfpage.mediabox = box} = + let minx, miny, maxx, maxy = Pdf.parse_rectangle box in + comparison (maxx -. minx) (maxy -. miny) + +let select_dimensions comparison pdf candidates = + let pages = Pdfpage.pages_of_pagetree pdf in + option_map2 + (fun pagenum page -> + if is_dimension comparison page then Some pagenum else None) + (keep (mem' candidates) (indx pages)) + pages + +let select_portrait = select_dimensions ( < ) + +let select_landscape = select_dimensions ( > ) + +let rec mk_numbers pdf endpage = function | [Pdfgenlex.LexInt n] -> [n] | [Pdfgenlex.LexName "end"] -> [endpage] | [Pdfgenlex.LexInt n; Pdfgenlex.LexName "-"; Pdfgenlex.LexInt n'] -> @@ -248,6 +264,10 @@ let rec mk_numbers endpage = function [endpage] | [Pdfgenlex.LexName "even"] -> drop_odds (ilist 1 endpage) + | [Pdfgenlex.LexName "portrait"] -> + select_portrait pdf (ilist 1 endpage) + | [Pdfgenlex.LexName "landscape"] -> + select_landscape pdf (ilist 1 endpage) | [Pdfgenlex.LexName "odd"] -> really_drop_evens (ilist 1 endpage) | [Pdfgenlex.LexName "all"] -> @@ -257,7 +277,7 @@ let rec mk_numbers endpage = function | toks -> let ranges = splitat_commas toks in if ranges = [toks] then raise PageSpecBadSyntax else - flatten (map (mk_numbers endpage) ranges) + flatten (map (mk_numbers pdf endpage) ranges) (* Space dashes and commas *) let rec add_spaces = function @@ -273,17 +293,30 @@ let fixup_negatives endpage = function Pdfgenlex.LexInt (endpage + 1 + ~-(int_of_string (implode (tl (explode s))))) | x -> x -let parse_pagespec_inner endpage spec = +let parse_pagespec_inner endpage pdf spec = let spec = space_string spec in if endpage < 1 then raise (Pdf.PDFError "This PDF file has no pages and is therefore malformed") else let numbers = try match rev (explode spec) with - | ['n'; 'e'; 'v'; 'e'] -> keep even (ilist 1 endpage) - | ['d'; 'd'; 'o'] -> keep odd (ilist 1 endpage) - | 'n'::'e'::'v'::'e'::more -> keep even (mk_numbers endpage (Pdfgenlex.lex_string (implode (rev more)))) - | 'd'::'d'::'o'::more -> keep odd (mk_numbers endpage (Pdfgenlex.lex_string (implode (rev more)))) - | _ -> mk_numbers endpage (map (fixup_negatives endpage) (Pdfgenlex.lex_string spec)) + | ['n'; 'e'; 'v'; 'e'] -> + keep even (ilist 1 endpage) + | ['d'; 'd'; 'o'] -> + keep odd (ilist 1 endpage) + | ['t'; 'i'; 'a'; 'r'; 't'; 'r'; 'o'; 'p'] -> + select_portrait pdf (ilist 1 endpage) + | ['e'; 'p'; 'a'; 'c'; 's'; 'd'; 'n'; 'a'; 'l'] -> + select_landscape pdf (ilist 1 endpage) + | 't'::'i'::'a'::'r'::'t'::'r'::'o'::'p'::more -> + select_portrait pdf (mk_numbers pdf endpage (Pdfgenlex.lex_string (implode (rev more)))) + | 'e'::'p'::'a'::'c'::'s'::'d'::'n'::'a'::'l'::more -> + select_landscape pdf (mk_numbers pdf endpage (Pdfgenlex.lex_string (implode (rev more)))) + | 'd'::'d'::'o'::more -> + keep odd (mk_numbers pdf endpage (Pdfgenlex.lex_string (implode (rev more)))) + | 'n'::'e'::'v'::'e'::more -> + keep even (mk_numbers pdf endpage (Pdfgenlex.lex_string (implode (rev more)))) + | _ -> + mk_numbers pdf endpage (map (fixup_negatives endpage) (Pdfgenlex.lex_string spec)) with e -> raise PageSpecBadSyntax in @@ -295,7 +328,7 @@ let parse_pagespec_inner endpage spec = numbers let parse_pagespec pdf spec = - try parse_pagespec_inner (Pdfpage.endpage pdf) spec with + try parse_pagespec_inner (Pdfpage.endpage pdf) pdf spec with | PageSpecUnknownPage n -> raise (Pdf.PDFError ("Page " ^ string_of_int n ^ " does not exist.")) | PageSpecWouldBeNoPages -> @@ -313,7 +346,7 @@ endpage of the PDF (which we don't have). Pass 100 as the endpage, doubling on page range exception, bailng out above 500000. *) let rec validate_pagespec_inner n spec = try - ignore (parse_pagespec_inner n spec); true + ignore (parse_pagespec_inner n (Pdf.empty ()) spec); true with | PageSpecUnknownPage _ -> if n < 500000 then validate_pagespec_inner (n * 2) spec else false | PageSpecBadSyntax | _ -> false diff --git a/cpdfcommand.ml b/cpdfcommand.ml index 256a0d7..677b615 100644 --- a/cpdfcommand.ml +++ b/cpdfcommand.ml @@ -2958,7 +2958,7 @@ let go () = | Some Compress -> let pdf = get_single_pdf (Some Compress) false in if args.remove_duplicate_streams then - Pdfmerge.remove_duplicate_fonts pdf; (* Will eventually do more! *) + Pdfmerge.remove_duplicate_fonts pdf; write_pdf false (Cpdf.recompress_pdf pdf) | Some RemoveCrop -> begin match args.inputs, args.out with diff --git a/cpdfmanual.pdf b/cpdfmanual.pdf index 1253f05629f328aa974299b034720d377453c962..15680e252ec1a0324f3c82de1e0d507625d2836d 100644 GIT binary patch delta 21255 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 Kb_;wxC;b;=@5y5T delta 24412 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