Genodi Geschrieben 18. Oktober 2011 Teilen Geschrieben 18. Oktober 2011 Guten Morgen liebe Leute, jetzt bin ich schon am verzweifeln und bevor ich mein grandioses Englisch im Adobe-Forum nutze, versuche ich es erst mal hier. Ich programmiere in Visual Studios 2008 in C++ ein Pugin für den Adobe Illustrator. Ziel des Plugins ist es, automatisch wenn ein MenuItem von mir geklickt wird, die einzelnen Zeichnungen (Artboards) als png zu exportieren. Das MenuItem habe ich ohne Probleme implementieren können. Die IllustratorSDK hilf da ja auch sehr. Nur mit dem exportieren haperts. Ich nutze hierzu den ActionManager->PlayActionEvent() und generiere mir vorher die Parameter: AIActionParamValueRef myParams = nil; error = sAIActionManager->AINewActionParamValue(&myParams); if(myParams){ error = sAIActionManager->AIActionSetStringUS(myParams, kAIExportDocumentNameKey, ai::UnicodeString("C:\test.png") ); error = sAIActionManager->AIActionSetString(myParams, kAIExportDocumentFormatKey, "Adobe PNG Format"); error = sAIActionManager->AIActionSetString(myParams, kAIExportDocumentExtensionKey, "png"); error = sAIActionManager->AIActionSetBoolean(myParams, kAIExportDocumentSaveAllKey, true); error = sAIActionManager->AIActionSetBoolean(myParams, kAIExportDocumentSaveMultipleArtboardsKey, true); error = sAIActionManager->AIActionSetString(myParams, kAIExportDocumentSaveRangeKey, "5"); error = sAIActionManager->RecordActionEvent(kAIExportDocumentAction, kDialogOff, myParams); if (sAIActionManager->InRecordMode){ sAIActionManager->PlayActionEvent(kAIExportDocumentAction, kDialogOff, myParams); } } Das Problem ist, dass sich immer der Dialog zum exportieren öffnet, obwohl ich "kDialogOff" ausgewählt habe und noch nicht einmal die Zeichnungen im unteren Bereich aktiv sind, obwohl ich den Parameter: kAIExportDocumentSaveMultipleArtboardKey auf true gesetzt habe. Der Dialog wird aber für PNG geöffnet. (Screenshot siehe Anhang) Ich hoffe jemand kann mir da weiterhelfen, denn die Lösungen in Google funktionieren leider nicht, die habe ich alle schon ausprobiert. Grüße Genodi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 18. Oktober 2011 Teilen Geschrieben 18. Oktober 2011 Erste Grundregel der Fehlersuche: Rückgabewerte prüfen. Prüfen heißt nicht, in einer Variablen ablegen und dann ignorieren. Das \t in deinem Dateinamen-Literal wird übrigens als Tab interpretiert. Wenn da ein Backslash stehen soll, musst du im Literal zwei \ machen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Genodi Geschrieben 18. Oktober 2011 Autor Teilen Geschrieben 18. Oktober 2011 Erste Grundregel der Fehlersuche: Rückgabewerte prüfen. Prüfen heißt nicht, in einer Variablen ablegen und dann ignorieren. Die Variable error ist immer 0 also kein Fehler, dies habe ich mit dem Debugger geprüft. Das \t in deinem Dateinamen-Literal wird übrigens als Tab interpretiert. Wenn da ein Backslash stehen soll, musst du im Literal zwei \ machen. Wenn ich das mache erhalten ich einen Fehler mit folgendem Text: Der Vorgang kann nicht vollständig ausgeführt werden, weil ein unbekannter Fehler aufgetreten ist. [DFER] siehe Screenshot in anhang Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 18. Oktober 2011 Teilen Geschrieben 18. Oktober 2011 Kannst du denn mit denselben Einstellungen manuell speichern? Hast du insbesondere Schreibzugriff auf C:\? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Genodi Geschrieben 18. Oktober 2011 Autor Teilen Geschrieben 18. Oktober 2011 Oh mann, was für ein Anfängerfehler, da muss ich mal mit unseren Admins schimpfen, was die mir für eine VM abgelegt haben *Schuldwegschieb* Danke Klotzkopp, wenn noch was ist, dann würde ich mich nochmal melden! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Genodi Geschrieben 18. Oktober 2011 Autor Teilen Geschrieben 18. Oktober 2011 (bearbeitet) So jetzt kommt das nächste Problem: Es funktioniert im Grunde, aber scheinbar reichen dir Parameter nicht. Laut Hilfe von Adobe sind das alle Params für die kAIExportDocumentAction. Wenn der dann versucht zu schreiben, dann wird eine *.tmp$$ Datei mit 0 Bytes geschrieben und es kommt ein Fehler "ID=-108", dass nicht genug Speicher da ist. Meine VM hat 4 GB und es sind noch locker 2 GB RAM frei. Wenn der Exportvorgang startet, dann geht im TaskManager die RAM-Nutzung auch 3,5 GB hoch also über 1 GB mehr RAM für den Illustrator. Das kann doch nicht sein oder? Weiß jemand noch etwas hierzu zu ergänzen? EDIT: Der export dauert auch ziemlich lange! Bearbeitet 18. Oktober 2011 von Genodi Ergänzung Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 18. Oktober 2011 Teilen Geschrieben 18. Oktober 2011 Funktioniert es denn jetzt manuell? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Genodi Geschrieben 18. Oktober 2011 Autor Teilen Geschrieben 18. Oktober 2011 Ja manuell geht es, da kommt ein Dialog mit dem ich die Auflösung etc. einstellen kann, da habe ich das Gefühl, dass ich das als Parameter angeben muss, ich weiß aber nicht wie die Parameternamen sind (meistens char[4]) die ich dann bestücken kann, das ist auch nicht bei Adobe dokumentiert. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 18. Oktober 2011 Teilen Geschrieben 18. Oktober 2011 Hast du den schon gelesen? Adobe Forums: Export to PNG from Illustrator Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Genodi Geschrieben 18. Oktober 2011 Autor Teilen Geschrieben 18. Oktober 2011 Ja da bin ich schon länger dran, aber bisher ohne Erfolg, ich darum führe ich parallel hier noch ein Thema, um schneller an eine Lösung zu kommen. Dort wird das Bild vorher angepasst, damit es exportiert werden kann. In der letzten Lösung wird das gesat Dokument zum PNG exportiert, das ist aber nicht mein Ziel, ich möchte jedes Artboard exportieren können. Wenn ich das mit der normalen Exportieren-Funktion mache, dann gibt es keine Probleme, ich versuche es gerade mit dem ai_plugin_rasterize. Ich weiß aber nicht ob das die Lösung ist, die ich möchte, weil das Dokument selbst "nicht" verändert werden darf. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Genodi Geschrieben 18. Oktober 2011 Autor Teilen Geschrieben 18. Oktober 2011 Also ich habe es weiter probiert und leider greifen die Lösungen aus dem Foren-Eintrag von Adobe nicht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Genodi Geschrieben 18. Oktober 2011 Autor Teilen Geschrieben 18. Oktober 2011 Ich habe die AIImageOptPNG... wie es im o.g. Link steht, ich weiß aber leider nicht, wie ich diese Parameter in die ActionEvent einbinde, weiß das jemand? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.