Image-ExifTool
view release on metacpan or search on metacpan
lib/Image/ExifTool/ZIP.pm view on Meta::CPAN
#------------------------------------------------------------------------------
# File: ZIP.pm
#
# Description: Read ZIP archive meta information
#
# Revisions: 10/28/2007 - P. Harvey Created
#
# References: 1) http://www.pkware.com/documents/casestudies/APPNOTE.TXT
# 2) http://www.cpanforum.com/threads/9046
# 3) http://www.gzip.org/zlib/rfc-gzip.html
# 4) http://DataCompression.info/ArchiveFormats/RAR202.txt
# 5) https://jira.atlassian.com/browse/CONF-21706
# 6) http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/indesign/cs55-docs/IDML/idml-specification.pdf
# 7) https://www.rarlab.com/technote.htm
#------------------------------------------------------------------------------
package Image::ExifTool::ZIP;
use strict;
use vars qw($VERSION $warnString);
use Image::ExifTool qw(:DataAccess :Utils);
$VERSION = '1.32';
sub WarnProc($) { $warnString = $_[0]; }
# file types for recognized Open Document "mimetype" values
my %openDocType = (
'application/vnd.oasis.opendocument.database' => 'ODB', #5
'application/vnd.oasis.opendocument.chart' => 'ODC', #5
'application/vnd.oasis.opendocument.formula' => 'ODF', #5
'application/vnd.oasis.opendocument.graphics' => 'ODG', #5
'application/vnd.oasis.opendocument.image' => 'ODI', #5
'application/vnd.oasis.opendocument.presentation' => 'ODP',
'application/vnd.oasis.opendocument.spreadsheet' => 'ODS',
'application/vnd.oasis.opendocument.text' => 'ODT',
'application/vnd.adobe.indesign-idml-package' => 'IDML', #6 (not open doc)
'application/epub+zip' => 'EPUB', #PH (not open doc)
);
# iWork file types based on names of files found in the zip archive
my %iWorkFile = (
'Index/Slide.iwa' => 'KEY',
'Index/Tables/DataList.iwa' => 'NUMBERS',
);
my %iWorkType = (
NUMBERS => 'NUMBERS',
PAGES => 'PAGES',
KEY => 'KEY',
KTH => 'KTH',
NMBTEMPLATE => 'NMBTEMPLATE',
);
# ZIP metadata blocks
%Image::ExifTool::ZIP::Main = (
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
GROUPS => { 2 => 'Other' },
FORMAT => 'int16u',
NOTES => q{
The following tags are extracted from ZIP archives. ExifTool also extracts
additional meta information from compressed documents inside some ZIP-based
files such Office Open XML (DOCX, PPTX and XLSX), Open Document (ODB, ODC,
ODF, ODG, ODI, ODP, ODS and ODT), iWork (KEY, PAGES, NUMBERS), Capture One
Enhanced Image Package (EIP), Adobe InDesign Markup Language (IDML),
Electronic Publication (EPUB), and Sketch design files (SKETCH). The
ExifTool family 3 groups may be used to organize ZIP tags by embedded
document number (ie. the exiftool C<-g3> option).
},
2 => 'ZipRequiredVersion',
3 => {
Name => 'ZipBitFlag',
PrintConv => '$val ? sprintf("0x%.4x",$val) : $val',
},
4 => {
Name => 'ZipCompression',
PrintConv => {
0 => 'None',
1 => 'Shrunk',
2 => 'Reduced with compression factor 1',
3 => 'Reduced with compression factor 2',
4 => 'Reduced with compression factor 3',
5 => 'Reduced with compression factor 4',
6 => 'Imploded',
7 => 'Tokenized',
8 => 'Deflated',
9 => 'Enhanced Deflate using Deflate64(tm)',
10 => 'Imploded (old IBM TERSE)',
12 => 'BZIP2',
14 => 'LZMA (EFS)',
18 => 'IBM TERSE (new)',
( run in 0.738 second using v1.01-cache-2.11-cpan-39bf76dae61 )