Hallo Jörg,
mit Bormitteln ist das wohl nicht möglich. Ob es ein PlugIn gibt ist mir nicht
bekannt. Mit FrameScript kann man das aber relativ einfach selber realisieren.
Es wir ein Event-Script benötigt, welches vor dem Speichern die Benutzerdaten
ausliest und in die PdfDocInfos schreibt.
Zu beachten wäre noch, dass keine Sonderzeichen per Script in die PdfDocInfos
geschrieben werden können, das führt zu einem gnadenlosen Absturz von FM.
Sonderzeichen müssen zuvor in Hex-Schreibweise geändert werden. Der
einfachheithalber ändere ich die gesamte Zeichenfolge. In dem nachfolgenden
Fünfzeiler wird die Info zum Autor aus der Windows-Anmeldung bezogen. Das
Beispiel berücksichtigt keine bereits bestehenden Dokumentinformationen.
Gruß Karsten
///////////////////////////////////////////////////////////////////////////
// Generated with Script Studio for FrameScript Version 1.1.303
///////////////////////////////////////////////////////////////////////////
/*
Name: SetAuthorBeforeSave
Description:
Creation: 13.05.2007, 22:52:21
Modification: 08.01.2008, 09:33:31
Author: Karsten Natebus
Company:
Copyright:
Mail: [EMAIL PROTECTED]
Web: http://framescript.natebus.de
Platform: win
Versions
FrameMaker: 6.x +
FrameScript: 3.1 +
This Script: 0.0.14
Language: ger, eng
ScriptType:
Installation:
*/
//+------------------------------------------------------------------------+
//| File: ..\..\_standard_module\functions\gethtmlnumericstring.fun |
//| Call: GetHtmlNumericString{} |
//| Modification: 31.10.2007, 12:37:08 |
//| Version |
//| FrameMaker: 6.x or higher |
//| FrameScript: 3.x or higher |
//| Module: 3.4 |
//+------------------------------------------------------------------------+
Function GetHtmlNumericString Using pv_strIn
// Define local variables
Local lv_intI;
Local lv_intChar;
// Hier Code eingeben
Set Result = '';
Loop While(lv_intI <= pv_strIn.Size) InitVal(1) Incr(1) LoopVar(lv_intI)
Get String FromString(pv_strIn)
StartPos(lv_intI)
EndPos(lv_intI)
NewVar(lv_strChar);
Set lv_intChar = eUtl.StringToInt{lv_strChar};
Set Result = Result + '&#x' + ConvertDezToHex{lv_intChar} + ';';
EndLoop
// Delete local variables
Delete Var(lv_intI);
Delete Var(lv_intChar);
EndFunction
//+------------------------------------------------------------------------------+
//| File:
..\..\_standard_module\functions\convertdeztohex.fun |
//| Job: Konvertiert eine Dezimal-Integer-Größe in eine
Hexadezimal-Zeichenfolge.|
//| Call:
ConvertDezToHex{IntDez} |
//| Modification: 28.10.2007,
23:18:56 |
//|
Version |
//| FrameMaker: 6.x or
higher |
//| FrameScript: 3.x or
higher |
//| Module:
3.6 |
//+------------------------------------------------------------------------------+
Function ConvertDezToHex Using pv_intIn
// Define local variables
Local lv_intBase(16);
Local lv_intRest(0);
Local lv_strHex('');
Local lv_strInt;
// Hier Code eingeben
Loop While(pv_intIn >= 0)
If pv_intIn >= lv_intBase
Set lv_intRest = pv_intIn % lv_intBase;
Set pv_intIn = pv_intIn - lv_intRest;
Set pv_intIn = pv_intIn / lv_intBase;
Else
Set lv_intRest = pv_intIn;
Set pv_intIn = -1;
EndIf
If lv_intRest <= 9
New String NewVar(lv_strInt) Value(lv_intRest);
Set lv_strHex = lv_strInt + lv_strHex;
ElseIf lv_intRest = 10
Set lv_strHex = 'A' + lv_strHex;
ElseIf lv_intRest = 11
Set lv_strHex = 'B' + lv_strHex;
ElseIf lv_intRest = 12
Set lv_strHex = 'C' + lv_strHex;
ElseIf lv_intRest = 13
Set lv_strHex = 'D' + lv_strHex;
ElseIf lv_intRest = 14
Set lv_strHex = 'E' + lv_strHex;
ElseIf lv_intRest = 15
Set lv_strHex = 'F' + lv_strHex;
EndIf
EndLoop
Set Result = lv_strHex;
// Delete local variables
Delete Var(lv_intBase);
Delete Var(lv_intRest);
Delete Var(lv_strHex);
Delete Var(lv_strInt);
EndFunction
//+------------------------------------------------------------------------+
//| File: .\notepresavedoc.evt |
//| Modification: 07.01.2008, 23:21:12 |
//| Version |
//| FrameMaker: 6.x + |
//| FrameScript: 3.1 + |
//| Module: .7 |
//+------------------------------------------------------------------------+
Event NotePreSaveDoc
// Define local variables
Local lv_strAuthor;
Local lv_slstPdfDocInfo;
// Input code here
Set lv_strAuthor = GetHtmlNumericString{eSys.UserName};
New StringList NewVar(lv_slstPdfDocInfo)
Value('Author') Value(lv_strAuthor);
Set Session.ActiveDoc.PDFDocInfo = lv_slstPdfDocInfo;
// Delete local variables
Delete Var(lv_strAuthor);
Delete Var(lv_slstPdfDocInfo);
EndEvent_______________________________________________
Talk mailing list
[email protected]
http://lists.framemaker.de/mailman/listinfo/talk