Improved XMP embedding/replace mechanism for EPS files, achieved more flexibility with less code, added and adjusted test cases

v0.27.3
vog 14 years ago
parent e5497c5188
commit 5eb9aefc67

@ -302,106 +302,6 @@ namespace {
} }
} }
//! Find removable XMP embeddings
static std::vector<std::pair<size_t, size_t> > findRemovableEmbeddings(const byte* data, size_t posStart, size_t posEof, size_t posEndPageSetup,
size_t xmpPos, size_t xmpSize, bool write)
{
std::vector<std::pair<size_t, size_t> > removableEmbeddings;
std::string line;
size_t pos;
// check after XMP
pos = xmpPos + xmpSize;
pos = readLine(line, data, pos, posEof);
if (line != "") return removableEmbeddings;
#ifdef DEBUG
EXV_DEBUG << "findRemovableEmbeddings: Found empty line after XMP\n";
#endif
pos = readLine(line, data, pos, posEof);
if (line != "%end_xml_packet") return removableEmbeddings;
#ifdef DEBUG
EXV_DEBUG << "findRemovableEmbeddings: Found %end_xml_packet\n";
#endif
size_t posEmbeddingEnd = 0;
for (int i = 0; i < 32; i++) {
pos = readLine(line, data, pos, posEof);
if (line == "%end_xml_code") {
posEmbeddingEnd = pos;
break;
}
}
if (posEmbeddingEnd == 0) return removableEmbeddings;
#ifdef DEBUG
EXV_DEBUG << "findRemovableEmbeddings: Found %end_xml_code\n";
#endif
// check before XMP
pos = xmpPos;
pos = readPrevLine(line, data, pos, posEof);
if (!startsWith(line, "%begin_xml_packet: ")) return removableEmbeddings;
#ifdef DEBUG
EXV_DEBUG << "findRemovableEmbeddings: Found %begin_xml_packet: ...\n";
#endif
size_t posEmbeddingStart = posEof;
for (int i = 0; i < 32; i++) {
pos = readPrevLine(line, data, pos, posEof);
if (line == "%begin_xml_code") {
posEmbeddingStart = pos;
break;
}
}
if (posEmbeddingStart == posEof) return removableEmbeddings;
#ifdef DEBUG
EXV_DEBUG << "findRemovableEmbeddings: Found %begin_xml_code\n";
#endif
// check at EOF
pos = posEof;
pos = readPrevLine(line, data, pos, posEof);
if (line == "[/EMC pdfmark") {
// Exiftool style
#ifdef DEBUG
EXV_DEBUG << "findRemovableEmbeddings: Found [/EMC pdfmark\n";
#endif
} else if (line == "[/NamespacePop pdfmark") {
// Photoshop style
#ifdef DEBUG
EXV_DEBUG << "findRemovableEmbeddings: Found /NamespacePop pdfmark\n";
#endif
pos = readPrevLine(line, data, pos, posEof);
if (line != "[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark") return removableEmbeddings;
#ifdef DEBUG
EXV_DEBUG << "findRemovableEmbeddings: Found /PUT pdfmark\n";
#endif
} else {
return removableEmbeddings;
}
// check whether another XMP metadata block would take precedence if this one was removed
{
size_t xmpPos, xmpSize;
findXmp(xmpPos, xmpSize, data, posStart, posEndPageSetup, write);
if (xmpSize != 0) {
#ifndef SUPPRESS_WARNINGS
EXV_WARNING << "Second XMP metadata block interferes at position: " << xmpPos << "\n";
#endif
if (write) throw Error(21);
}
}
removableEmbeddings.push_back(std::make_pair(posEmbeddingStart, posEmbeddingEnd));
removableEmbeddings.push_back(std::make_pair(pos, posEof));
#ifdef DEBUG
const size_t n = removableEmbeddings.size();
EXV_DEBUG << "findRemovableEmbeddings: Recognized Photoshop-style XMP embedding at "
"[" << removableEmbeddings[n-2].first << "," << removableEmbeddings[n-2].second << ")"
" with trailer "
"[" << removableEmbeddings[n-1].first << "," << removableEmbeddings[n-1].second << ")"
"\n";
#endif
return removableEmbeddings;
}
//! Unified implementation of reading and writing EPS metadata //! Unified implementation of reading and writing EPS metadata
static void readWriteEpsMetadata(BasicIo& io, std::string& xmpPacket, NativePreviewList& nativePreviews, bool write) static void readWriteEpsMetadata(BasicIo& io, std::string& xmpPacket, NativePreviewList& nativePreviews, bool write)
{ {
@ -529,10 +429,13 @@ namespace {
size_t posEndPageSetup = posEndEps; size_t posEndPageSetup = posEndEps;
size_t posPageTrailer = posEndEps; size_t posPageTrailer = posEndEps;
size_t posEof = posEndEps; size_t posEof = posEndEps;
std::vector<std::pair<size_t, size_t> > removableEmbeddings;
bool implicitPage = false; bool implicitPage = false;
bool photoshop = false; bool photoshop = false;
bool inDefaultsOrPrologOrSetup = false; bool inDefaultsOrPrologOrSetup = false;
bool inPageSetup = false; bool inPageSetup = false;
bool inPhotoshopXmp = false;
bool inExiv2Xmp = false;
for (size_t pos = posEps; pos < posEof;) { for (size_t pos = posEps; pos < posEof;) {
const size_t startPos = pos; const size_t startPos = pos;
std::string line; std::string line;
@ -546,15 +449,15 @@ namespace {
#endif #endif
} }
} }
if (line == "%%EOF" || line == "%begin_xml_code" || (line.size() >= 1 && line[0] != '%')) { if (line == "%%EOF" || (line.size() >= 1 && line[0] != '%')) {
if (posPage == posEndEps && posEndComments != posEndEps && !inDefaultsOrPrologOrSetup && !onlyWhitespaces(line)) { if (posPage == posEndEps && posEndComments != posEndEps && !inDefaultsOrPrologOrSetup && !inPhotoshopXmp && !onlyWhitespaces(line)) {
posPage = startPos; posPage = startPos;
implicitPage = true; implicitPage = true;
#ifdef DEBUG #ifdef DEBUG
EXV_DEBUG << "readWriteEpsMetadata: Found implicit Page at position: " << startPos << "\n"; EXV_DEBUG << "readWriteEpsMetadata: Found implicit Page at position: " << startPos << "\n";
#endif #endif
} }
if (posEndPageSetup == posEndEps && posPage != posEndEps && !inPageSetup) { if (posEndPageSetup == posEndEps && posPage != posEndEps && !inPageSetup && !inPhotoshopXmp) {
posEndPageSetup = startPos; posEndPageSetup = startPos;
#ifdef DEBUG #ifdef DEBUG
EXV_DEBUG << "readWriteEpsMetadata: Found implicit EndPageSetup at position: " << startPos << "\n"; EXV_DEBUG << "readWriteEpsMetadata: Found implicit EndPageSetup at position: " << startPos << "\n";
@ -607,6 +510,22 @@ namespace {
posPageTrailer = startPos; posPageTrailer = startPos;
} else if (startsWith(line, "%BeginPhotoshop:")) { } else if (startsWith(line, "%BeginPhotoshop:")) {
photoshop = true; photoshop = true;
} else if (posEndPageSetup == posEndEps && line == "%Exiv2BeginXMP: Before %%EndPageSetup") {
inExiv2Xmp = true;
} else if (posEndPageSetup == posEndEps && line == "%Exiv2EndXMP") {
inExiv2Xmp = false;
} else if (posEndPageSetup == posEndEps && !inExiv2Xmp && line == "%begin_xml_code") {
inPhotoshopXmp = true;
removableEmbeddings.push_back(std::make_pair(startPos, startPos));
} else if (posEndPageSetup == posEndEps && !inExiv2Xmp && line == "%end_xml_code") {
if (!inPhotoshopXmp) {
#ifndef SUPPRESS_WARNINGS
EXV_WARNING << "Unexpected Photoshop end_xml_code at position: " << startPos << "\n";
#endif
throw Error(write ? 21 : 14);
}
inPhotoshopXmp = false;
removableEmbeddings.back().second = pos;
} else if (line == "%%EOF") { } else if (line == "%%EOF") {
posEof = startPos; posEof = startPos;
} else if (startsWith(line, "%%BeginDocument:")) { } else if (startsWith(line, "%%BeginDocument:")) {
@ -650,6 +569,38 @@ namespace {
#endif #endif
} }
// look for the trailers of the removable XMP embeddings
const size_t numRemovableEmbeddings = removableEmbeddings.size();
size_t posXmpTrailerEnd = posEof;
for (size_t i = 0; i < numRemovableEmbeddings; i++) {
std::string line1;
const size_t posLine1 = readPrevLine(line1, data, posXmpTrailerEnd, posEndEps);
std::string line2;
const size_t posLine2 = readPrevLine(line2, data, posLine1, posEndEps);
size_t posXmpTrailer;
if (line1 == "[/EMC pdfmark") { // Exiftool style
posXmpTrailer = posLine1;
} else if (line1 == "[/NamespacePop pdfmark" &&
line2 == "[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark") { // Photoshop style
posXmpTrailer = posLine2;
} else {
#ifndef SUPPRESS_WARNINGS
EXV_WARNING << "Unable to find XMP embedding trailer ending at position: " << posXmpTrailerEnd << "\n";
#endif
if (write) throw Error(21);
break;
}
removableEmbeddings.push_back(std::make_pair(posXmpTrailer, posXmpTrailerEnd));
#ifdef DEBUG
EXV_DEBUG << "readWriteEpsMetadata: Recognized removable XMP embedding at "
"[" << removableEmbeddings[i].first << "," << removableEmbeddings[i].second << ")"
" with trailer "
"[" << removableEmbeddings.back().first << "," << removableEmbeddings.back().second << ")"
"\n";
#endif
posXmpTrailerEnd = posXmpTrailer;
}
// interpret comment "%ADO_ContainsXMP:" // interpret comment "%ADO_ContainsXMP:"
std::string line; std::string line;
readLine(line, data, posContainsXmp, posEndEps); readLine(line, data, posContainsXmp, posEndEps);
@ -665,8 +616,8 @@ namespace {
throw Error(write ? 21 : 14); throw Error(write ? 21 : 14);
} }
std::vector<std::pair<size_t, size_t> > removableEmbeddings;
bool fixBeginXmlPacket = false; bool fixBeginXmlPacket = false;
bool flexibleEmbedding = false;
size_t xmpPos = posEndEps; size_t xmpPos = posEndEps;
size_t xmpSize = 0; size_t xmpSize = 0;
if (containsXmp) { if (containsXmp) {
@ -687,14 +638,15 @@ namespace {
if (write) throw Error(21); if (write) throw Error(21);
} }
readLine(line, data, posLineAfterXmp, posEndEps); readLine(line, data, posLineAfterXmp, posEndEps);
if (line == "% &&end XMP packet marker&&" || line == "% &&end XMP packet marker&&") { flexibleEmbedding = (line == "% &&end XMP packet marker&&" || line == "% &&end XMP packet marker&&");
if (flexibleEmbedding) {
#ifdef DEBUG #ifdef DEBUG
EXV_DEBUG << "readWriteEpsMetadata: Recognized flexible XMP embedding\n"; EXV_DEBUG << "readWriteEpsMetadata: XMP embedding is flexible\n";
#endif #endif
const size_t posBeginXmlPacket = readPrevLine(line, data, xmpPos, posEndEps); const size_t posBeginXmlPacket = readPrevLine(line, data, xmpPos, posEndEps);
if (startsWith(line, "%begin_xml_packet:")) { if (startsWith(line, "%begin_xml_packet:")) {
#ifdef DEBUG #ifdef DEBUG
EXV_DEBUG << "readWriteEpsMetadata: Found %begin_xml_packet before flexible XMP embedding\n"; EXV_DEBUG << "readWriteEpsMetadata: XMP embedding contains %begin_xml_packet\n";
#endif #endif
if (write) { if (write) {
fixBeginXmlPacket = true; fixBeginXmlPacket = true;
@ -708,12 +660,31 @@ namespace {
if (write) throw Error(21); if (write) throw Error(21);
} }
} else { } else {
removableEmbeddings = findRemovableEmbeddings(data, posEps, posEof, posEndPageSetup, xmpPos, xmpSize, write); #ifdef DEBUG
if (removableEmbeddings.empty()) { EXV_DEBUG << "readWriteEpsMetadata: XMP embedding is inflexible\n";
#endif
}
}
if (!flexibleEmbedding) {
// check if there are irremovable XMP metadata blocks before EndPageSetup
size_t posOtherXmp = containsXmp ? xmpPos : posEps;
size_t sizeOtherXmp = 0;
for (;;) {
findXmp(posOtherXmp, sizeOtherXmp, data, posOtherXmp + sizeOtherXmp, posEndPageSetup, write);
if (posOtherXmp >= posEndPageSetup) break;
bool isRemovableEmbedding = false;
for (std::vector<std::pair<size_t, size_t> >::const_iterator e = removableEmbeddings.begin(); e != removableEmbeddings.end(); e++) {
if (e->first <= posOtherXmp && posOtherXmp < e->second) {
isRemovableEmbedding = true;
break;
}
}
if (!isRemovableEmbedding) {
#ifndef SUPPRESS_WARNINGS #ifndef SUPPRESS_WARNINGS
EXV_WARNING << "Unknown XMP embedding at position: " << xmpPos << "\n"; EXV_WARNING << "Inflexible XMP embedding is not replaceable because XMP metadata block is not removable at position: " << posOtherXmp << "\n";
#endif #endif
if (write) throw Error(21); if (write) throw Error(21);
break;
} }
} }
} }
@ -743,8 +714,6 @@ namespace {
nativePreviews.push_back(nativePreview); nativePreviews.push_back(nativePreview);
} }
} else { } else {
const bool useExistingEmbedding = (xmpPos != posEndEps && removableEmbeddings.empty());
// TODO: Add support for deleting XMP metadata. Note that this is not // TODO: Add support for deleting XMP metadata. Note that this is not
// as simple as it may seem, and requires special attention! // as simple as it may seem, and requires special attention!
if (xmpPacket.size() == 0) { if (xmpPacket.size() == 0) {
@ -780,7 +749,7 @@ namespace {
positions.push_back(posPageTrailer); positions.push_back(posPageTrailer);
positions.push_back(posEof); positions.push_back(posEof);
positions.push_back(posEndEps); positions.push_back(posEndEps);
if (useExistingEmbedding) { if (flexibleEmbedding) {
positions.push_back(xmpPos); positions.push_back(xmpPos);
} }
for (std::vector<std::pair<size_t, size_t> >::const_iterator e = removableEmbeddings.begin(); e != removableEmbeddings.end(); e++) { for (std::vector<std::pair<size_t, size_t> >::const_iterator e = removableEmbeddings.begin(); e != removableEmbeddings.end(); e++) {
@ -817,7 +786,7 @@ namespace {
#endif #endif
} }
// update and complement DSC comments // update and complement DSC comments
if (pos == posLanguageLevel && posLanguageLevel != posEndEps && !useExistingEmbedding) { if (pos == posLanguageLevel && posLanguageLevel != posEndEps && !flexibleEmbedding) {
if (line == "%%LanguageLevel:1" || line == "%%LanguageLevel: 1") { if (line == "%%LanguageLevel:1" || line == "%%LanguageLevel: 1") {
writeTemp(*tempIo, "%%LanguageLevel: 2" + lineEnding); writeTemp(*tempIo, "%%LanguageLevel: 2" + lineEnding);
skipPos = posLineEnd; skipPos = posLineEnd;
@ -838,7 +807,7 @@ namespace {
skipPos = posLineEnd; skipPos = posLineEnd;
} }
if (pos == posEndComments) { if (pos == posEndComments) {
if (posLanguageLevel == posEndEps && !useExistingEmbedding) { if (posLanguageLevel == posEndEps && !flexibleEmbedding) {
writeTemp(*tempIo, "%%LanguageLevel: 2" + lineEnding); writeTemp(*tempIo, "%%LanguageLevel: 2" + lineEnding);
} }
if (posContainsXmp == posEndEps) { if (posContainsXmp == posEndEps) {
@ -864,14 +833,7 @@ namespace {
writeTemp(*tempIo, "%%EndPageComments" + lineEnding); writeTemp(*tempIo, "%%EndPageComments" + lineEnding);
} }
} }
// remove unflexible embeddings if (flexibleEmbedding) {
for (std::vector<std::pair<size_t, size_t> >::const_iterator e = removableEmbeddings.begin(); e != removableEmbeddings.end(); e++) {
if (pos == e->first) {
skipPos = e->second;
break;
}
}
if (useExistingEmbedding) {
// insert XMP metadata into existing flexible embedding // insert XMP metadata into existing flexible embedding
if (pos == xmpPos) { if (pos == xmpPos) {
if (fixBeginXmlPacket) { if (fixBeginXmlPacket) {
@ -881,6 +843,13 @@ namespace {
skipPos += xmpSize; skipPos += xmpSize;
} }
} else { } else {
// remove preceding embedding(s)
for (std::vector<std::pair<size_t, size_t> >::const_iterator e = removableEmbeddings.begin(); e != removableEmbeddings.end(); e++) {
if (pos == e->first) {
skipPos = e->second;
break;
}
}
// insert XMP metadata with new flexible embedding // insert XMP metadata with new flexible embedding
if (pos == posEndPageSetup) { if (pos == posEndPageSetup) {
if (line != "%%EndPageSetup") { if (line != "%%EndPageSetup") {

@ -0,0 +1,40 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%ADO_ContainsXMP: MainFirst
%%EndComments
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment

@ -1,42 +1,34 @@
%!PS-Adobe-3.0 EPSF-3.0 %!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105 %%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: MainFirst %ADO_ContainsXMP: MainFirst
%%LanguageLevel: 2
%%Pages: 1 %%Pages: 1
%Exiv2Version: 0.21.1 %Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/ %Exiv2Website: http://www.exiv2.org/
%%EndComments %%EndComments
%%BeginSetup %%Page: 1 1
%begin_xml_code %%BeginPageSetup
/pdfmark where {pop true} {false} ifelse %Exiv2BeginXMP: Before %%EndPageSetup
/currentdistillerparams where {pop currentdistillerparams /currentdistillerparams where
/CoreDistVersion get 5000 ge } {false} ifelse {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
and not {userdict /pdfmark /cleartomark load put} if {userdict /Exiv2_pdfmark /cleartomark load put
[/NamespacePush pdfmark userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
[/_objdef {exiftool_metadata_stream} /type /stream /OBJ pdfmark {userdict /Exiv2_pdfmark /pdfmark load put
[{exiftool_metadata_stream} 2 dict begin /Type /Metadata def userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
/Subtype /XML def currentdict end /PUT pdfmark [/NamespacePush Exiv2_pdfmark
/MetadataString 2864 string def % exact length of metadata [/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
/TempString 100 string def [{Exiv2_metadata_stream} 2 dict begin
/ConsumeMetadata { /Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
currentfile TempString readline pop pop [{Exiv2_metadata_stream}
currentfile MetadataString readstring pop pop currentfile 0 (% &&end XMP packet marker&&)
} bind def /SubFileDecode filter Exiv2_metafile_pdfmark
ConsumeMetadata <?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
%begin_xml_packet: 2864 <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 8.56'> <rdf:Description rdf:about=""
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'> xmlns:test="http://www.example.com/"
test:test="TEST"/>
<rdf:Description rdf:about='' </rdf:RDF>
xmlns:dc='http://purl.org/dc/elements/1.1/'>
<dc:title>
<rdf:Alt>
<rdf:li xml:lang='x-default'>TEST-Exiftool</rdf:li>
</rdf:Alt>
</dc:title>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta> </x:xmpmeta>
@ -58,22 +50,14 @@ ConsumeMetadata
<?xpacket end="w"?>
% &&end XMP packet marker&&
<?xpacket end='w'?>
%end_xml_packet
[{exiftool_metadata_stream} MetadataString /PUT pdfmark
[/Document 1 dict begin [/Document 1 dict begin
/Metadata {exiftool_metadata_stream} def currentdict end /BDC pdfmark /Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
[/NamespacePop pdfmark %Exiv2EndXMP
%end_xml_code %%EndPageSetup
%%EndSetup % begin of XMP embedding with non-standard comment
%%Page: 1 1
%%EndPageComments
%%BeginPageSetup
%Exiv2BeginXMP: Before %%EndPageSetup
/currentdistillerparams where /currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put {userdict /Exiv2_pdfmark /cleartomark load put
@ -85,28 +69,30 @@ ConsumeMetadata
[{Exiv2_metadata_stream} 2 dict begin [{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark /Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream} [{Exiv2_metadata_stream}
currentfile 0 (% &&end XMP packet marker&&) currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark /SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST"> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-invisible"/> <rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF> </rdf:RDF>
</x:xmpmeta> </x:xmpmeta>
<?xpacket end="w"?> <?xpacket end="w"?>
% &&end XMP packet marker&& % non-standard end marker
[/Document 1 dict begin [/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark /Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
%Exiv2EndXMP % end of XMP embedding with non-standard comment
%%EndPageSetup
10 setlinewidth 10 setlinewidth
10 10 moveto 10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath 0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment
%%PageTrailer %%PageTrailer
%Exiv2BeginXMP: After %%PageTrailer %Exiv2BeginXMP: After %%PageTrailer
[/EMC Exiv2_pdfmark [/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark [/NamespacePop Exiv2_pdfmark
%Exiv2EndXMP %Exiv2EndXMP
[/EMC pdfmark
%%EOF %%EOF

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:test="http://www.example.com/"
test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>

@ -0,0 +1,39 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%EndComments
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment

@ -0,0 +1,98 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: MainFirst
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%BeginPageSetup
%Exiv2BeginXMP: Before %%EndPageSetup
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% &&end XMP packet marker&&)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:test="http://www.example.com/"
test:test="TEST"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% &&end XMP packet marker&&
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
%Exiv2EndXMP
%%EndPageSetup
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment
%%PageTrailer
%Exiv2BeginXMP: After %%PageTrailer
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
%Exiv2EndXMP
%%EOF

@ -0,0 +1,38 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%ADO_ContainsXMP: MainFirst
%%EndComments
%%Page: 1 1
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment

@ -0,0 +1,98 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%ADO_ContainsXMP: MainFirst
%%LanguageLevel: 2
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
% begin of XMP embedding with non-standard comment
%%BeginPageSetup
%Exiv2BeginXMP: Before %%EndPageSetup
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% &&end XMP packet marker&&)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:test="http://www.example.com/"
test:test="TEST"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% &&end XMP packet marker&&
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
%Exiv2EndXMP
%%EndPageSetup
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment
%%PageTrailer
%Exiv2BeginXMP: After %%PageTrailer
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
%Exiv2EndXMP
%%EOF

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:test="http://www.example.com/"
test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>

@ -0,0 +1,37 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%EndComments
%%Page: 1 1
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment

@ -0,0 +1,98 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: MainFirst
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
% begin of XMP embedding with non-standard comment
%%BeginPageSetup
%Exiv2BeginXMP: Before %%EndPageSetup
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% &&end XMP packet marker&&)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:test="http://www.example.com/"
test:test="TEST"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% &&end XMP packet marker&&
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
%Exiv2EndXMP
%%EndPageSetup
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment
%%PageTrailer
%Exiv2BeginXMP: After %%PageTrailer
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
%Exiv2EndXMP
%%EOF

@ -0,0 +1,40 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%ADO_ContainsXMP: MainFirst
%%EndComments
%%Page: 1 1
%%BeginPageSetup
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
%%EndPageSetup
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:test="http://www.example.com/"
test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>

@ -0,0 +1,39 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%EndComments
%%Page: 1 1
%%BeginPageSetup
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
%%EndPageSetup
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment

@ -0,0 +1,40 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%ADO_ContainsXMP: MainFirst
%%EndComments
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
10 setlinewidth
10 10 moveto
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment

@ -0,0 +1,98 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%ADO_ContainsXMP: MainFirst
%%LanguageLevel: 2
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%BeginPageSetup
%Exiv2BeginXMP: Before %%EndPageSetup
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% &&end XMP packet marker&&)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:test="http://www.example.com/"
test:test="TEST"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% &&end XMP packet marker&&
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
%Exiv2EndXMP
%%EndPageSetup
10 setlinewidth
10 10 moveto
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment
%%PageTrailer
%Exiv2BeginXMP: After %%PageTrailer
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
%Exiv2EndXMP
%%EOF

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:test="http://www.example.com/"
test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>

@ -0,0 +1,39 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%EndComments
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
10 setlinewidth
10 10 moveto
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment

@ -0,0 +1,98 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: MainFirst
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%BeginPageSetup
%Exiv2BeginXMP: Before %%EndPageSetup
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% &&end XMP packet marker&&)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:test="http://www.example.com/"
test:test="TEST"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% &&end XMP packet marker&&
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
%Exiv2EndXMP
%%EndPageSetup
10 setlinewidth
10 10 moveto
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment
%%PageTrailer
%Exiv2BeginXMP: After %%PageTrailer
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
%Exiv2EndXMP
%%EOF

@ -0,0 +1,38 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%ADO_ContainsXMP: MainFirst
%%EndComments
%%Page: 1 1
%%BeginPageSetup
%begin_xml_code
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-missing-xmp-embedding-trailer"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
%end_xml_code
%%EndPageSetup
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% missing XMP embedding trailer
%%EOF

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:test="http://www.example.com/"
test:test="TEST-missing-xmp-embedding-trailer"/>
</rdf:RDF>
</x:xmpmeta>

@ -88,7 +88,7 @@ ConsumeMetadata
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST"> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST"/> <rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-invisible"/>
</rdf:RDF> </rdf:RDF>
</x:xmpmeta> </x:xmpmeta>
<?xpacket end="w"?> <?xpacket end="w"?>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -186,6 +186,161 @@ Exit code: 0
Command: exiv2 -f -ex eps-flat_minimal_exiftool-8.56.eps Command: exiv2 -f -ex eps-flat_minimal_exiftool-8.56.eps
Exit code: 0 Exit code: 0
-----> eps-flat_minimal_irremovable-xmp-after-endpagesetup.eps <-----
Command: exiv2 -u -pa eps-flat_minimal_irremovable-xmp-after-endpagesetup.eps
Xmp.test.test XmpText 20 TEST-irremovable-xmp
Exit code: 253
Command: exiv2 -f -eX eps-flat_minimal_irremovable-xmp-after-endpagesetup.eps
Exit code: 0
Command: exiv2 -ix eps-flat_minimal_irremovable-xmp-after-endpagesetup.eps
Exit code: 0
Command: (2) exiv2 -ix eps-flat_minimal_irremovable-xmp-after-endpagesetup.eps
Exit code: 0
Command: exiv2 -f -ex eps-flat_minimal_irremovable-xmp-after-endpagesetup.eps
Exit code: 0
-----> eps-flat_minimal_irremovable-xmp-after-endpagesetup_no-adocontainsxmp.eps <-----
Command: exiv2 -u -pa eps-flat_minimal_irremovable-xmp-after-endpagesetup_no-adocontainsxmp.eps
Exit code: 253
Command: exiv2 -f -eX eps-flat_minimal_irremovable-xmp-after-endpagesetup_no-adocontainsxmp.eps
Exit code: 0
Command: exiv2 -ix eps-flat_minimal_irremovable-xmp-after-endpagesetup_no-adocontainsxmp.eps
Exit code: 0
Command: (2) exiv2 -ix eps-flat_minimal_irremovable-xmp-after-endpagesetup_no-adocontainsxmp.eps
Exit code: 0
Command: exiv2 -f -ex eps-flat_minimal_irremovable-xmp-after-endpagesetup_no-adocontainsxmp.eps
Exit code: 0
-----> eps-flat_minimal_irremovable-xmp-at-endpagesetup.eps <-----
Command: exiv2 -u -pa eps-flat_minimal_irremovable-xmp-at-endpagesetup.eps
Xmp.test.test XmpText 20 TEST-irremovable-xmp
Exit code: 253
Command: exiv2 -f -eX eps-flat_minimal_irremovable-xmp-at-endpagesetup.eps
Exit code: 0
Command: exiv2 -ix eps-flat_minimal_irremovable-xmp-at-endpagesetup.eps
Exit code: 0
Command: (2) exiv2 -ix eps-flat_minimal_irremovable-xmp-at-endpagesetup.eps
Exit code: 0
Command: exiv2 -f -ex eps-flat_minimal_irremovable-xmp-at-endpagesetup.eps
Exit code: 0
-----> eps-flat_minimal_irremovable-xmp-at-endpagesetup_no-adocontainsxmp.eps <-----
Command: exiv2 -u -pa eps-flat_minimal_irremovable-xmp-at-endpagesetup_no-adocontainsxmp.eps
Exit code: 253
Command: exiv2 -f -eX eps-flat_minimal_irremovable-xmp-at-endpagesetup_no-adocontainsxmp.eps
Exit code: 0
Command: exiv2 -ix eps-flat_minimal_irremovable-xmp-at-endpagesetup_no-adocontainsxmp.eps
Exit code: 0
Command: (2) exiv2 -ix eps-flat_minimal_irremovable-xmp-at-endpagesetup_no-adocontainsxmp.eps
Exit code: 0
Command: exiv2 -f -ex eps-flat_minimal_irremovable-xmp-at-endpagesetup_no-adocontainsxmp.eps
Exit code: 0
-----> eps-flat_minimal_irremovable-xmp-before-endpagesetup.eps <-----
Command: exiv2 -u -pa eps-flat_minimal_irremovable-xmp-before-endpagesetup.eps
Warning: Inflexible XMP embedding is not replaceable because XMP metadata block is not removable at position: 837
Xmp.test.test XmpText 20 TEST-irremovable-xmp
Exit code: 253
Command: exiv2 -f -eX eps-flat_minimal_irremovable-xmp-before-endpagesetup.eps
Warning: Inflexible XMP embedding is not replaceable because XMP metadata block is not removable at position: 837
Exit code: 0
Command: exiv2 -ix eps-flat_minimal_irremovable-xmp-before-endpagesetup.eps
Warning: Inflexible XMP embedding is not replaceable because XMP metadata block is not removable at position: 837
Warning: Inflexible XMP embedding is not replaceable because XMP metadata block is not removable at position: 837
eps-flat_minimal_irremovable-xmp-before-endpagesetup.eps: Could not write metadata to file: Failed to write image
Exit code: 1
-----> eps-flat_minimal_irremovable-xmp-before-endpagesetup_no-adocontainsxmp.eps <-----
Command: exiv2 -u -pa eps-flat_minimal_irremovable-xmp-before-endpagesetup_no-adocontainsxmp.eps
Warning: Inflexible XMP embedding is not replaceable because XMP metadata block is not removable at position: 809
Exit code: 253
Command: exiv2 -f -eX eps-flat_minimal_irremovable-xmp-before-endpagesetup_no-adocontainsxmp.eps
Warning: Inflexible XMP embedding is not replaceable because XMP metadata block is not removable at position: 809
Exit code: 0
Command: exiv2 -ix eps-flat_minimal_irremovable-xmp-before-endpagesetup_no-adocontainsxmp.eps
Warning: Inflexible XMP embedding is not replaceable because XMP metadata block is not removable at position: 809
Warning: Inflexible XMP embedding is not replaceable because XMP metadata block is not removable at position: 809
eps-flat_minimal_irremovable-xmp-before-endpagesetup_no-adocontainsxmp.eps: Could not write metadata to file: Failed to write image
Exit code: 1
-----> eps-flat_minimal_irremovable-xmp-in-page.eps <-----
Command: exiv2 -u -pa eps-flat_minimal_irremovable-xmp-in-page.eps
Xmp.test.test XmpText 20 TEST-irremovable-xmp
Exit code: 253
Command: exiv2 -f -eX eps-flat_minimal_irremovable-xmp-in-page.eps
Exit code: 0
Command: exiv2 -ix eps-flat_minimal_irremovable-xmp-in-page.eps
Exit code: 0
Command: (2) exiv2 -ix eps-flat_minimal_irremovable-xmp-in-page.eps
Exit code: 0
Command: exiv2 -f -ex eps-flat_minimal_irremovable-xmp-in-page.eps
Exit code: 0
-----> eps-flat_minimal_irremovable-xmp-in-page_no-adocontainsxmp.eps <-----
Command: exiv2 -u -pa eps-flat_minimal_irremovable-xmp-in-page_no-adocontainsxmp.eps
Exit code: 253
Command: exiv2 -f -eX eps-flat_minimal_irremovable-xmp-in-page_no-adocontainsxmp.eps
Exit code: 0
Command: exiv2 -ix eps-flat_minimal_irremovable-xmp-in-page_no-adocontainsxmp.eps
Exit code: 0
Command: (2) exiv2 -ix eps-flat_minimal_irremovable-xmp-in-page_no-adocontainsxmp.eps
Exit code: 0
Command: exiv2 -f -ex eps-flat_minimal_irremovable-xmp-in-page_no-adocontainsxmp.eps
Exit code: 0
-----> eps-flat_minimal_missing-xmp-embedding-trailer.eps <-----
Command: exiv2 -u -pa eps-flat_minimal_missing-xmp-embedding-trailer.eps
Warning: Unable to find XMP embedding trailer ending at position: 1424
Xmp.test.test XmpText 34 TEST-missing-xmp-embedding-trailer
Exit code: 253
Command: exiv2 -f -eX eps-flat_minimal_missing-xmp-embedding-trailer.eps
Warning: Unable to find XMP embedding trailer ending at position: 1424
Exit code: 0
Command: exiv2 -ix eps-flat_minimal_missing-xmp-embedding-trailer.eps
Warning: Unable to find XMP embedding trailer ending at position: 1424
Warning: Unable to find XMP embedding trailer ending at position: 1424
eps-flat_minimal_missing-xmp-embedding-trailer.eps: Could not write metadata to file: Failed to write image
Exit code: 1
-----> eps-flat_minimal_xmp-readonly.eps <----- -----> eps-flat_minimal_xmp-readonly.eps <-----
Command: exiv2 -u -pa eps-flat_minimal_xmp-readonly.eps Command: exiv2 -u -pa eps-flat_minimal_xmp-readonly.eps
@ -269,26 +424,18 @@ Exit code: 0
-----> eps-flat_minimal_xmp_exiftool-8.56.eps <----- -----> eps-flat_minimal_xmp_exiftool-8.56.eps <-----
Command: exiv2 -u -pa eps-flat_minimal_xmp_exiftool-8.56.eps Command: exiv2 -u -pa eps-flat_minimal_xmp_exiftool-8.56.eps
Warning: Page at position 3906 conflicts with implicit page at position: 182 Warning: Inflexible XMP embedding is not replaceable because XMP metadata block is not removable at position: 4657
Exiv2 exception in print action for file eps-flat_minimal_xmp_exiftool-8.56.eps:
Failed to read image data
Exit code: 1
-----> eps-flat_minimal_xmp_exiftool-8.56_fixed.eps <-----
Command: exiv2 -u -pa eps-flat_minimal_xmp_exiftool-8.56_fixed.eps
Warning: Second XMP metadata block interferes at position: 849
Xmp.dc.title LangAlt 1 lang="x-default" TEST-Exiftool Xmp.dc.title LangAlt 1 lang="x-default" TEST-Exiftool
Exit code: 253 Exit code: 253
Command: exiv2 -f -eX eps-flat_minimal_xmp_exiftool-8.56_fixed.eps Command: exiv2 -f -eX eps-flat_minimal_xmp_exiftool-8.56.eps
Warning: Second XMP metadata block interferes at position: 849 Warning: Inflexible XMP embedding is not replaceable because XMP metadata block is not removable at position: 4657
Exit code: 0 Exit code: 0
Command: exiv2 -ix eps-flat_minimal_xmp_exiftool-8.56_fixed.eps Command: exiv2 -ix eps-flat_minimal_xmp_exiftool-8.56.eps
Warning: Second XMP metadata block interferes at position: 849 Warning: Inflexible XMP embedding is not replaceable because XMP metadata block is not removable at position: 4657
Warning: Second XMP metadata block interferes at position: 849 Warning: Inflexible XMP embedding is not replaceable because XMP metadata block is not removable at position: 4657
eps-flat_minimal_xmp_exiftool-8.56_fixed.eps: Could not write metadata to file: Failed to write image eps-flat_minimal_xmp_exiftool-8.56.eps: Could not write metadata to file: Failed to write image
Exit code: 1 Exit code: 1
-----> eps-flat_oodraw-lev1.eps <----- -----> eps-flat_oodraw-lev1.eps <-----
@ -2571,6 +2718,23 @@ Warning: Missing %begin_xml_packet in Photoshop EPS at position: 8560
eps-flat_photoshop-cs5-binary_exiv2_missing-begin-xml-packet.eps: Could not write metadata to file: Failed to write image eps-flat_photoshop-cs5-binary_exiv2_missing-begin-xml-packet.eps: Could not write metadata to file: Failed to write image
Exit code: 1 Exit code: 1
-----> eps-flat_photoshop-cs5-binary_no-adocontainsxmp.eps <-----
Command: exiv2 -u -pa eps-flat_photoshop-cs5-binary_no-adocontainsxmp.eps
Exit code: 253
Command: exiv2 -f -eX eps-flat_photoshop-cs5-binary_no-adocontainsxmp.eps
Exit code: 0
Command: exiv2 -ix eps-flat_photoshop-cs5-binary_no-adocontainsxmp.eps
Exit code: 0
Command: (2) exiv2 -ix eps-flat_photoshop-cs5-binary_no-adocontainsxmp.eps
Exit code: 0
Command: exiv2 -f -ex eps-flat_photoshop-cs5-binary_no-adocontainsxmp.eps
Exit code: 0
-----> eps-flat_photoshop-e9-win-doseps.eps <----- -----> eps-flat_photoshop-e9-win-doseps.eps <-----
Command: exiv2 -u -pa eps-flat_photoshop-e9-win-doseps.eps Command: exiv2 -u -pa eps-flat_photoshop-e9-win-doseps.eps

@ -224,6 +224,14 @@ Command: exiv2 -f -ep eps-flat_photoshop-cs5-binary_exiv2_missing-begin-xml-pack
Warning: Missing %begin_xml_packet in Photoshop EPS at position: 8560 Warning: Missing %begin_xml_packet in Photoshop EPS at position: 8560
Exit code: 0 Exit code: 0
-----> eps-flat_photoshop-cs5-binary_no-adocontainsxmp.eps <-----
Command: exiv2 -pp eps-flat_photoshop-cs5-binary_no-adocontainsxmp.eps
Exit code: 0
Command: exiv2 -f -ep eps-flat_photoshop-cs5-binary_no-adocontainsxmp.eps
Exit code: 0
-----> eps-flat_photoshop-e9-win-doseps.eps <----- -----> eps-flat_photoshop-e9-win-doseps.eps <-----
Command: exiv2 -pp eps-flat_photoshop-e9-win-doseps.eps Command: exiv2 -pp eps-flat_photoshop-e9-win-doseps.eps

@ -44,6 +44,7 @@ images="eps/eps-flat_inkscape-epsi.eps \
eps/eps-flat_photoshop-cs5-binary_exiv2-bigxmp.eps \ eps/eps-flat_photoshop-cs5-binary_exiv2-bigxmp.eps \
eps/eps-flat_photoshop-cs5-binary_exiv2.eps \ eps/eps-flat_photoshop-cs5-binary_exiv2.eps \
eps/eps-flat_photoshop-cs5-binary_exiv2_missing-begin-xml-packet.eps \ eps/eps-flat_photoshop-cs5-binary_exiv2_missing-begin-xml-packet.eps \
eps/eps-flat_photoshop-cs5-binary_no-adocontainsxmp.eps \
eps/eps-flat_photoshop-e9-win-doseps.eps \ eps/eps-flat_photoshop-e9-win-doseps.eps \
eps/eps-flat_photoshop-e9-win.eps \ eps/eps-flat_photoshop-e9-win.eps \
eps/eps-flat_photoshop-e9-win_exiv2.eps \ eps/eps-flat_photoshop-e9-win_exiv2.eps \

Loading…
Cancel
Save