Out of all the possible file formats out there, translating a PDF document is usually the worst-case scenario. So here is a simple way to unlock those secured PDFs to get access to the text. Ghostscript is a PostScript and PDF language interpreter and previewer that is commonly found pre-installed on most major Linux distributions. Suppose you have an entire directory full of locked PDF files you want to unlock. Here is a quick little Bash script you can do on the Linux command line to unlock all the PDFs at once. If you have a Linux computer or virtual machine, it just takes one command to create an unlocked copy of the PDF.
|Published (Last):||27 April 2019|
|PDF File Size:||11.10 Mb|
|ePub File Size:||15.10 Mb|
|Price:||Free* [*Free Regsitration Required]|
For other information, see the Ghostscript overview and, if necessary, how to install Ghostscript. This document describes how to use the command line Ghostscript client. Ghostscript is also used as a general engine inside other applications for viewing files for example. Please refer to the documentation for those applications for using Ghostscript in other contexts. The command line to invoke Ghostscript is essentially the same on all systems, although the name of the executable program itself may differ among systems.
For instance, to invoke Ghostscript on unix-like systems type:. There are other utility scripts besides ps2pdf , including pdf2ps , ps2epsi , pdf2dsc , ps2ascii , ps2ps and ps2ps2. These just call Ghostscript with the appropriate if complicated set of options. You can use the 'ps2' set with eps files. The interpreter reads and executes the files in sequence, using the method described under " File searching " to find them.
The interpreter runs in interactive mode by default. After processing the files given on the command line if any it reads further lines of PostScript language commands from the primary input stream, normally the keyboard, interpreting each line separately. To quit the interpreter, type " quit ".
The interpreter also quits gracefully if it encounters end-of-file or control-C. The interpreter recognizes many options.
An option may appear anywhere in the command line, and applies to all files named after it on the line. The most important are described in detail here.
Please see the reference sections on options and devices for a more complete listing. You can get a brief help message by invoking Ghostscript with the -h or -? On Windows, the two digit number indicates the word length of the system for which the binary was built so gswin And the "c" suffix indicates a Windows console based binary note that the "display device" window will still appear. Selecting an output device Ghostscript has a notion of 'output devices' which handle saving or displaying the results in a particular format.
Ghostscript comes with a diverse variety of such devices supporting vector and raster file output, screen display, driving various printers and communicating with other applications. If this option isn't given the default device usually a display device is used. For complete description of the devices distributed with Ghostscript and their options, please see the devices section of the documentation. Note that this switch must precede the name of the first input file, and only its first use has any effect.
You can set the output device and process a file from the interactive prompt as well:. All output then goes to the Epson printer instead of the display until you do something to change devices. You can switch devices at any time by using the selectdevice procedure, for instance like one of these:. Some printers can print at several different resolutions, letting you balance resolution against printing speed. To select the resolution on such a printer, use the -r switch:. Where the two resolutions are same, as is the common case, you can simply use -r res.
The -r option is also useful for controlling the density of pixels when rasterizing to an image file. It is used this way in the examples at the beginning of this document. Ghostscript also allows you to control where it sends its output. With a display device this isn't necessary as the device handles presenting the output on screen internally. Some specialized printer drivers operate this way as well, but most devices are general and need to be directed to a particular file or printer.
For instance, to direct all output into the file ABC. On Unix and VMS systems it normally goes to a temporary file which is sent to the printer in a separate step. When using Ghostscript as a file rasterizer converting PostScript or PDF to a raster image format you will of course want to specify an appropriately named file for the output. Ghostscript also accepts the special filename ' - ' which indicates the output should be written to standard output the command shell.
Note, some devices e. For example, in order to create two PDF files from a single invocation of ghostscript the following can be used:. Specifying a single output file works fine for printing and rasterizing figures, but sometimes you want images of each page of a multi-page document. You can tell Ghostscript to put each page of output in a series of similarly named files.
The format specifier is of a form similar to the C printf format. The general form supported is:. For more information, please refer to documentation on the C printf format specifications. Some examples are:. Note, however that the one page per file feature may not supported by all devices. Also, since some devices write output files when opened, there may be an extra blank page written pdfwrite, ps2write, eps2write, pxlmono, pxlcolor, As noted above, when using MS Windows console command.
As a convenient shorthand you can use the -o option followed by the output file specification as discussed above.
This is intended to be a quick way to invoke ghostscript to convert one or more input files. Ghostscript is distributed configured to use U. There are two ways to select other paper sizes from the command line:. Individual documents can and often do specify a paper size, which takes precedence over the default size. The default set of paper sizes will be included in the currentpagedevice in the InputAttributes dictionary with each paper size as one of the entries.
The last entry in the dictionary which has numeric keys is a non-standard Ghostscript extension type of PageSize where the array has four elements rather than the standard two elements. This four element array represents a page size range where the first two elements are the lower bound of the range and the second two are the upper bound.
By default these are [0, 0] for the lower bound and [16 fffff, 16 fffff] for the upper bound. For actual printers, either the entire InputAttributes dictionary should be replaced or the range type entry should not be included.
Using this option will result in automatic rotation of the document page if the requested page size matches one of the default page sizes. This allows the -dPSFitPage option to fit the page size requested in a PostScript file to be rotated, scaled and centered for the best fit on the specified page. See the section on finding files for details.
For a4 you can substitute any paper size Ghostscript knows. On Windows and some Linux builds, the default paper size will be selected to be a4 or letter depending on the locale. As noted above, input files are normally specified on the command line. However, one can also "pipe" input into Ghostscript from another program by using the special file name ' - ' which is interpreted as standard input. When Ghostscript finishes reading from the pipe, it quits rather than going into interactive mode.
Because of this, options and files after the ' - ' in the command line will be ignored. On Unix and MS Windows systems you can send output to a pipe in the same way. For example, to pipe the output to lpr , use the command. In this case you must also use the -q switch to prevent Ghostscript from writing messages to standard output which become mixed with the intended output stream.
The example above would become. In the last case, -q isn't necessary since Ghostscript handles the pipe itself and messages sent to stdout will be printed as normal. All the normal switches and procedures for interpreting PostScript files also apply to PDF files, with a few exceptions. This is useful for creating fixed size images of PDF files that may have a variety of page sizes, for example thumbnail images.
Annotation types listed in this array will be drawn, whilst those not listed will not be drawn. The list of pages should be given in increasing order, you cannot process pages out of order and inserting higher numbered pages before lower numbered pages in the list will generate an error.
The PDF interpreter and the other language interpreters handle these in slightly different ways. Because PDF files enable random access to pages in the document the PDF inerpreter only interprets and renders the required pages.
PCL and PostScript cannot be handled in ths way, and so all the pages must be interpreted. However only the requested pages are rendered, which can still lead to savings in time. Because the PostScript and PCL interpreters cannot determine when a document terminates, sending multple files as input on the command line does not reset the PageList between each document, each page in the second and subsequent documents is treated as following on directly from the last page in the first document.
The PDF interpreter, however, does not work this way. The PostScript interpreter, by contrast, would only render pages 1 and 2 from the first file.
This means you must exercise caution when using this switch, and probably should not use it at all when processing a mixture of PostScript and PDF files on the same command line. Occasionally you may try to read or print a 'PDF' file that Ghostscript doesn't recognize as PDF, even though the same file can be opened and interpreted by an Adobe Acrobat viewer. In many cases, this is because of incorrectly generated PDF. Acrobat tends to be very forgiving of invalid PDF files.
Ghostscript tends to expect files to conform to the standard. In the past, Ghostscript's policy has been to simply fail with an error message when confronted with these files. This policy has, no doubt, encouraged PDF generators to be more careful.
However, we now recognize that this behavior is not very friendly for people who just want to use Ghostscript to view or print PDF files. Our new policy is to try to render broken PDF's, and also to print a warning, so that Ghostscript is still useful as a sanity-check for invalid files. If you provide PDF to standard input using the special filename ' - ' , Ghostscript will copy it to a temporary file before interpreting the PDF.
Encapsulated PostScript EPS files are intended to be incorporated in other PostScript documents and may not display or print on their own. For the official description of the EPS file format, please refer to the Adobe documentation in their tech note
Remove security limitations from PDF documents using ghostscript
For other information, see the Ghostscript overview and, if necessary, how to install Ghostscript. This document describes how to use the command line Ghostscript client. Ghostscript is also used as a general engine inside other applications for viewing files for example. Please refer to the documentation for those applications for using Ghostscript in other contexts.
Subscribe to RSS
Make sure you install Ghostscript and change the installation folder of Ghostscript accordingly. This approach has been tested in a number of computers without any issue. I had to upgrade from V8. Is there a way to loop this thorugh all files in a target directory instead of dragging a single file to the BAT shortcut? I had to google "how to create a cmd file" but I figured it out. Thanks for the code! This didn't work for me.