4 Replies Latest reply on Jan 26, 2009 5:21 AM by (<--NiTrO-->)

    Problem relink Image - CORBA


      My CS3 Document contains one Rectangle with one Image.
      Now I want to change the Image via CS3 Server Java / CORBA Plugin.
      After running the code, InD changes the Link, but i can't see the new
      image in the Rectangle.
      One information for the following Source-Code:
      the method startServer initialize the InD-Session and returns the
      opened Document as Object of Type Document.
      Here is the code:

      Rectangle ra = doc.getNthChildRectangle(0);
      int recId = ra.getId();
      Image image = ra.getNthChildImage(0);
      int imgId = image.getId();
      Link link = image.getItemLink();
      int linkId = link.getId();
      System.out.println("RectAngleID: " + recId);
      System.out.println("ImageID: " + imgId);
      System.out.println("LinkID: "+linkId);
      linkId = link.getId();
      System.out.println("LinkID: " + linkId);
      imgId = image.getId();
      System.out.println("ImageID: " + imgId);
      recId = ra.getId();
      System.out.println("RectAngleID: " + recId);

      <-- This lines you can see in the console -->

      RectAngleID: 198
      ImageID: 319
      LinkID: 320
      LinkID: 0
      ImageID: 0
      RectAngleID: 198

      I don't know what's wrong in this snippet.
      Thanks for your answers.
        • 1. Re: Problem relink Image - CORBA
          Hi Nitro,

          i do not have experience with Java. I program only with Javascript. With Javascript I would test the link status (link.status;). Which response do you get?

          Greeting Andreas
          • 2. Re: Problem relink Image - CORBA
            (<--NiTrO-->) Level 1
            Hello Andreas!

            My Link Status is Normal!
            After relinking and updateing the Link, do i have to update the rectangle, also?

            If I have to do that, how can I update the rectangle?
            What functions or interface do you use for that?
            Can you send me a little Code Snippet, if you have written the
            part in JavaScript?

            Thanks for your help.

            Best regards
            • 3. Re: Problem relink Image - CORBA
              Belati Level 1

              her a javaScript example. I think, u need a File Object. ...relink(File( newLink ));...
              I hope this help u.

              function main(){
              var myDocument = app.activeDocument;
              var newPath = /Volumes/Macintosh/Bilder;
              for(var myCounter = 0; myCounter < myDocument.allGraphics.length; myCounter++){
              var myGraphic = myDocument.allGraphics[myCounter];
              var graphicName = myGraphic.itemLink.name;
              var myRegExp = new RegExp(/^_.*_(.*)\.indd$/);
              var docName = myDocument.name.replace(myRegExp, "$1");
              var newLink = newPath + "/" + docName + "/Links/" + graphicName;
              var datei = new File( newLink );
              if(datei.exists == true){
              // Link löschen
              myGraphic.itemLink.relink(File( newLink ));
              // Link neu verknüpfen
              myGraphic.itemLink.update(File( newLink ));
              alert("Die Datei " + newLink + " ist nicht vorhanden. Bild oder Grafik wurde nicht gewechselt!");
              • 4. Re: Problem relink Image - CORBA
                (<--NiTrO-->) Level 1
                Thanks for your help!

                That's the way I tried to implement the Update Link Part.
                In Java I can't handle the File Object with the InDesign relink
                Method. I can only work with a String. :-(

                Thanks a lot for you fast answer and help.

                For Java / CORBA there must be another way to give the rectangle the Link-Object.