2009-02-07 147 views

回答

4

我曾經使用過的第一個Illustrator版本是10,但是,版本9中是否有鏈接托盤?嘗試窗口菜單並尋找「鏈接」。它有幾個選項在那裏搜索你想要的圖像,重新鏈接,打開原件等。

+0

啊!在鏈接調色板中有文件名,但不是它的路徑。選項: - 更換鏈接 - 後藤鏈接(在doc到影像,而不是文件系統) - 更新鏈接(刷新) - 編輯原始(嘗試的東西,失敗) 無差了一點,但我可以使用搜索來查找文件。謝謝! – dfrankow 2009-02-08 15:45:31

1

很高興知道這張海報已設置,但是這並不回答這個問題。在CS3中,如果雙擊鏈接調色板中的圖像,ti會爲鏈接元素顯示鏈接信息,該鏈接信息顯示文件的路徑(只要它不長於窗口)。

也許舊版本也允許你這樣做。

不幸的是,如果你正在處理一個缺少的鏈接元素(在打開文件時忽略了這個元素),這個字段是空白的。與InDesign相比,Illustrator吸收文件打包和鏈接。如果它可以打包InDesign這樣的文件,並將相對引用存儲到外部資源,那將會很好。

0

我使用以下perl腳本來跟蹤Illustrator文件中的鏈接圖像。這對於斷開的鏈接特別有用,因爲它仍然會通過在Illustrator文件內窺視來告訴鏈接圖像的完整路徑。它明顯比任何人需要的都多,但也許會有用。該幫助應解釋如何使用它。在我的機器上,我稱它爲ailinkedfiles.pl,並且已將它放入我的PATH中的〜/ bin中。

#!/usr/bin/perl 

# program to find the linked files inside an Adobe Illustrator file 
require 5.004; 
use File::Basename; # to extract a filename from a full path 
use File::Find;  # to build a list of files 
use File::Spec;  # Platform independent way to build paths 
use vars qw/ %opt /; # for command line options - see init() 
use strict; 


init(); # process command line options 

# Autoflush stdout 
$|=1; 

if ($opt{p}){ 
die "Did you really mean to call your script ".$opt{p}."!\n" if($opt{p} =~ /\.ai$/i); 
print "Generating script file $opt{p}\n" if $opt{v}; 
open SCRIPT, "> $opt{p}"; 
} 

die "No input specified; use ".basename($0)." -h for help\n" if(@ARGV==0); 
my $arg; foreach $arg (@ARGV){ 
if(-d $arg){ 
    # nb it is necesary to convert the directory specification 
    # to an absolute path to ensure that the open in &findLinkedFiles 
    # works properly during multi directory traversal 
    my $InDir=File::Spec->rel2abs($arg); 
    find(\&handleFind,$InDir); 
} elsif (-f $arg) { 
my $InDir=File::Spec->rel2abs(dirname($ARGV[0])); 
    &findLinkedFiles(File::Spec->rel2abs($ARGV[0]),$InDir) ; 
# &findLinkedFiles(File::Spec->rel2abs($arg)) ; 
} 
} 

sub init() 
# copied from: http://www.cs.mcgill.ca/~abatko/computers/programming/perl/howto/getopts 
{ 
use Getopt::Std;  # to handle command line options 
my $opt_string = 'hvlzdsftnp:ux:'; 
getopts("$opt_string", \%opt) or usage(); 
usage() if $opt{h}; 
} 

# Print out usage information 
sub usage() 
{ 
print STDERR << "EOF"; 
Usage: $0 [OPTIONS] <AIFILE/DIR> 

Parse an Adobe Illustrator file or (recursively) parse a directory of ai files 
and print a list of the linked files to STDOUT. These could be piped to xargs eg: 
$0 aifile.ai | xargs -I {} ln -vs 

-h print this help 
-v verbose ouput 
-s print file names with short path 
-d print current directory on each line 
-n no-print (suppresses printing of linked file names) 
-x <regex> exclude files whose full path matches regex 

-l symlink in current directory if file linked from Illustrator file exists somewhere else 
-f force symlink to overwrite existing target file 
-t test run 
-p <file> write commands to a script file 

-u status of src and target 
    - doesn't exist 
    F plain file 
    L symbolic link 
    E exists (unknown file type) 

Note that src is the link contained in the Illustrator file and 
target is a file of the same name in the same directory as the Illustrator file 

If the status is -- you will have problems in Illustrator 
If the status is -F Illustrator will substitute the local file for the unavailable linked file 
If the status is F- you can run this script with the -s option to make a symlink 
If the status is FF then Illustrator will be happy 

EOF 
exit(); 
} 

sub mysymlink{ 
my ($src,$targetdir)[email protected]_; 
my $target=File::Spec->catdir($targetdir,basename($src)); 

if(File::Spec->rel2abs($src) eq File::Spec->rel2abs($target)){ 
    print "src and target identical for src=$src\n" if $opt{v}; 
    return; 
} 

if(-e $src){ 
    my $opts=$opt{f}?"-fsv":"-sv"; 
    my $cmd="ln $opts \"$src\" \"$target\""; 
    myexec("$cmd"); 
} else { 
    print "No link made: $src doesn't exist\n" if $opt{v}; 
} 
} 
sub myexec { 
my ($cmd) = @_; 
if ($opt{t}){ 
    print STDERR "test: $cmd\n"; 
} elsif ($opt{p}){ 
    print SCRIPT $cmd,"\n"; 
} else { 
    # should get to see output with system 
    print STDERR "run: $cmd\n" if $opt{v}; 
    return system $cmd; 
} 
} 

sub mystatus{ 
my ($src,$targetdir)[email protected]_; 
my $target=File::Spec->catdir($targetdir,basename($src)); 

my ($ss,$ts)=("-","-"); 

$ss = "E" if(-e $src); 
$ss = "F" if(-f $src); 
$ss = "L" if(-l $src); 
$ts = "E" if(-e $target); 
$ts = "F" if(-f $target); 
$ts = "L" if(-l $target); 
return ($ss.$ts); 
} 

# This extracts the file info from the header 
sub handleFind{ 
# get the file name 
my $FullFoundFile = $File::Find::name; 
#print $FullFoundFile,"\n"; 

return if ($opt{x} and $FullFoundFile =~ /$opt{x}/i); 

# parse if it ends in ai 
findLinkedFiles($FullFoundFile, $File::Find::dir) if ($FullFoundFile =~ /\.ai$/i); 
} 


# This does the actual parsing of the Illustrator Files 
sub findLinkedFiles{ 
my ($InFile,$InDir)[email protected]_; 

# protect with escaped quotes for shell if non-empty 
my $ProtectedInDir=$InDir?"\"$InDir\"":$InDir; 

die "Can't open $InFile \: $!\n" unless open(AIFILE, "<$InFile"); 
binmode(AIFILE); 

# %%DocumentFiles is the starting point 
$/="%%"; 
my @lines = readline<AIFILE>; 

if(@lines==0){ 
    print STDERR "can't read header of $InFile\n" if $opt{v} ; # the header length 
    return; 
} 

print "################\n"; 

if ($opt{s}){ 
    print "# FILE = ",basename($InFile),"\n"; 
} else { 
    print "# FILE = ",$InFile,"\n"; 
} 
for my $i (0 .. $#lines){ 
# if ($lines[$i]=~/^DocumentFiles\:(.*?)\W+%%/){ 
# not sure why we need two % signs here 
    if ($lines[$i]=~/^DocumentFiles\:(.*?)\W+%/){ 
    print mystatus($1,$InDir)," " if $opt{u} and not $opt{n}; 
    print "\"$1\" ",$opt{d}?$ProtectedInDir:"","\n" unless $opt{n}; 
    $i++; 
    mysymlink($1,$InDir) if $opt{l}; 
    while($lines[$i]=~/^[+](.*?)\W\%.*$/){ 
# print "\"$1\" $InDir\n"; $i++; 
    print mystatus($1,$InDir)," " if $opt{u} and not $opt{n}; 
    print "\"$1\" ",$opt{d}?$ProtectedInDir:"","\n"unless $opt{n}; 
    $i++; 
    mysymlink($1,$InDir) if $opt{l};  
    } 

    } 
} 
} 
2

我只是在Illustrator CS4這個問題;我的很多東西最近都被歸檔了。

單擊美工板中的「缺失」圖像。

在左上角您將看到顯示的文件名稱。

在後續的下拉菜單中點擊「編輯原創」。 Illustrator將嘗試查找該文件,並閃爍一個警告窗口「窗口無法找到文件」等給你完整的文件位置。

由於編輯原件在鏈接窗口中顯示爲灰色,因此這很有用。對於像我這樣擁有大量文件庫的人來說非常有用。

相關問題