%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% aebxmp.sty package, 2006-09-22 %%
%% Copyright (C) 2006 D. P. Story %%
%% dpstory@acrotex.net %%
%% %%
%% This program can redistributed and/or modified under %%
%% the terms of the LaTeX Project Public License %%
%% Distributed from CTAN archives in directory %%
%% macros/latex/base/lppl.txt; either version 1 of the %%
%% License, or (at your option) any later version. %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ProvidesPackage{aebxmp}[2007/03/13 v0.2 Populate advanced metadata (dps)]
% Changes
% v0.2 (2007/03/13) Added support for unicode escape sequences in the
% \copyrightNotice and \copyrightInfoURL fields.
% v0.1 Original distribution
\ProcessOptions
\@ifpackageloaded{insdljs}{\let\execjs=y}
{\RequirePackage[execJS]{insdljs}}
\newcommand{\copyrightStatus}[1]{\def\webcopyrightStatus{#1}}
\let\webcopyrightStatus\@empty
\newcommand{\copyrightNotice}[1]{\def\webcopyrightNotice{#1}}
\let\webcopyrightNotice\@empty
\newcommand{\copyrightInfoURL}[1]{\def\webcopyrightInfoURL{#1}}
\let\webcopyrightInfoURL\@empty
\newcommand{\authortitle}[1]{\def\webauthortitle{#1}}
\let\webauthortitle\@empty
\newcommand{\descriptionwriter}[1]{\def\webdescriptionwriter{#1}}
\let\webdescriptionwriter\@empty
\def\insertMarked{\ifx\webcopyrightStatus\@empty
\else\webcopyrightStatus\fi}
\def\insertWebStatement{\ifx\webcopyrightInfoURL\@empty
\else{"\webcopyrightInfoURL"}\fi}
\begin{execJS}{execXMP}
var meta = this.metadata;
var aebXMPData = new XML(meta);
var aebx = new Namespace("adobe:ns:meta/");
var aebrdf = new Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#");
var aebpdf = new Namespace("http://ns.adobe.com/pdf/1.3/");
var aebxap = new Namespace("http://ns.adobe.com/xap/1.0/");
var aebdc = new Namespace("http://purl.org/dc/elements/1.1/");
var aebxapRights = new Namespace("http://ns.adobe.com/xap/1.0/rights/");
var aebphotoshop = new Namespace("http://ns.adobe.com/photoshop/1.0/")
var p = aebXMPData.aebrdf::RDF.aebrdf::Description;
/*
We test whether this element has a value already, if no, we assign it a value, otherwise
we assign it another value.
*/
if (p.aebdc::rights.aebrdf::Alt.aebrdf::li.toString() == "") {
p[0] +=
{"\webcopyrightNotice"}
} else
p.aebdc::rights.aebrdf::Alt.aebrdf::li = "\webcopyrightNotice";
/*
We save xapRights:Marked and xap:WebStatement, delete old values,
then replace them with the new values.
*/
delete p.@aebxapRights::Marked;
delete p.@aebxapRights::WebStatement;
p[0] +=
\insertMarked
\insertWebStatement
// Convert aebXMPData into a string
aebNewXMPStr=aebXMPData.toXMLString();
// and assign it to the document metadata
this.metadata = aebNewXMPStr;
\end{execJS}
\endinput