Think that you need to sign a PDF file and add the signed date, you need a quick method to add a digital signature and some text with the date in the PDF file.
To avoid using Acrobat or Photoshop manually to import the image signature and the text label for the date, could be great to make a little script to sign and add variables with the current date.
Solution:
If you work with Adobe CSx, you will find some smaple scripts on path that will allow you code a litle script to open source PDF file, import a external image with your signature and add labels to source PDF with current date or some else:
<install path>/Adobe Photoshop CSx/scripting/samples/JavaScript...
You will find next files:
ActiveLayer.jsxApplyFilters.jsx
ApplyLayerStyle.jsx
CompareColors.jsx
...
Lets Go to see my Script:
( I edit sample javascript file "OpenDocument.jsx" for make mi own one)
Code:
---
// Copyright 2002-2007. Adobe Systems, Incorporated. All rights reserved.
// Open a Photoshop document located in the Photoshop samples folder on the Photoshop CD.
// You must first create a File object to pass into the open method.
// enable double clicking from the Macintosh Finder or the Windows Explorer
#target photoshop
// in case we double clicked the file
app.bringToFront();
// on localized builds we pull the $$$/Strings from a .dat file, see documentation for more details
$.localize = true;
// units for move and scale imported image
var strtRulerUnits = app.preferences.rulerUnits;
var strtTypeUnits = app.preferences.typeUnits;
app.preferences.rulerUnits = Units.INCHES;
app.preferences.typeUnits = TypeUnits.POINTS;
// Display File Open Dialog
filePath = File.openDialog();
var docRef = open( File( filePath ));
// suppress all dialogs
app.displayDialogs = DialogModes.NO;
var textColor = new SolidColor;
textColor.rgb.red = 0;
textColor.rgb.green = 0;
textColor.rgb.blue = 0;
// LAYER 1
var doc = open( File("<path to signature image>") );
//select all
activeDocument.selection.selectAll()
//copy image
activeDocument.selection.copy();
//close that document without saving
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
// select the source image
activeDocument = docRef;
//paste
app.activeDocument.paste();
// move
var startRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
var cm = 100;//activeDocument.resolution/2.45;
var LB = activeDocument.activeLayer.bounds;
activeDocument.activeLayer.translate(-200,1930);
app.preferences.rulerUnits = startRulerUnits;
// LAYER 2
var myDate = new Date();
myDate = myDate.getDate()+"/"+(myDate.getMonth()+1)+"/"+ myDate.getFullYear();
var newTextLayer = docRef.artLayers.add();
newTextLayer.kind = LayerKind.TEXT;
newTextLayer.textItem.contents = myDate;
newTextLayer.textItem.position = Array(0.15, 8.6);
newTextLayer.textItem.size = 18;
newTextLayer.textItem.color = textColor;
// SAVE NEW PDF SIGNED
var savefname = "<path to new signed pdf files>";
str = filePath.toString();
saveas = str.substr(1,str.length-5) + "signed";
filename = saveas.split("/");
longi = filename.length - 1;
savefname = savefname + filename[longi];
var pngFile = new File(savefname );
pngSaveOptions = new PDFSaveOptions();
pngSaveOptions.embedColorProfile = true;
pngSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
pngSaveOptions.matte = MatteType.NONE; pngSaveOptions.quality = 1;
activeDocument.saveAs(pngFile, pngSaveOptions, false, Extension.LOWERCASE);
app.preferences.rulerUnits = strtRulerUnits;
app.preferences.typeUnits = strtTypeUnits;
//free
docRef = null;
textColor = null;
newTextLayer = null;
app.activeDocument.close()
Sources needed: