Class GhostscriptHelper

java.lang.Object
com.itextpdf.io.util.GhostscriptHelper

public class GhostscriptHelper extends Object
A utility class that is used as an interface to run 3rd-party tool Ghostscript. Ghostscript is an interpreter for the PostScript language and PDF files, it allows to render them as images.

The Ghostscript needs to be installed independently on the system. This class provides a convenient way to run it by passing a terminal command. The command can either be specified explicitly or by a mean of environment variable GHOSTSCRIPT_ENVIRONMENT_VARIABLE.

  • Field Details

    • GHOSTSCRIPT_ENVIRONMENT_VARIABLE

      public static final String GHOSTSCRIPT_ENVIRONMENT_VARIABLE
      The name of the environment variable with the command to execute Ghostscript operations.
      See Also:
  • Constructor Details

    • GhostscriptHelper

      public GhostscriptHelper()
      Creates new instance that will rely on Ghostscript execution command defined by GHOSTSCRIPT_ENVIRONMENT_VARIABLE environment variable.
    • GhostscriptHelper

      public GhostscriptHelper (String newGsExec)
      Creates new instance that will rely on Ghostscript execution command defined as passed argument.
      Parameters:
      newGsExec - the Ghostscript execution command; if null - environment variables will be used instead
  • Method Details

    • getCliExecutionCommand

      public String getCliExecutionCommand()
      Returns a command that is used to run the utility. This command doesn't contain command parameters. Parameters are added on specific methods invocation.
      Returns:
      a string command
    • runGhostScriptImageGeneration

      public void runGhostScriptImageGeneration (String pdf, String outDir, String image) throws IOException, InterruptedException
      Runs Ghostscript to render the PDF's pages as PNG images.

      Note, that this method may create temporary directory and files.

      Parameters:
      pdf - Path to the PDF file to be rendered
      outDir - Path to the output directory, in which the rendered pages will be stored
      image - String which defines the name of the resultant images. This string will be concatenated with the number of the rendered page from the start of the PDF in "-%03d" format, e.g. "-011" for the eleventh rendered page and so on. This number may not correspond to the actual page number: for example, if the passed pageList equals to "5,3", then images with postfixes "-001.png" and "-002.png" will be created: the former for the third page, the latter for the fifth page. "%" sign in the passed name is prohibited.
      Throws:
      IOException - if there are file's reading/writing issues
      InterruptedException - if there is thread interruption while executing GhostScript.
    • runGhostScriptImageGeneration

      public void runGhostScriptImageGeneration (String pdf, String outDir, String image, String pageList) throws IOException, InterruptedException
      Runs Ghostscript to render the PDF's pages as PNG images.

      Note, that this method may create temporary directory and files.

      Parameters:
      pdf - Path to the PDF file to be rendered
      outDir - Path to the output directory, in which the rendered pages will be stored
      image - String which defines the name of the resultant images. This string will be concatenated with the number of the rendered page from the start of the PDF in "-%03d" format, e.g. "-011" for the eleventh rendered page and so on. This number may not correspond to the actual page number: for example, if the passed pageList equals to "5,3", then images with postfixes "-001.png" and "-002.png" will be created: the former for the third page, the latter for the fifth page. "%" sign in the passed name is prohibited.
      pageList - String with numbers of the required pages to be rendered as images. This string should be formatted as a string with numbers, separated by commas, without whitespaces. Can be null, if it is required to render all the PDF's pages.
      Throws:
      IOException - if there are file's reading/writing issues
      InterruptedException - if there is thread interruption while executing GhostScript.