Ghostscript pdf compression options




















I can confirm this was very useful for me. I also have a means of EPUB recompression detailed here:. Thanks it worked very good for me. I used current ghostscript version 9. Ghostscript reduces the file size substantially, BUT destroys all the hyperlinks. Any ideas, any hints, please? For me some reason it didn't work. Simply Go to LibreOffice open the pdf file in Draw. Note that by default Ghostscript removes hyperlinks from PDFs.

The use of LibreOffice had not occurred to me. I just reduced a MB monster to 6 MB. This was a newsletter with many illustrations. The final result is quite useable on the screen, and will be much easier for the online users to download.

The original version MB , of course, was sent to the printer for the mailed newsletter. Getting parameters correct for GhostScript is very frustrating. Create a free Team What is Teams? Collectives on Stack Overflow. Learn more. Asked 9 years, 8 months ago. Active 6 months ago. Viewed 75k times. Is Ghostscript the best option if you want to optimize a PDF file and reduce the file size? Community Bot 1 1 1 silver badge. Are you looking for gratis or Free Software only?

Or is proprietary pay-ware also an option? Have you got any idea which objects in your PDFs are using the most space? Hi-res images? See also the pdfsizeopt tool GPLv2 askubuntu. Add a comment. Active Oldest Votes. To show you the effect, and how you can discover it, let's look at a sample PDF file: pdfinfo p1.

If we concatenate 3 copies of this file with the help of pdftk like so: pdftk p1. Kurt Pfeifle Kurt Pfeifle Can you provide one or is this invading someone's privacy? Look at the logo in the top of the document.. Show 1 more comment. Finally, if all else fails, it will try to find a substitute for the font from among the standard 35 fonts. Font-name-to-file-name mapping given in Fontmap files; aliases are possible, and there need not be any relation between the font name in the Fontmap and the FontName in the file.

Font-name-to-file-name mapping is implicit — the FontName in the file is used. Aliases are not possible. Only fonts and files named in Fontmap are used. Every Type 1 font file in each directory is available; if TrueType fonts are supported the ttfont. This must be an absolute path. This is ignored if Path doesn't specify a collection. The first font in a collection is 0. Default value is 0. Notes on specific platforms Word size 32 or 64 bits The original PostScript language specification, while not stating a specific word sise, defines 'typical' limits which make it clear that it was intended to run as a bit environment.

However this is, obviously, dependent on the operating system and compiler support available. Not all builds of Ghostscript will support bit integers, though some bit builds eg Windows will. Unix The Ghostscript distribution includes some Unix shell scripts to use with Ghostscript in different environments.

Although VMS DCL itself converts unquoted parameters to upper case, C programs such as Ghostscript receive their parameters through the C runtime library, which forces all unquoted command-line parameters to lower case. Note: This definitely matters if Ghostscript was compiled with DEC C; we are not sure of the situation if you use gcc. Xdefaults Ghostscript doesn't look at the default system background and foreground colors; if you want to change the background or foreground color, you must set them explicitly for Ghostscript.

This is a deliberate choice, so that PostScript documents will display correctly by default -- with white as white and black as black -- even if text windows use other colors. The geometry resource affects only window placement. The font tolerance gives the largest acceptable difference in height of the screen font, expressed as a percentage of the height of the desired font.

The palette resource can be used to restrict Ghostscript to using a grayscale or monochrome palette. Ghostscript never preallocates more than half the cells in a colormap. Working around bugs in X servers The " use Some servers do not implement backing pixmaps properly, or do not have enough memory for them.

If you get strange behavior or "out of memory" messages, try setting useBackingPixmap to false. Some servers do not implement tiling properly.

This appears as broad bands of color where dither patterns should appear. If this happens, try setting useXSetTile to false. Some servers do not implement bitmap or pixmap displaying properly. This may appear as white or black rectangles where characters should appear; or characters may appear in "inverse video" for instance, white on a black rectangle rather than black on white.

If this happens, try setting useXPutImage to false. X device parameters In addition to the device parameters recognized by all devices , Ghostscript's X driver provides parameters to adjust its performance. Using a client-side pixmap usually provides better performance -- for bitmap images, possibly much better performance -- but since it may require quite a lot of RAM e. For details, please consult the source file gdevx. Command line options Unless otherwise noted, these switches can be used on all platforms.

General switches Input control filename Causes Ghostscript to read filename and treat its contents the same as the command line. This was intended primarily for getting around DOS's character limit on the length of a command line. Switches or file names in the file may be separated by any amount of white space space, tab, line break ; there is no limit on the size of the file. Takes the next argument as a file name as usual, but takes all remaining arguments even if they have the syntactic form of switches and defines the name ARGUMENTS in userdict not systemdict as an array of those strings, before running the file.

When Ghostscript finishes executing the file, it exits back to the shell. On some systems, Ghostscript may read the input one character at a time, which is useful for programs such as ghostview that generate input for Ghostscript dynamically and watch for some response, but can slow processing.

However, ' - ' is equivalent on most systems. Interprets arguments as PostScript code up to the next argument that begins with " - " followed by a non-digit, or with " ". For example, if the file quit. Each argument must be valid PostScript, either individual tokens as defined by the token operator, or a string containing valid PostScript. Since this is the default behavior, -f is useful only for terminating the list of tokens for the -c switch.

File searching Note that by "library files" here we mean all the files identified using the search rule under " How Ghostscript finds files " above: Ghostscript's own initialization files, fonts, and files named on the command line.

This is now the default. The value must be a valid PostScript token as defined by the token operator. If the token is a non-literal name, it must be true, false, or null. It is recommeded that this is used only for simple values -- use -c above for complex values such as procedures, arrays or dictionaries.

Note that these values are defined before other names in systemdict, so any name that that conflicts with one usually in systemdict will be replaced by the normal definition during the interpreter initialization. This is different from -d.

The string takes a parameter definition in something very close to postscript format. This allows more complex structures to be passed in than is possible with -d or -s. Parameter switches -d and -s As noted above, -d and -s define initial values for PostScript names. Their use is highly recommended for producing high quality rasterizations. The subsampling box size n should be 4 for optimum output, but smaller values can be used for faster rendering.

Antialiasing is enabled separately for text and graphics content. Allowed values are 1, 2 or 4. Subpixels are a smaller raster grid which is used internally for text antialiasing. It controls grid fitting of True Type fonts Sometimes referred to as "hinting", but strictly speaking the latter is a feature of Type 1 fonts.

Setting this to 2 enables automatic grid fitting for True Type glyphs. The value 0 disables grid fitting. The default value is 2. For more information see the description of the user parameter GridFitTT. If accurate colors are desired, it is recommended that an ICC workflow be used. Useful only on very slow systems where color accuracy is less important. This switch is primarily useful for PDF creation using the pdfwrite device when retaining the color spaces from the original document is important.

ICC profiles are sometimes embedded by applications to convey the exact input color space allowing better color fidelity. Normally, these operators are not accessible from Postscript jobs, being primarily intended to be called by the PDF interpreter.

It is important that these operators are used correctly, especially the order in which they are called, otherwise unintended, even undefined behavior may result. These psuedo operators are not a part of the official Postscript specification. These psuedo operators are required for some files from QuarkXPress. However some files from Corel 9 and Illustrator 88 do not operate properly if these operators are present.

DoPS has in fact been deprecated for some time. Also the "PS" operator that was removed from the 1. Use of this option is NOT recommended in security-conscious applications, as it increases the scope for malicious code. Note: in releases 7. This occurs for text fill and text stroke operations. PDF output created with this setting will be updated to be drawn with gray values of 0. Type 3 fonts, which are sometimes used for graphics, are not affected by this parameter.

This may be useful when printing documents on a printer that can handle their requested paper size but whose default is some other size. The pages are scaled and arranged on the current PageSize "master" page according the the option. Default value is. It's meaning is similar to GenericResourceDir. Interaction-related parameters -dBATCH Causes Ghostscript to exit after processing all files named on the command line, rather than going into an interactive loop reading PostScript commands.

Equivalent to putting -c quit at the end of the command line. This may be useful on PC displays that get confused if a program attempts to write text to the console while the display is in a graphics mode. Normally one should use this along with -dBATCH when producing output on a printer or to a file; it also may be desirable for applications where another program is "driving" Ghostscript.

This allows piping input directly into Ghostscript, as long as the data doesn't refer to currentfile. This is currently necessary when redirecting device output to standard output. This may be useful if input is coming from a pipe. This is usually useful only when running PostScript code whose purpose is to compute something rather than to produce an output image.

This switch instructs all devices to ignore a request to print multiple copies, giving more consistent behaviour. Refer to the SavedPages document for details. This is useful when converting an EPS file to a bitmap. This is useful for shrinking or enlarging an EPS file to fit the paper size when printing. With this interface it is possible to provide this definition. The colorants tag order in the ICC profile defines the lay-down order of the inks associated with the profile.

A windows-based tool for creating these source profiles is contained in. Care should be taken to ensure that the number of colorants associated with the device is the same as the profile.

If this is not set, an appropriate profile i. In this case, spot colors will pass through unprocessed assuming the device supports those colorants. In this case, the list of the color names in the order that they exist in the profile must be provided with this command line option.

Note that if a color name that is specified for the profile occurs also within the document e. Additional names beyond those of the ICC profile component count can be included. In this case, those components will be installed into the tiffsep or psdcmyk device list of colors, following the ICC profile colors. In addition, we desire to allow one more spot color of the document to come through to our device.

Note that it is up to the device or through the use of -sNamedProfile see below to involve the setting of any values in the Varnish channel. However, if an All color value is encountered in the document, the Varnish component will have its value set as will the Orange and Violet values Likewise if a spot color named Varnish is encountered in the document the Varnish component will be used for the values.

The All value is typically used for placing registration targets on separations. See the document GS9 Color Management for details about this option.

This profile is used following the output device profile. Care should be taken to ensure that the output device process color model is the same as the output color space for the device link profile. In addition, the color space of the OutputICCProfile should match the input color space of the device link profile.

While the ICC does define a named color format, this structure can in practice be much more general. Many developers wish to use their own proprietary-based format for spot color management.

An example implementation is currently contained in the code for the handling of both Separation and DeviceN colors. For the general user this command option should really not be used.

Some files lack this specification, in which case the blending occurs in the output device's native color space. This dependency of blending color space on the device color model can be avoided by using the above command to force a specific color space in which to perform the blending.

A setting of 0 will result in less accurate color rendering compared to a setting of 2. However, the creation of a transformation will be faster at a setting of 0 compared to a setting of 2. Default setting is 2. This is only valid when using littleCMS for color management. Fill, Stroke operations. This can be used to obtain more saturated colors for graphics.

The options are the same as specified for -dRenderIntent. The options are the same as specified for -dKPreserve. This can be used to obtain perceptually pleasing images. This can be used ensure K only text. Note that if no profiles are specified for the default Device color spaces, then the system default profiles will be used. The specification is made through a file that contains on a line a key name to specify the object type e. It is also possible to turn off color management for certain object types, use device link profiles for object types and do custom color replacements.

An example file is given in. Profiles to demonstrate this method of specification are also included in this folder. Note that if objects are colorimetrically specified through this mechanism other operations like -dImageIntent, -dOverrideICC, have no affect. See further details in the document GS9 Color Management. This may not always be desired. In particular, it may be desired to map from the gray ICC profile specified by -sDefaultGrayProfile to the output device profile.

The directory path must end with a file system delimiter. Useful only for certain specialized packages like pstotext that redefine operators. See the documentation for. Normally, pdfmark is only called for these types for PostScript files or when the output device requests it e.

Useful only for debugging. The vmreclaim operator is not disabled. The decision to halftone depends upon the output and source resolution as well as the output and source color space. This is necessary when running special utility programs such as font2c and pcharstr , which must bypass normal PostScript access protection.

Improving performance Ghostscript attempts to find an optimum balance between speed and memory consumption, but there are some cases in which you may get a very large speedup by telling Ghostscript to use more memory. With some PDF files, or if you are using Chinese, Japanese, or other fonts with very large character sets, adding the following sequence of switches before the first file name may dramatically improve performance at the cost of an additional memory.

For example, to allow use of 30Mb of extra RAM use: -c setvmthreshold -f. This overrides the compiled-in default, but is overridden by any commandline setting. Debugging The information here describing is probably interesting only to developers. Debug switches There are several debugging switches that are detected by the interpreter. Each of the xxx characters selects an option. Note that by default Ghostscript removes hyperlinks from PDFs.

Show 14 more comments. Alexey Pavlunin Alexey Pavlunin 81 1 1 silver badge 2 2 bronze badges. This answer should be highly appreciable. I have tried with Great answer btw! Igors Moskalcovs Igors Moskalcovs 1 1 1 bronze badge. I was facing the same issue this helped me.

Sign up or log in Sign up using Google. Sign up using Facebook. Sign up using Email and Password. Post as a guest Name. Email Required, but never shown. The Overflow Blog. Podcast Making Agile work for data science.



0コメント

  • 1000 / 1000