Hi SPUG, 
 
I am using Archive::Zip to create a MS WORD docx archive on win7 running 
ActivePerl Build 822 [280952].
It works mostly, but I think it is having problems with files that contain 
multiple full stops.
 
Example: word/_rels/document.xml.rels 
 
The docx file is created, and I can even open it (sometimes with errors) which 
I suspect might be related to the complaining that 
Archive::Zip::Member::_unixToDosTime is doing about the one file that has a 
funny name (at least for WIN).
 
The code isn't much:
 
sub zip_docx {
    $zip = Archive::Zip->new();
    $zip->addTree('.');
    $zipname = "$id".".docx";
    print STDERR "trying to create $zipname\n";
    $return = $zip->writeToFileNamed($zipname);
    if ($return ne AZ_OK) {
         print STDERR "Error creating $zipname rc: $return dollar_bang:$! :\n";
    }
    else {
         print STDOUT "$zipname created\n";
    }
}

 
Here are the errors:
 
C:\Users\nm040a\Desktop\FlatCQ>perl -w ../myperl/ddps/write_word.pl short.xml
IO error: Unsupported date before 1980 encountered, moving to 1980 : at 
C:/perl/lib/Archive/Zip/Member.pm line 491
        Archive::Zip::Member::_unixToDosTime(315561600) called at 
C:/perl/lib/Archive/Zip/Member.pm line 180
        
Archive::Zip::Member::setLastModFileDateTimeFromUnix('Archive::Zip::NewFileMember=HASH(0x38913b4)',
 315561600) called at C:/perl/lib/Archive/Zip/NewFileMember.pm line 36
        
Archive::Zip::NewFileMember::_newFromFileNamed('Archive::Zip::NewFileMember', 
'./word/_rels/document.xml.rels', 'word/_rels/document.xml.rels') called at 
C:/perl/lib/Archive/Zip/Member.pm line 54
        Archive::Zip::Member::newFromFile('Archive::Zip::Member', 
'./word/_rels/document.xml.rels', 'word/_rels/document.xml.rels') called at 
C:/perl/lib/Archive/Zip/Archive.pm line 202
        
Archive::Zip::Archive::addFile('Archive::Zip::Archive=HASH(0x386316c)','./word/_rels/document.xml.rels',
 'word/_rels/document.xml.rels') called at C:/perl/lib/Archive/Zip/Archive.pm 
line 607
        
Archive::Zip::Archive::addTree('Archive::Zip::Archive=HASH(0x386316c)',.) 
called at ../myperl/ddps/write_word.pl line 476
        main::zip_docx() called at ../myperl/ddps/write_word.pl line 126
trying to create cms00002173.docx
Error creating cms00002173.docx rc: 0 dollar_bang: :
 
The direcory structure of the folder is this:
 
_rels
    .rels
docProps
    app.xml
    core.xml
word
    _rels
        document.xml.rels
    theme
    theme1.xml
    document.xml
    fronTable.xml
    settings.xml
    styles.xml
    webSettings.xml


Regards,

Rich Wood 
Richard O. Wood
Wildwood IT Consultants, Inc.
[email protected]
425.281.1914 mobile
_____________________________________________________________
Seattle Perl Users Group Mailing List
     POST TO: [email protected]
SUBSCRIPTION: http://mail.pm.org/mailman/listinfo/spug-list
    MEETINGS: 3rd Tuesdays
    WEB PAGE: http://seattleperl.org/

Reply via email to