From 9. This new interpreter has also been integrated into Ghostscript itself, in order to preserve the PDF functionality of that interpreter.
For now, the old PostScript-based interpreter remains the default, but the new interpreter is built-in alongside it. We've now brought all these disparate products together into a single package, called, appropriately enough, GhostPDL. When running on a printer or server GhostPDL now automatically detects the type of data being fed to it and processes it accordingly.
The individual interpreters all plug into a top-level module that handles both automatic language detection and Printer Job Language PJL based configuration.
I want to convert it to a PowerShell script because it seems to like to crash every once in a while and I'm just tired of debugging batch files. Anyway, I have a PS script that seems to work, based on it's output in the console, but I don't actually get any files. Manual entry in PS seems to work even less What am I doing wrong?
For anyone who cares this is being tested on a Windows Server R2 virtual machine. I've also checked if there was permissions issues with the test folders I was using and it wasn't the case.
I've updated my post to show what the current script looks like. Regardless of quotes or not, I always get output which I've added above that indicates the GhostScript is doing what it's supposed to, but ultimately I get no file created I wanted to use powershell too, because it's just the way to go these days, but was having trouble executing ghostscript in powershell too.
Since it ran fine when using a batch file, I opted to run the ghostscript using a batch file with two parameters that I call in my powershell script. Well, I figured out a solution. Anyway, I instead used PDFtk and it just works, and it also works many times faster than GhostScript for the exact same task. I don't get it Path matching is very simple: it is case sensitive, and we do not implement full featured "globbing" or regular expression matching such complexity would significantly and negatively impact performance.
Similarly, you cannot grant permission through one symlink, and then reference a file directly, or through an alternative symlink - again, the matching will fail. This is a change in behaviour compared to the old code which, on Windows, was case in sensitive. This is in recognition of changes in Windows behaviour, in that it now supports although does not enforce case sensitivity. Similarly, paths read during initialisation from Fontmap , cidfmap , and the platform specific font file enumeration e.
It is included for now in case any users find a case where the 9. It means such users can keep working until we have assessed the issue, and distributed a solution. This mode also sets the. 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.
Please note that this discussion relates to devices which produce a bitmap format as the output. These parameters have no effect on the vector devices, such as pdfwrite. All devices may use a display list "clist" and use banding when rendering PDF 1.
This prevents allocation of excessively large amounts of memory for the transparency buffer stack. The number of threads should generally be set to the number of available processor cores for best throughput. This can also be useful in processing large documents when using a high-level vector output device like pdfwrite that maintains significant internal state.
For pattern tiles that are very large, Ghostscript uses an internal display list memory based clist , but this can slow things down. The current default threshold is 8Mb -- pattern tiles larger than this will be cached as clist rather than bitmap tiles. There are several debugging switches that are detected by the interpreter.
These switches are available whether or not Ghostscript was built with the DEBUG macro defined to the compiler refer to building a debugging configuration. Previous to 8. Now there are several debugging flags to allow more selective debugging information to be printed containing only what is needed to investigate particular areas. The -Z and -T switches apply only if the interpreter was built for a debugging configuration. In the table below, the first column is a debugging switch, the second is an equivalent switch if any and the third is its usage.
The following switch affects what is printed, but does not select specific items for printing:. All the short form flags for -Z have an equivalent long form. Future flags may be added with a long form only due to all the short form flags being used already.
Visual Trace allows to view internal Ghostscript data in a graphical form while execution of C code. Special instructions to be inserted into C code for generating the output. Client application rasterizes it into a window. Currently the rasterization is implemented for Windows only, in clients gswin There are two important incompletenesses of the implementation :.
The graphical output uses a hardcoded scale. An advanced client would provide a scale option via user interface. Breaks are not implemented in the client. If you need a step-by-step view, you should use an interactive C debugger to delay execution at breakpoints.
The table here lists them by name and size. A guide to international paper sizes can be found at. In this environment, the relevant section of the resource file should look like this:. Please ignore issues about UFST if you haven't got it.
Important note: Third-party font renderers may be incompatible with devices that can embed fonts in their output such as pdfwrite , because such renderers may store fonts in a form from which Ghostscript cannot get the necessary information for embedding, for example, the Microtype fonts supplied with the UFST. Ghostscript can be configured to disable such renderers when such a device is being used. As of Ghostscript version 9. NOTE: With version 9. Both bridges may run together.
There are 2 ways to handle fonts with a third-party font renderer FAPI. Ghostscript searches the specified file names as explained in How Ghostscript finds files.
Default values for these arguments are equal to argument names. Font files, which are being handled with FAPI, may reside in any directory in your hard disk. Paths to them to be specified in FAPIfontmap and with special command line arguments, explained below. The path may be either absolute or relative. Relative ones are being resolved from the path, which is specified in FAPIconfig file. It may include records of 2 types : general records and FCO records see below.
A general record describes a font, which is being rendered with FAPI. They must end with semicolon. Each general record is a pair. The first element of the pair is the font name the name that PostScript documents use to access the font, which may differ from real name of the font which the font file defines.
The second element is a dictionary with entries :. Each record of a group occupy a single line, and contains a number and 1, 2 or 3 names. The number is the font index in the FCO file, the first name is the Postscript font name, the secong is an Encoding resource name, and the third is a decoding resource name. CID fonts to be listed in another map file.
The format is similar to FAPIfontmap , but dictionaries must contain few different entries :. The last ones defines the configuration for handling resident UFST fonts only. Follow instructions in it. If UFST needs it and the command line argument is not specified, Ghostscript prints a warning and searches plugin file in the current directory. Some configurations of UFST need a path for finding symbol set files. If UFST needs it and the command line argument is not specified, Ghostscript prints a warning and searches symbol set files in the current directory.
Note that UFST and Free Type cannot handle some Ghostscript fonts because they do not include a PostScript interpreter and therefore have stronger restrictions on font formats than Ghostscript itself does - in particular, Type 3 fonts. Invoking Ghostscript This document describes how to use the command line Ghostscript client. Here are some basic examples. The details of how these work are described below. Help at the command line: gs -h You can get a brief help message by invoking Ghostscript with the -h or -?
The message shows for that version of the Ghostscript executable: the version and release information the general format of the command line a few of the most useful options the formats it can interpret the available output devices the search path the bug report address On other systems the executable may have a different name: System Invocation Name Unix gs VMS gs MS Windows 95 and later gswin You can set the output device and process a file from the interactive prompt as well: epson selectdevice myfile.
You can switch devices at any time by using the selectdevice procedure, for instance like one of these: x11alpha selectdevice epson selectdevice Output resolution Some printers can print at several different resolutions, letting you balance resolution against printing speed. Output to files Ghostscript also allows you to control where it sends its output.
For instance, to convert somefile. Sometimes the initialization files are compiled into Ghostscript and cannot be changed. Interacting with pipes As noted above, input files are normally specified on the command line. This option is also set by the -dFitPage option.
If neither of these is specified, the output will use the screen options for any output device that doesn't have an OutputFile parameter, and the printer options for devices that do have this parameter. This may include any extra bleed area needed to accommodate the physical limitations of cutting, folding, and trimming equipment. The actual printed page may include printing marks that fall outside the bleed box.
The trim box defines the intended dimensions of the finished page after trimming. Some files have a TrimBox that is smaller than the MediaBox and may include white space, registration or cutting marks outside the CropBox. Using this option simulates appearance of the finished printed page.
The art box defines the extent of the page's meaningful content including potential white space as intended by the page's creator. The art box is likely to be the smallest box. It can be useful when one wants to crop the page as much as possible without losing the content. Unlike the other "page boundary" boxes, CropBox does not have a defined meaning, it simply provides a rectangle to which the page contents will be clipped cropped.
By convention, it is often, but not exclusively, used to aid the positioning of content on the usually larger, in these cases media. For files created with encryption method 4 or earlier, the password is an arbitrary string of bytes; with encryption method 5 or later, it should be text in either UTF-8 or your locale's character set Ghostscript tries both.
Annotations are shown by default. By default, AcroForm processing is now enabled because Adobe Acrobat does this. This option is provided to restore the previous behavior which corresponded to older Acrobat.
This may be useful for backward compatibility with old versions of Ghostscript and Adobe Acrobat, or for processing files with large values of UserUnit that otherwise exceed implementation limits. On TrueType fonts, this is often a hollow sqaure.
Ghostscript now attempts to mimic this undocumented feature using a user parameter RenderTTNotdef. Pages of all documents in PDF collections are numbered sequentionally. A list can include single pages or ranges of pages. Ranges of pages use the minus sign '-', individual pages and ranges of pages are separated by commas ','.
A trailing minus '-' means process all remaining pages. Note: The differences in appearance of files with overprinting and spot colors caused by the differences in the color model of the output device are part of the PostScript and PDF specifications. They are not due to a limitation in the implementation of Ghostscript or its output devices. In Adobe Acrobat, viewing of the effects of overprinting is enabled by the 'Overprint Preview' item in the 'Advanced' menu.
This feature is not available in the free Acrobat Reader. The free Acrobat Reader also uses the tint transform functions to convert spot colors to the appropriate alternate color space. Testing a file name for an absolute path System Does the name VMS Contain a node, device, or root specification?
Finding PostScript Level 2 resources Adobe specifies that resources are installed in a single directory. It concatenates : The value of the system parameter GenericResourceDir ; The name of the resource category for instance, CMap ; The name of the resource instance for instance, Identity-H.
In this case it concatenates : A directory listed in the section How Ghostscript finds files , except the current directory; The value of the system parameter GenericResourceDir ; The name of the resource category for instance, CMap ; The name of the resource instance for instance, Identity-H Due to possible variety of the part 1, the first successful combination is used. Font lookup Ghostscript has a slightly different way to find the file containing a font with a given name.
First, it looks up the font name in the combined Fontmaps. If this process fails at any step, Ghostscript looks for a file whose name is the concatenation of the value of the FontResourceDir system parameter and the font name, with no extension. If such a file exists, can be loaded, and defines a font of the desired name, that again is the end.
If that fails, Ghostscript then looks for a file on the general search path whose name is the desired font name, with no extension. It goes to the first directory on the list, and it's descendants, looking for all files that appear to contain PostScript fonts also Truetype fonts ; it then adds all those files and fonts to the combined Fontmaps, and starts over. 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.
For other information, see the Ghostscript overview and " How to build Ghostscript from source code ". The usage documentation describes the search algorithms used to find initialization files and font files. The per-platform descriptions that follow tell you where to install these files. Ghostscript uses the common configure, build and install method common to many modern software packages. In general the following with suffice to build ghostscript:. For more detailed information on building Ghostscript see how to build Ghostscript on Unix in the documentation on building Ghostscript, especially regarding information on using the older hand edited makefile approach.
Whatever configuration method you use, execute " make install " to install the executable and all the required and ancillary files after the build is complete.
The makefile installs all the files except fonts under the directory defined in the makefile as prefix. Fonts need to be installed separately. See the usage documentation for more information. If you've built Ghostscript as a shared object, instead of ' make install ', you must use ' make soinstall '.
See how to build Ghostscript as a shared object for more details. We usually distribute Ghostscript releases for Windows as a binary installer, for the convenience of most users. Although building from source with Visual Studio should produce a working binary for those versions. The installer is normally named gs w
0コメント