#595374 ghostscript: please consider to add watermark support to ghostpdf.ppd

Package:
ghostscript
Source:
ghostscript
Description:
interpreter for the PostScript language and for PDF
Submitter:
Piviul
Date:
2010-09-06 08:09:03 UTC
Severity:
wishlist
#595374#5
Date:
2010-09-03 14:34:47 UTC
From:
To:
You can add watermark support to ghostpdf.ppd simply adding the following to
ghostpdf.ppd:

*%=== Watermark ========
*OpenUI *RIWatermark/Timbro:  PickOne
*OrderDependency: 50 AnySetup *RIWatermark
*DefaultRIWatermark: Off
*RIWatermark Off/Disattivo: ""
*RIWatermark On/Activ.: "
 userdict /RPS_WMdict 10 dict put
 userdict /RPS_WMdict get begin
  /RPS_WM true def
  /RPS_WM_adjangle { 1.0 mul } bind def %% Portrait, Portrait(4up)
  /RPS_WM_adjust 0.5 def
  /RPS_WM_position { %% center
        currentpagedevice /PageSize get
        aload pop exch 2.0 div exch 2.0 div translate
        RPS_WM_angle RPS_WM_adjangle rotate
        RPS_WM_font findfont RPS_WM_size scalefont setfont
        RPS_WM_str stringwidth pop 2.0 div neg RPS_WM_size 2.0 div moveto
  } bind def
 end
 <<
        /EndPage {
                2 eq { pop false }{
                        userdict /RPS_WMdict 2 copy known {
                                get begin
                                RPS_WM {
                                        gsave
                                        initgraphics
                                        RPS_WM_color
                                        RPS_WM_Pattern
                                        RPS_WM_position
                                        RPS_WM_draw
                                        grestore
                                } if
                                end
                        }{ pop pop } ifelse
                        pop true
                } ifelse
        } bind
 >> setpagedevice"
*End
*CloseUI: *RIWatermark

*%=== Watermark Text ========
*OpenUI *RIWMText/Testo del Timbro:  PickOne
*OrderDependency: 310 AnySetup *RIWMText
*DefaultRIWMText: Confidential
*RIWMText Confidential/CONFIDENZIALE: "userdict /RPS_WMdict get begin
 /RPS_WM_str (CONFIDENZIALE) def end"
*End
*RIWMText Copy/COPIA: "userdict /RPS_WMdict get begin
 /RPS_WM_str (COPIA) def end"
*End
*RIWMText Copyright/ABBOZZO: "userdict /RPS_WMdict get begin
 /RPS_WM_str (ABBOZZO) def end"
*End
*RIWMText Final/FINALE: "userdict /RPS_WMdict get begin
 /RPS_WM_str (FINALE) def end"
*End
*RIWMText FileCopy/COPIA DA ARCHIVIARE: "userdict /RPS_WMdict get begin
 /RPS_WM_str (COPIA DA ARCHIVIARE) def end"
*End
*RIWMText Proof/PROVA: "userdict /RPS_WMdict get begin
 /RPS_WM_str (PROVA) def end"
*End
*RIWMText TopSecret/TOP SECRET: "userdict /RPS_WMdict get begin
 /RPS_WM_str (TOP SECRET) def end"
*End
*CloseUI: *RIWMText

*%=== WaterMark Font ========
*OpenUI *RIwmFont/Carattere Timbro:  PickOne
*OrderDependency: 320 AnySetup *RIwmFont
*DefaultRIwmFont: HelveticaB
*RIwmFont CourierB/Courier Grassetto: "userdict /RPS_WMdict get begin
 /RPS_WM_font /Courier-Bold def end"
*End
*RIwmFont TimesB/Times Grassetto: "userdict /RPS_WMdict get begin
 /RPS_WM_font /Times-Bold def end"
*End
*RIwmFont HelveticaB/Helvetica Grassetto: "userdict /RPS_WMdict get begin
 /RPS_WM_font /Helvetica-Bold def end"
*End
*CloseUI: *RIwmFont

*%=== WaterMark Font Size========
*OpenUI *RIwmSize/Dimensione Timbro:  PickOne
*OrderDependency: 330 AnySetup *RIwmSize
*DefaultRIwmSize: 36
*RIwmSize 24/24 punti: "userdict /RPS_WMdict get begin
 /RPS_WM_size 24 def end"
*End
*RIwmSize 36/36 punti: "userdict /RPS_WMdict get begin
 /RPS_WM_size 36 def end"
*End
*RIwmSize 48/48 punti: "userdict /RPS_WMdict get begin
 /RPS_WM_size 48 def end"
*End
*RIwmSize 60/60 punti: "userdict /RPS_WMdict get begin
 /RPS_WM_size 60 def end"
*End
*RIwmSize 72/72 punti: "userdict /RPS_WMdict get begin
 /RPS_WM_size 72 def end"
*End
*CloseUI: *RIwmSize

*%=== WaterMark Angle ========
*OpenUI *RIwmAngle/Inclinazione Timbro:  PickOne
*OrderDependency: 340 AnySetup *RIwmAngle
*DefaultRIwmAngle: 45Deg
*RIwmAngle 180Deg/180 gradi: "userdict /RPS_WMdict get begin
 /RPS_WM_angle 180 def end"
*End
*RIwmAngle 135Deg/135 gradi: "userdict /RPS_WMdict get begin
 /RPS_WM_angle 135 def end"
*End
*RIwmAngle 90Deg/90 gradi: "userdict /RPS_WMdict get begin
 /RPS_WM_angle 90 def end"
*End
*RIwmAngle 45Deg/45 gradi: "userdict /RPS_WMdict get begin
 /RPS_WM_angle 45 def end"
*End
*RIwmAngle 0Deg/0 gradi: "userdict /RPS_WMdict get begin
 /RPS_WM_angle 0 def end"
*End
*RIwmAngle M45Deg/-45 gradi: "userdict /RPS_WMdict get begin
 /RPS_WM_angle -45 def end"
*End
*RIwmAngle M90Deg/-90 gradi: "userdict /RPS_WMdict get begin
 /RPS_WM_angle -90 def end"
*End
*RIwmAngle M135Deg/-135 gradi: "userdict /RPS_WMdict get begin
 /RPS_WM_angle -135 def end"
*End
*RIwmAngle M180Deg/-180 gradi: "userdict /RPS_WMdict get begin
 /RPS_WM_angle -180 def end"
*End
*CloseUI: *RIwmAngle

*%=== WaterMark Style ========
*OpenUI *RIwmTextStyle/Stile Timbro:  PickOne
*OrderDependency: 350 AnySetup *RIwmTextStyle
*DefaultRIwmTextStyle: Gray
*RIwmTextStyle Gray/Grigio: "userdict /RPS_WMdict get begin
   /RPS_WM_color { 0 setgray }  bind  def
   /RPS_WM_Pattern {
        <<
                /PatternType 1
                /PaintType 1
                /TilingType 3
                /BBox [ 0 0 1 1 ]
                /XStep 1
                /YStep 1
                /PaintProc {
                        begin
                                RPS_WM_color
                                8 8 true [ 8 0 0 -8 0 8 ]
                                <88002200 88002200> imagemask
                        end
                }
        >> [ 1 0 0 -1 0 1 ] makepattern
        setpattern }
   bind def
   /RPS_WM_draw {       %% RPS_WM_mask
        RPS_WM_str false charpath fill
  } bind def end"
*End
*RIwmTextStyle Outline/Strutturato: "userdict /RPS_WMdict get begin
   /RPS_WM_color { 0 setgray }  bind  def
   /RPS_WM_Pattern {} def
   /RPS_WM_draw {       %% RPS_WM_outline
        0 setlinewidth RPS_WM_str false charpath stroke
  } bind def end"
*End
*CloseUI: *RIwmTextStyle


thank you very and very much

Piviul

#595374#10
Date:
2010-09-03 15:35:07 UTC
From:
To:
I see no copyright or licensing.  What is the origin of that code?  Did
you write it yourself or copy it from somewhere else?


Kind regards,

  - Jonas

#595374#15
Date:
2010-09-06 08:01:05 UTC
From:
To:
Jonas Smedegaard scrisse in data 03/09/2010 17:35:
You are right, the version I send you is copied from a ppd ricoh
protected from copyright :-[ ... but I've found codes "modifyable" and
"copyable" having the same feature; for example this one:
http://src.opensolaris.org/source/xref/sfw/usr/src/cmd/foomatic-ppd/foomatic-filters-ppds-20080818/share/ppd/Ricoh/Ricoh-Aficio_MP_4500-Postscript.ppd.
The rows from 949 to 1122 are the target code you can insert in
ghostpdf.ppd.

Thank you very much

Piviul