From 0c806b21cdf8688a2e02d365e175826e34ce8f8f Mon Sep 17 00:00:00 2001 From: John Whitington Date: Mon, 5 Aug 2019 12:35:07 +0100 Subject: [PATCH] testing --- cpdfcommand.ml | 25 +++++++++++++++---------- cpdfmanual.pdf | Bin 237971 -> 238004 bytes cpdfmanual.tex | 17 +++++++++-------- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/cpdfcommand.ml b/cpdfcommand.ml index 39a9bd2..a5578d8 100644 --- a/cpdfcommand.ml +++ b/cpdfcommand.ml @@ -1029,9 +1029,9 @@ let parse_rectangle pdf s = try match parse_units_string pdf emptypage s with | [x; y; w; h] -> x, y, w, h - | _ -> error "Bad rectangle specification" + | _ -> error ("Bad rectangle specification " ^ s) with - _ -> error "Bad rectangle specification" + _ -> error ("Bad rectangle specification " ^ s) let parse_rectangles pdf s = try @@ -1040,18 +1040,18 @@ let parse_rectangles pdf s = List.map (function | [x; y; w; h] -> (x, y, w, h) - | _ -> error "Bad rectangle specification") + | _ -> error ("Bad rectangle specification " ^ s)) groups with - _ -> error "Bad rectangle specification" + _ -> error ("Bad rectangle specification " ^ s) let parse_coordinate pdf s = try match parse_units_string pdf emptypage s with | [dx; dy] -> dx, dy - | _ -> error "Bad coordinate specification" + | _ -> error ("Bad coordinate specification " ^ s) with - _ -> error "Bad coordinate specification" + _ -> error ("Bad coordinate specification " ^ s) let parse_coordinates pdf s = try @@ -1060,18 +1060,18 @@ let parse_coordinates pdf s = List.map (function | [dx; dy] -> (dx, dy) - | _ -> error "Bad coordinate specification") + | _ -> error ("Bad coordinate specification " ^ s)) groups with - _ -> error "Bad coordinate specification" + _ -> error ("Bad coordinate specification " ^ s) let parse_single_number pdf s = try match parse_units_string pdf emptypage s with | [x] -> x - | _ -> error "Bad number Argument" + | _ -> error ("Bad number argument " ^ s) with - _ -> error "Bad number argument" + _ -> error ("Bad number argument " ^ s) (* Setting operations *) let setcrop s = @@ -4654,6 +4654,11 @@ let go_withargv argv = args.path_to_ghostscript <- gslocation; ignore (gs_malformed_force inputfilename outputfilename); exit 0 + | [|_; inputfilename; "-gs"; gslocation; "-gs-malformed-force"; "-o"; outputfilename; "-gs-quiet"|] -> + args.path_to_ghostscript <- gslocation; + args.gs_quiet <- true; + ignore (gs_malformed_force inputfilename outputfilename); + exit 0 | _ -> Hashtbl.clear filenames; if demo then diff --git a/cpdfmanual.pdf b/cpdfmanual.pdf index 9389ee7d2eef85442a6aeb10ebe9205255b643eb..38a2235b9b50099d314afd5d7dd65fff507a4864 100644 GIT binary patch delta 8371 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 diff --git a/cpdfmanual.tex b/cpdfmanual.tex index e5e9304..e5e5dce 100644 --- a/cpdfmanual.tex +++ b/cpdfmanual.tex @@ -215,8 +215,8 @@ after any range). The document will \textit{not} be re-encrypted upon writing. example: \begin{framed} -\noindent\small\verb!cpdf in.pdf user=charles -info!\\ -\noindent\small\verb!cpdf in.pdf owner=fred reverse -o out.pdf! +\small\verb!cpdf in.pdf user=charles -info!\\ +\indent\small\verb!cpdf in.pdf owner=fred reverse -o out.pdf! \end{framed} \noindent To re-encrypt the file with its existing encryption upon writing, which is required if only the user password was supplied, but allowed in any case, add the \texttt{-recrypt} option: @@ -436,7 +436,7 @@ Grossly malformed files will be reconstructed. The reconstruction progress is shown on \verb!stderr! (Standard Error): \begin{framed} -\noindent\small\verb!./cpdf in.pdf -o out.pdf!\\ +\noindent\small\verb!$cpdf in.pdf -o out.pdf!\\ \small\verb!couldn't lex object number!\\ \small\verb!Attempting to reconstruct the malformed pdf in.pdf...!\\ \small\verb!Read 5530 objects!\\ @@ -446,16 +446,17 @@ progress is shown on \verb!stderr! (Standard Error): \noindent If \texttt{cpdf} cannot reconstruct a malformed file, it is able to use the \texttt{gs} program to try to reconstruct the program, if you have it installed. For example, if \texttt{gs} is installed and in your path, we might try: \begin{framed} -\noindent\small\verb!./cpdf -gs gs -gs-malformed in.pdf -o out.pdf!\end{framed} +\noindent\small\verb!cpdf -gs gs -gs-malformed in.pdf -o out.pdf!\end{framed} -\noindent If the malformity lies inside an individual page of the PDF, rather than in its gross structure, cpdf may appear to succeed in reconstruction, only to fail when processing a page (e.g when adding text). To force the use of \texttt{gs} to pre-process such files so cpdf cannot fail on them, use \texttt{-gs-malformed-force}: +\noindent If the malformity lies inside an individual page of the PDF, rather than in its gross structure, cpdf may appear to succeed in reconstruction, only to fail when processing a page (e.g when adding text). To suppress the output of \texttt{gs} use the \texttt{-gs-quiet} option. + +To force the use of \texttt{gs} to pre-process such files so cpdf cannot fail on them, use \texttt{-gs\--malformed\--force}: \begin{framed} -\noindent\small\verb!./cpdf -gs gs -gs-malformed-force in.pdf -o out.pdf!\end{framed} +\noindent\small\verb!cpdf -gs gs -gs-malformed-force in.pdf -o out.pdf [-gs-quiet]!\end{framed} \noindent The command line for \texttt{-gs-malformed-force} must be of \textit{precisely} this form. -To suppress the output of \texttt{gs} use the \texttt{-gs-quiet} option. Sometimes files can be technically well-formed but use inefficient PDF constructs. If you are sure the input files you are using are @@ -565,7 +566,7 @@ Cpdf can build a new PDF file, given a number of pages and a paper size. The def \begin{framed} \small\verb?cpdf -create-pdf -create-pdf-pages 20?\\ - \small\verb? -create-pdf-papersize usletter -o out.pdf? + \noindent\small\verb? -create-pdf-papersize usletterportrait -o out.pdf? \end{framed} \noindent The standard paper sizes are listed in Section \ref{papersizes}, or you may specify the width and height directly, as described in the same Chapter.