[GastForen Betriebsysteme und Dienste HELIOS Helios Scriptserver

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Helios Scriptserver

Mabusesteve
Beiträge gesamt: 49

16. Aug 2017, 14:45
Beitrag # 1 von 6
Bewertung:
(7850 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen

Ich habe mit dem Script Assistent ein Script zur Umrechnung von Bildern erstellt. Das läuft und bringt das gewünschte Ergebnis.

Aber er läuft nur wenn das zu bearbeitende Verzeichnis in den Hotfolder kopiert wird. Wenn das Verzeichnis nur in den Hotfolder verschoben wird läuft es nicht los.
Also wenn es auf dem gleichen Heliosvolumen in den Hotfolder geschoben wird passiert nicht, wenn es rein kopiert wird - alles bestens...

Da ich leider kein Scriptkenntnisse habe, kann mir jemand vielleicht einen Tipp geben.

hier noch das script:
#!var/run/runperl -w
# $Id: conversionTemplate.pl,v 1.11 2015/02/16 13:53:21 tom Exp $

#
# Sample configuration
#
my $default_settings = <<'</SETTINGS>'; # Let Perl ignore the settings block
<SETTINGS>
<General
Enable="true"
Hot_Folder="/HotFolderPath"
Include_Subdirectories="false"
User=""
Timeout="600"
/>
<File_Types
Types="TIFF,JPEG,EPSF,8BIM,8BPS,PICT,BMP ,PNGf,..CT,PDF ,JP2 ,RAW "
Suffixes="tif,jpg,eps,psd,pct,bmp,png,sct,pdf,jp2,raw,cr2,nef,arw,dng,orf,raf,pef,sr2,crw,x3f,erf,mef,rw2"
Folder_Changes="false"
/>
<Environment
OUTDIR="DONE"
ERRDIR="ERROR"
CONVNAME_ADDITION="conv"
/>
</SETTINGS>

use strict;

BEGIN {
use vars qw($HELIOSDIR);
$HELIOSDIR = $ENV{"HELIOSDIR"} or die "HELIOSDIR not set in environment\n";
unshift(@INC, "$HELIOSDIR/etc/perl");
}

use HELIOS::Utils;
use File::Basename;
use IO::Handle;
STDOUT->autoflush(1);
STDERR->autoflush(1);

# input file
my $sInputFile = $ARGV[0] || die "$0: no input file specified\n";

# used applications
my $layoutCmd = "$HELIOSDIR/bin/layout";
my $dtCmd = "$HELIOSDIR/bin/dt";

# environment parameters
my $sOutDir = $ENV{OUTDIR} || "DONE";
my $sErrDir = $ENV{ERRDIR} || "ERROR";
my $sConvNameAdd = $ENV{CONVNAME_ADDITION} || "conv";
my $iScriptDebug = int ($ENV{SCRIPTDEBUG} || "0");

# get directory name, base name with and without suffix from input file name
my $iPos = rindex($sInputFile, "/") + 1;
my $sWorkDir = HELIOSPathToSystemPath(substr($sInputFile, 0, $iPos));
my $sBasename = substr($sInputFile, $iPos);
(my $sShortBasename = $sBasename) =~ s/\.\w*$//;
my $Suffix = substr($sBasename, rindex($sBasename, "."));

my $DeleteOriginal = 1;
my $sTargetSuffix = ".jpg";

print " Start Script: [$$] $0 $sInputFile\n" if ($iScriptDebug > 0);

chdir("$sWorkDir") || die "[$$] $0: cannot change working directory to $sWorkDir\n";

if (! -d $sOutDir) {
!system("$dtCmd", "mkdir", "$sOutDir") || die "[$$] $0: cannot create directory $sWorkDir$sOutDir\n";}
if (! -d $sErrDir) {
!system("$dtCmd", "mkdir", "$sErrDir") || die "[$$] $0: cannot create directory $sWorkDir$sErrDir\n";}

# determine names of moved input file and output files
my $sProcessedFile = "$sShortBasename.$sConvNameAdd$sTargetSuffix";
my $iCounter = 0;

while (-f "$sOutDir/$sProcessedFile" || -f "$sErrDir/$sProcessedFile") {
$iCounter++;
$sProcessedFile = "$sShortBasename.$iCounter.$sConvNameAdd$sTargetSuffix";
}

print STDERR "Status: Running image conversion for file $sInputFile\n";
my $EventOption="-E"; # used for the 'dt' calls below

my @cmd = ($layoutCmd);


push @cmd, ("-T","JPEG");
push @cmd, "-oPrintColor=RGB";
push @cmd, "-oCompressQuality=100";
push @cmd, "-oCompressPrint=JPEG";
push @cmd, "-oScreenResolution=0";
push @cmd, "-oSpotToProcess=FALSE";
push @cmd, "-oIgnoreMasks=FALSE";
push @cmd, "-oIgnoreSpots=FALSE";
push @cmd, "-oOmitProfile=FALSE";
push @cmd, "-oIncludeProfile=TRUE";
push @cmd, "-oThumbnail=TRUE";
$EventOption="";
push @cmd, ("-l","$sBasename");
push @cmd, "$sProcessedFile";


print "[$$] Command line: " . (join " ", @cmd) . "\n" if ($iScriptDebug > 0);

my $iReturnValue = system(@cmd);

my $targetDir = $sErrDir;
if (!$iReturnValue) {
$targetDir = $sOutDir;
print "[$$] Move \"$sProcessedFile\" to \"$targetDir/$sProcessedFile\"\n";
@cmd=("$dtCmd", "mv");
push @cmd, $EventOption if $EventOption ne "";
push @cmd, "$sProcessedFile";
push @cmd, "$targetDir/$sProcessedFile";
system(@cmd) == 0 || die "[$$] $0: cannot move converted file to directory $sWorkDir$targetDir";
}

$sProcessedFile = "$sShortBasename". ($iCounter?".$iCounter":"") . "$Suffix";

if ($DeleteOriginal) {
print "[$$] Remove original file \"$sBasename\" \n";
@cmd=("$dtCmd", "rm");
push @cmd, $EventOption if $EventOption ne "";
push @cmd, "$sBasename";
system(@cmd) == 0 || die "[$$] $0: cannot remove input file.";
} else {
print "[$$] Move \"$sBasename\" to \"$targetDir/$sProcessedFile\"\n";
@cmd=("$dtCmd", "mv");
push @cmd, $EventOption if $EventOption ne "";
push @cmd, "$sBasename";
push @cmd, "$targetDir/$sProcessedFile";
system(@cmd) == 0 || die "[$$] $0: cannot move input file to directory $sWorkDir$targetDir";
}
print "End Script: [$$] $0 $sInputFile\n" if ($iScriptDebug > 0);

exit 0;
Hier Klicken X

Helios Scriptserver

GreatOm
Beiträge gesamt: 378

21. Aug 2017, 13:13
Beitrag # 2 von 6
Beitrag ID: #559154
Bewertung:
(7735 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Aber er läuft nur wenn das zu bearbeitende Verzeichnis in den Hotfolder kopiert wird. Wenn das Verzeichnis nur in den Hotfolder verschoben wird läuft es nicht los.
Also wenn es auf dem gleichen Heliosvolumen in den Hotfolder geschoben wird passiert nicht, wenn es rein kopiert wird - alles bestens...

Da ich leider kein Scriptkenntnisse habe, kann mir jemand vielleicht einen Tipp geben.


Das ist der falsche Weg. Ein Hotfolder funktioniert nur für die entsprechenden Dateitypen. Wenn ein Verzeichnis in den Hotfolder kopiert wird, geht es wenn "Mit Unterordnern" aktiv ist, was normalerweise nicht der Fall ist. Andernfalls könnte es zu weiteren Aktionen führen, wenn die fertigen Dateien vom Skript in den "DONE" Ordner verschoben werden.

Wenn nun ein Verzeichnis auf einem Volume verschoben wird, bekommt man nur einen Event für das Verzeichnis selber. Alle darunter liegenden Objekte werden ignoriert.
Daher sollte kein Verzeichnis, sondern nur dessen Inhalt (also nur die zu konvertierenden Dateien) in den Hotfolder verschoben werden.

Hilft das weiter?

Gruß,

GreatOm
--
Five exclamation marks, the sure sign of an insane mind. -- (Terry Pratchett, Reaper Man)


als Antwort auf: [#559087]

Helios Scriptserver

Mabusesteve
Beiträge gesamt: 49

21. Aug 2017, 13:56
Beitrag # 3 von 6
Beitrag ID: #559155
Bewertung:
(7726 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Great Om

Danke für deine ausführliche Antwort.

Ich hatte das Script mit der "Mit Unterordnern" Funktion versehen. Die Ergebnisse landen dann im DONE Ordner. Würde mir so passen :-)

Ich verstehen nicht ganz warum das nur beim in den Hotfolder kopieren funktioniert, aber nicht beim "verschieben" funktioniert.

Aber villeicht hast du einen andern Idee zur Lösung des Problem:

Wir müssen ca. 30000 Bilder "umspeichern" von tif in JPG Format.
Das Problem ist, dass die Struktur der Verzeichnisse erhalten bleiben muss!
So müsste ich nur die umgerechneten aus dem DONE Verzeichnis nehmen und wenn alles fertig ist die DONE Verzeichnisse löschen.

Merci


als Antwort auf: [#559154]

Helios Scriptserver

GreatOm
Beiträge gesamt: 378

21. Aug 2017, 14:13
Beitrag # 4 von 6
Beitrag ID: #559156
Bewertung:
(7725 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Aber villeicht hast du einen andern Idee zur Lösung des Problem:


Yep.
In diesem Fall einfach "Mit Unterordnern" beibehalten und das Verzeichnis mit den Bildern in den Hotfolder legen.

Nun von HELIOS Applications -> MacOS -> ImageServer Tools -> Touch.dmg öffnen, "Touch.app" auf den Schreibtisch kopieren und das Diskimage wieder auswerfen.

Nun kannst Du den Order im HotFolder öffnen und alle Dateien (auf keinen Fall die evtl. vorhandenen DONE-Ordner) auf "Touch.app" droppen.

Du musst hier aufpassen, dass nur die zu bearbeitenden Dateien "getoucht" werden, da ansonsten auch alles im DONE-Ordner einen Event bekommt, wodurch auch diese Bilder neu verarbeitet werden und in einem frischen DONE-Ordner landen, der dann evtl. wieder bearbeitet wird usw.
Das ist die Gefahr bei "Mit Unterordnern".

Vielleicht kannst Du das ja erst einmal mit ein paar Dateien im Ordner testen.

Hilft das weiter?

Gruß,

GreatOm
--
Five exclamation marks, the sure sign of an insane mind. -- (Terry Pratchett, Reaper Man)


als Antwort auf: [#559155]

Helios Scriptserver

Mabusesteve
Beiträge gesamt: 49

21. Aug 2017, 14:34
Beitrag # 5 von 6
Beitrag ID: #559157
Bewertung:
(7713 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
wieder einmal ein Hoch auf diese Foren!

Danke Great Om!!! Genau so soll es sein.

Gabs das auch irgendwo dokumentiert und ich habs einfach nicht gefunden?
Oder liegst an meinen mangelnden tieferen System Kenntnissen?

Kann dieser "Touch" noch mehr ;-) ?

Merci!


als Antwort auf: [#559156]

Helios Scriptserver

GreatOm
Beiträge gesamt: 378

21. Aug 2017, 14:55
Beitrag # 6 von 6
Beitrag ID: #559158
Bewertung:
(7711 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Danke Great Om!!! Genau so soll es sein.


Schön, dass es geholfen hat ;-)

Antwort auf: Gabs das auch irgendwo dokumentiert und ich habs einfach nicht gefunden?


Gute Frage…

Ein grep in HELIOSDIR zeigt, dass das Programm zum ImageServer gehört("Manifest.is"):
Code
[helios] grep Touch Manifest.* 
Manifest.is:public/MacOS/ImageServer Tools/Touch.dmg(5.0.0)
Manifest.is:public/Windows/ImageServer Tools/Touch.exe(5.0.0)


Eine Suche im Handbuch zeigt dann "5.5 Aktualisierung von Layoutbildern mit dem Programm „touch“" (http://www.helios.de/...-d/using.html#a00076)

Gruß,

GreatOm
--
Five exclamation marks, the sure sign of an insane mind. -- (Terry Pratchett, Reaper Man)


als Antwort auf: [#559157]
Hier Klicken X
Hier Klicken

Aktuell

InDesign / Illustrator
InDesign_Fazit

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
21.10.2019 - 22.10.2019

München
Montag, 21. Okt. 2019, 09.30 Uhr - Dienstag, 22. Okt. 2019, 17.30 Uhr

Schulung, Seminar

Wer hochwertige und farbechte Ergebnisse im Digitaldruck erzielen will, der braucht umfassende Colormanagemement- und PDF-Kenntnisse. Selbst wenn die Maschine kalibriert und das Rip richtig konfiguriert ist, lassen die Ergebnisse oft zu wünschen übrig. Der Grund hierfür liegt zu 90 % in den Daten und in falsch eingestellten Anwendungsprogrammen, auch in falschen Einstellungen im Druckmenü.

Nein

Organisator: Cleverprinting.de

https://www.cleverprinting.de/zweitaegige-weiterbildung-zum-digitaldruck-operator/

Zweitägige Weiterbildung zum Digitaldruck-Operator
Veranstaltungen
21.10.2019 - 23.10.2019

Riga, die Hauptstadt Lettlands
Montag, 21. Okt. 2019, 09.32 Uhr - Mittwoch, 23. Okt. 2019, 09.33 Uhr

VIP-Event

Jedes Jahr haben Sie die Möglichkeit, beim VIP-Event mehr über die Produkte von axaio software, callas software und andere Lösungen zu erfahren, die Four Pees anbietet.

Diejenigen, die uns bereits kennen, wissen, dass wir gerne Business mit Genuss kombinieren. Wir sind schon sehr gespannt und wollen Ihnen deshalb gern einen Blick hinter die Kulissen gewähren ...

Die Stadt der gotischen Türme
Das diesjährige Ziel ist Riga, die Hauptstadt Lettlands. Die gotischen Türme, die das Stadtbild Rigas dominieren, haben den Anschein von Strenge, aber das trifft nicht zu. Diese pulsierende, kosmopolitische Stadt ist die größte der drei baltischen Hauptstädte und beherbergt einige Szenebars und experimentelle Restaurants. Das klingt doch nach einem perfekten Rahmen für unser nächstes VIP-Event, oder?

Nein

Organisator: callas

https://www.callassoftware.com/de/events/2019/10/vip-event-riga

Sind Sie für das nächste VIP-Event bereit?