===== Funktionen fürs PDF stempeln=====
Die Funktionen des Stempels unterteilen sich in zwei Gruppen
* Das Aussehen des Stempels
* Der Inhalt des Stempels
===== Grundlagen=====
Alle Maßangaben sind in mm.
Der Stempelursprung liegt unten / links auf dem Blatt.
Wenn nicht anders angegeben – (SETORIGIN)
Für jeden Stempelsatz wird eine X/Y Vorgabe angegeben.
Diese Vorgabe wird, so eine der nachfolgend erläuterten Funktionen einen X/Y Wert hat, hinzuaddiert.
===== Stempel Funktionen =====
Für das Aussehen des Stempel stehen folgende Funktionen zur Verfügung:
----
==== SetOrigin(n)=====
Definiert den Nullpunkt auf der Seite
0 - unten links
1 - oben links
2 - oben rechts
3 - unten rechts
Beispiel: SetOrigin(3) - rechts unten am Schriftfeld
-----
==== SetTextSize(n)====
Der nächste Text ist 20 mm Hoch
Textgröße in mm
Beispiel: SetTextSize(20)
----
==== SetTextUnderline(n)====
Der nächste Text wird unterstrichen
> 0 - nichts
> 1 - einfach
> 2 - doppelt
> 3 - durchgestrichen
> 4 - überstrichen
Beispiel: SetTextUnderline(2) - doppelt unterstrichen
----
==== SetTransparency(n)====
Der nächste Text steht dezent im Hintergrund
0 - 100
0 - keine Transparenz
100 Volle Transparent ( Unsichtbar )
Beispiel : SetTransparency(70)
----
==== SetTextColor(r, g, b)====
Setzt die Textfarbe
Rot von 0-1 > 0 - 100 %
Grün von 0-1 > 0 - 100 %
Blau von 0-1 > 0 - 100 %
-----
==== SetFillColor(r, g, b)====
Setzen der Hintergrundfarbe
Rot von 0-1 > 0 - 100 %
Grün von 0-1 > 0 - 100 %
Blau von 0-1 > 0 - 100 %
----
==== DrawBox(X,Y,B,H,R)====
Zeichnen einer Box
X - die horizontale Position
Y - die vertikale Position.
Der Bezugspunkt ist die Text Grundlinie.
Bt - Breite der Box im mm
H - Höhe der Box in mm
R - 0 - Outline
1 - Gefüllt
2 - Gefüllt / Outline
----
==== DrawText(X,Y,Text)====
Erstellen eines Textes
Xpos - die horizontale Position
Ypos - die vertikale Position.
Der Bezugspunkt ist die Text Grundlinie.
Text - Der Text der gezeichnet wird
Beispiel:
Drawtext(5,5,"Hallo")
----
==== DrawRotatedText(X,Y,A,Text) ====
Erstellen eines Textes unter einem Winkel
X - die horizontale Position
Y - die vertikale Position.
Der Bezugspunkt ist die Text Grundlinie.
A - Der Winkel, gemessen im Uhrzeigersinn von der Horizontalen.
Muss zwischen 0 und 360 liegen.
T - Der Text der gezeichnet wird
*Beispiel :*
DrawRotatedText(5,5,45,"Hallo")
Erstellen eines Textes im Winkel von 45 Grad
----
==== DrawBarCode(X,Y,W,H,B,O,Text)====
Erstellen eines BarCodes.
X - die horizontale Position
Y - die vertikale Position.
Der Bezugspunkt ist die Text Grundlinie.
W - die Breite des Codes
H - die Höhe des Code
B - die Art des Barcodes
1 = Code39 (or Code 3 of 9)
2 = EAN-13
3 = Code128
4 = PostNet
5 = Interleaved 2 of 5
O - Optionen
Code39:
0 = Default drawing
EAN-13:
0 = Only draw the barcode
1 = Extend the guard bars
2 = Draw the human-readable numbers
3 = Draw the human-readable numbers, with right spacer
Code128:
0 = Default drawing
PostNet:
0 = Default drawing
Interleaved 2 of 5:
0 = Do not add a checksum, no bearer bars
1 = Add a checksum character, no bearer bars
2 = Do not add a checksum, draw bearer bars
3 = Add a checksum character, draw bearer bars
To apply 10% bar width reduction to the barcode,
increase the value of the Options parameter by 10
T - Der Text der gezeichnet wird
Beispiel : DrawBarcode(5,5,30,10,1,0,"Hallo") - Erstellen eines Code 39
----
==== NormalizePage(x)====
Je nach Quelle der PDF, kann das setzen des Ursprung nicht funktionieren - d.h. das SetOrign sitzt nicht in den Ecken. Dann ist es notwendig, das Dokument zu normieren.
0 = Standard normalization
1 = Normalize And also balance the graphics state stack
2 = Maintain existing page structure
3 = Maintain existing page structure And balance the stack
Beispiel : NormalizePage(0) - Normalisieren der PDF
----
===== Inventor Funktionen=====
Für Datei Inhalte / iProperty und Parameter aus dem Inventor stehen die folgenden Funktionen zu Verfügung:
----
==== GetProperty(Str)====
Gibt die iProperties des Deckblattes (IDW) oder der obersten Baugruppe (IAM) zurück.
Für IDW : Text aus der Kopfzeile der Stückliste
GetProperty("Titel")
Für IAM : Name des Properties aus der Obersten Baugruppe
GetProperty("IDENT")
----
==== GetBomRow(Str)====
Gibt den Wert der angegebenen Stücklisten Zeile zurück.
Die Positionsnummer / Stückzahl kann mit :
POS
ANZAHL
ermittelt werden.
Die ANZAHL Wird als String ( Text ) zurückgegeben.
Soll mit dem Wert gerechnet werden ist ein
VAL ( GetBomRow("ANZAHL") )
notwendig.
Ermitteln der Propertys aus IPT / IAM
GetBomRow("IDENT")
GetBomRow("POS")
GetBomRow("CTH_ARTNR")
-----
==== GetParameter(name)====
Gibt den Parameter der Inventor Datei zurück.
Optional kann noch der Parameter "U" angegeben werden - Zurückgegeben wird dann die Einheit.
GetParameter("Länge") > 100.00
GetParameter("Länge","U") > mm
----
==== GetParameterModel(name)====
Gibt den Modell Parameter der Inventor Datei zurück.
Optional kann noch der Parameter "U" angegeben werden - Zurückgegeben wird dann die Einheit.
GetParameterModel("d1") > 100.00
GetParameterModel("d1","U") > mm
----
==== GetParameterUser(name)====
Gibt den Modell Parameter der Inventor Datei zurück.
Optional kann noch der Parameter "U" angegeben werden - Zurückgegeben wird dann die Einheit.
GetParameterUser("MEINER") > 250,00
GetParameterUser("MEINER","U") > mm
----
===== iPart Funktionen / Variablen=====
Innerhalb des iPart Modules stehen noch die folgende Variablen und Funktionen zur Verfügung :
Allgemeine
root - Das Root Verzeichnis in dem die iParts liegen
cpuID - ID der CUP
unique - Erzeugt einen in Verbindung mit PC eindeutigen Dateinamen.
( Bei Halbzeugen - Customer iParts )
iam_name - Name der IAM die geöffnet ist
iam_pfad - Pfad der IAM die geöffnet ist
Informationen zum iPart
ipart ............. - Name des iParts ohne Dateiendung
( Diese Variable steht nur im echten Betrieb zur Verfügung.
Beim Testen im Setup wird der Wert "x-ipart-x" zurückgegeben )
ipart_file ........ - Name des iParts mit Dateiendung
( Diese Variable steht nur im echten Betrieb zur Verfügung.
Beim Testen im Setup wird der Wert "x-ipart_name-x" zurückgegeben )
ipart_pfad ........ - Dateipfad des iParts
( Diese Variable steht nur im echten Betrieb zur Verfügung.
Beim Testen im Setup wird der Wert "x-mutter-x" zurückgegeben )
ipart_fullfilename - Kompletter Dateiname des iParts
( Diese Variable steht nur im echten Betrieb zur Verfügung.
Beim Testen im Setup wird der Wert "x-mutter-x" zurückgegeben )
Informationen zur Variante
variante .......... - Name der Variante ohne Dateiendung
( Diese Variable steht nur im echten Betrieb zur Verfügung.
Beim Testen im Setup wird der Wert "x-variante-x" zurückgegeben )
variante_name ..... - Name der Variante mit Dateiendung
( Diese Variable steht nur im echten Betrieb zur Verfügung.
Beim Testen im Setup wird der Wert "x-variante_name-x" zurückgegeben )
variante_pfad ..... - Kompletter Dateipfad der Variante
( Diese Variable steht nur im echten Betrieb zur Verfügung.
Beim Testen im Setup wird der Wert "x-variante_pfad-x" zurückgegeben )
variante_fullfilename - Kompletter Dateiname der Variante
( Diese Variable steht nur im echten Betrieb zur Verfügung.
Beim Testen im Setup wird der Wert "x-variante_pfad-x" zurückgegeben )
----
===== Sonstige Funktionen=====
An allgemeinen Funktionen steht zur Verfügung
----
==== val(Str)====
Wandelt den Text in eine Zahl um
----
==== now() ====
Liefert das aktuelle Datum und Zeit
----
==== today()====
Liefert das aktuelle Datum
----
==== len(Str)====
Liefert die Länge des String
----
==== mid(Str,Start,Länge)====
Gibt eine Zeichenfolge zurück, die eine festgelegte Zeichenanzahl aus einer Zeichenfolge enthält.
Str Erforderlich. Ist ein String-Ausdruck, aus dem Zeichen zurückgegeben werden.
Start Anfangsposition der zurückzugebenden Zeichen.
Länge Anzahl der zurückzugebenden Zeichen.
Wird kein Wert für Länge angegeben oder befinden sich weniger Zeichen im Text (das Zeichen an der Position Start eingeschlossen) als durch Länge angegeben, werden alle Zeichen ab der Startposition bis zum Ende der Zeichenfolge zurückgegeben.
----
==== trim(Str)====
Entfernt am rechten Ende die Leerzeichen.
----
==== format(Str, FormatString)====
Formatiert die Eingabe
Siehe auch : [[https://msdn.microsoft.com/de-de/library/0c899ak8%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396|Link]]
----
==== replace(text, suche, ersetze)====
Sucht im Text und ersetzt durch den angegeben Text
( erst ab Speedup Version 5x )
----
==== ucase (Str)====
Wandelt einen String in Großbuchstaben um
----
==== lcase (Str)====
Wandelt einen String in Kleinbuchstaben um
----
==== int(Zahl)====
Wandelt eine Zahl in eine Integer Zahl um
----
==== pc()====
Gibt den Name des PC zurück
----
==== user()====
Gibt den Name des angemeldeten Benutzers zurück
----
==== domain()====
Name der Domaine
----
==== getactivediruser()====
Kompletter User Name vom Aktive Directory
-----
==== LegalFileName( cText )====
Wandelt den Inhalt von cText in einen gültigen Dateinamen um ( Ersetzt durch "_" )
-----
==== LegalPathName( cText )====
Wandelt den Inhalt von cText in einen gültigen Pfadnamen um ( Ersetzt durch "_" )
-----
===== Beispiel Stempel für PDFs=====
==== Beispiel 1====
Mediabox 0210_0297
Startpunkt 150,80
Stempel SetOrigin(3)
SetTransparency(80)
SetTextSize(240)
SetTextUnderline(2)
#
# Nun der Text
#
DrawRotatedText(5,5,60,"Nur zur Ansicht !")
Der Stempel ist Transparent und liegt hinter der Zeichnung
!stamp1.png!
-----
==== Beispiel 2====
Mediabox 0210_0297
Startpunkt 150,80
Stempel #
DrawText(5 ,0,now())
DrawText(5, 5,format( now(),"dddd, MMM d yyyy"))
Drawtext(5,10,format( now(),"HH:mm:ss"))
#
Drawtext(5,20,pc())
Drawtext(5,25,user())
#
Datum / Benutzer und PC Name einstempeln
!stamp2.png!
----
==== Beispiel 3====
Drei abgefragten Werte einstempeln
Mediabox 0210_0297;0420_0297;0594_0420;0841_0594;1189_0841
Startpunkt 100,100
#
# Gesamt Nullpunkt auf 100 / 100
#
# Ursprung nach unten rechts
SetOrigin(3)
#
# Texgröße
SetTextSize(5)
#
#SetTextUnderline(2)
#
# Box Zeichnen
# Box Zeichnen
DrawBox(0,0,80,20,2)
#
#Texte und Werte eintragen
DrawRotatedText(-4, -5,0,"Zu fertigen : " + Value01)
DrawRotatedText(-4,-10,0,"Auftrag : " + Value02)
DrawRotatedText(-4,-15,0,"Baugruppe : " + Value03)
Das Ergebnis :