PDFTOOPVP

1. INTRODUCTION

"pdftoopvp" is a CUPS filter which reads PDF file, renders pages and
outputs PDL to a printer driver which is compliant with the OpenPrinting
Vector Printer Driver Interface "opvp".

2. CONFIGURATION

"pdftoopvp" refers the poppler configuration file. Be aware that poppler
uses "fontconfig" for its font configuration.

3. JCL

When "pdftoopvp" reads a PDF file from stdin, "pdftoopvp" handles the data
prior to PDF header (%PDF ...) as JCL options. JCL options for "pdftoopvp"
must begin with "pdftoopvp jobInfo:". "pdftoopvp" passes the option string
just after ":" to the driver as the jobInfo option.

4. COMMAND LINE

"pdftoopvp" is a CUPS filter, and the command line arguments,
environment variables and configuration files are in accordance with
the CUPS filter interface.

pdftoopvp <job> <user> <title> <num-copies> <options> [<filename>]

"pdftoopvp" ignores <job>, <user>, <title> and <num-copies>.
<options> is a CUPS option list.

When omit the <filename>, "pdftoopvp" reads a PDF file from stdin,
and save it as a temporary file.

CUPS options defined in <options> are delimited by space. Boolean
type CUPS option is defined only by the option key, and other type
CUPS option are defined by pairs of key and value, <key>=<value>.

5. COMMAND OPTIONS

"pdftoopvp" accepts the following CUPS standard options;

Resolution=<int>
  Specifies a printer resolution in dpi.
  When this option is omitted, the resolution is treated as 300dpi.
  Horizontal and vertical resolution are treated as the same resolution.

PageSize=<string>
  Specifies a paper size by name defined in the PPD file.
  This option is ignored when no PPD file is assigned for the printer
  queue.

"pdftoopvp" accepts the following original options;

opvpDriver=<string>
  Specifies a driver library name.

opvpModel=<string>
  Specifies a printer model name.

opvpJobInfo=<string>
  Specifies "jobInfo" printing options that are passed to the driver.
  Printing options are overridden by JCL options.

opvpDocInfo=<string>
  Specifies "docInfo" document options that are passed to the driver.

opvpPageInfo=<string>
  Specifies "pageInfo" page options that are passed to the driver.

pdftoopvpClipPathNotSaved (Boolean option)
  Specifies that the driver cannot save clipping path operators in PDF.

nopdftoopvpShearImage (Boolean option)
  Specifies that the driver cannot rotate/shear images by CTM.

nopdftoopvpMiterLimit (Boolean option)
  Specifies that the driver does not support miter limit.
  If the driver does not prepare the opvpSetMiterLimit function entry,
  this option setting is ignored, and also miter limit is ignored.

pdftoopvpIgnoreMiterLimit (Boolean option)
  When nopdftoopvpMiterLimit option is set, pdftoopvp automatically
  replace paths to multiple lines or drawing images. This option
  specifies to avoid the path replacement even when nopdftoopvpMiterLimit
  option is set.

pdftoopvpMaxClipPathLength=<int>
  Specifies the maximum number of clipping path points that the driver
  supports. Default value is 2000 points.

pdftoopvpMaxFillPathLength=<int>
  Specifies the maximum number of fill path points that the driver supports.
  Default value is 4000 points.

nopdftoopvpLineStyle (Boolean option)
  Specifies that the driver ignores the line style settings in PDF.
  If the driver does not prepare the SetLineStyle , SetLineDash or
  SetLineDashOffset function entry, this option setting is ignored, and
  also line style, line dash and line dash offset are ignored.

nopdftoopvpClipPath (Boolean option)
  Specifies that the driver does not support clipping path.
  If the driver does not prepare the opvpSetClipPath function entry, this
  option is ignored, and also clip path setting is ignored.

nopdftoopvpBitmapChar (Boolean option)
  Specifies that the driver does not output characters as images.
  Default setting is that "pdftoopvp" outputs small characters as images.

pdftoopvpBitmapCharThreshold=<int>
  Specifies the threshold value that "pdftoopvp" outputs characters as
  images. Threshold value is defined as W x H where character's width
  is given by W pixels and height is given by H pixels.
  Default threshold value is 2000 points.

nopdftoopvpImageMask (Boolean option)
  Specifies that the driver does not support image mask.
  If this option is set, "pdftoopvp" treats as the nopdftoopvpBitmapChar
  option is given.

6. PPD OPTIONS

Following options can be defined in a PPD.

Resolution=<int>
PageSize=<string>
opvpDriver=<string>
opvpModel=<string>
opvpJobInfo=<string>
opvpDocInfo=<string>
opvpPageInfo=<string>
pdftoopvpClipPathNotSaved=True
pdftoopvpShearImage=False
pdftoopvpMiterLimit=False
pdftoopvpIgnoreMiterLimit=True
pdftoopvpMaxClipPathLength=<int>
pdftoopvpMaxFillPathLength=<int>
pdftoopvpLineStyle=False
pdftoopvpClipPath=False
pdftoopvpBitmapChar=False
pdftoopvpBitmapCharThreshold=<int>
pdftoopvpImageMask=False

7. OPTIONS OVERRIDING RULE

"jobInfo" printing options in a PPD is used as a initial "jobInfo" printing
options. If opvpJobInfo option is given in the command line, precedent
"jobInfo" printing options are overridden by the opvpJobInfo options.

After the "jobInfo" printing options are overridden by the opvpJobInfo
options, if JCL options are given, precedent "jobInfo" printing options are
overridden by the options given by JCL options.

8. INFORMATION FOR CUPS 1.1

To use this program under CUPS 1.1, following lines must be defined
in the CUPS's "mime.types" file.

application/vnd.cups-pdf

9. KNOWN PROBLEMS

Problem:
  When a page is rotated and a character is small, character might not be
  rotated correctly. This problem is caused by free type library.
Solution:
  Define the nopdftoopvpBitmapChar to inhibit characters output as images.

