Warum funktioniert das JavaScript nicht
Liebes Forum,
eine Frage, warum wird das folgende Script innerhalb vom Acrobat in den Dokumenteinstellung unter dem Punkt "Zusätzlichen Metadaten" nicht ausgeführt? Einträge in die Dokumenteneigenschaften wie z.B. Titel, Verfasser etc. funktionieren damit.
Das Script:
function CopyrightStatusSetzen(){
var EingabemdCopyrightStatus = app.response({
cQuestion: "Geben Sie die CopyrightStatus ein:",
cCopyrightStatus: "CopyrightStatus eingeben",
cDefault: "1975"});
if(EingabemdCopyrightStatus == null){
}
else
this.info.CopyrightStatus = EingabemdCopyrightStatus;
this.layout = "MultiplePage";
// this.layout = "SinglePage";
}
app.addToolButton({
cName: "SetCopyrightStatus",
cLabel: "CopyrightStatus setzen",
cTooltext: "CopyrightStatus setzen",
cEnable: true,
cExec: "CopyrightStatusSetzen()"});
könnte mir vielleicht jemand helfen??
Im Vorfeld schon einmal vielen Dank und einen lieben Gruß
eine Frage, warum wird das folgende Script innerhalb vom Acrobat in den Dokumenteinstellung unter dem Punkt "Zusätzlichen Metadaten" nicht ausgeführt? Einträge in die Dokumenteneigenschaften wie z.B. Titel, Verfasser etc. funktionieren damit.
Das Script:
function CopyrightStatusSetzen(){
var EingabemdCopyrightStatus = app.response({
cQuestion: "Geben Sie die CopyrightStatus ein:",
cCopyrightStatus: "CopyrightStatus eingeben",
cDefault: "1975"});
if(EingabemdCopyrightStatus == null){
}
else
this.info.CopyrightStatus = EingabemdCopyrightStatus;
this.layout = "MultiplePage";
// this.layout = "SinglePage";
}
app.addToolButton({
cName: "SetCopyrightStatus",
cLabel: "CopyrightStatus setzen",
cTooltext: "CopyrightStatus setzen",
cEnable: true,
cExec: "CopyrightStatusSetzen()"});
könnte mir vielleicht jemand helfen??
Im Vorfeld schon einmal vielen Dank und einen lieben Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 482539
Url: https://administrator.de/contentid/482539
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
9 Kommentare
Neuester Kommentar
Hi,
kenne mich zwar mit beidem nicht wirklich aus aber fehlt hinter dem else nicht eine {
btw statt ein "leeres if statement" könntest du doch auch die bedingung umdrehen und brauchst kein else:
Grüße
kenne mich zwar mit beidem nicht wirklich aus aber fehlt hinter dem else nicht eine {
btw statt ein "leeres if statement" könntest du doch auch die bedingung umdrehen und brauchst kein else:
if(EingabemdCopyrightStatus != null){
this.info.CopyrightStatus = EingabemdCopyrightStatus;
this.layout = "MultiplePage";
// this.layout = "SinglePage";
}
Grüße
Ist zwar uralt die Seite https://acrobatusers.com/tutorials/print/auto_insert_metadata aber da steht als Beispiel:
this.info.copyright
statt
this.info.CopyrightStatus
this.info.copyright
statt
this.info.CopyrightStatus
Warum funktioniert das JavaScript nicht
Weil das total veraltet ist, die CopyrightInfo muss als XML in die Metadaten gesetzt werden.In die Doku schauen hilft ungemein, da steht wie man das Copyright jetzt richtig setzen muss:
https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_ref ...
var CopyrightStatus = "True";
var CopyrightNotice = "Copyright(C) 2006, BlaBlub Corp."
var CopyrightInfoURL = "http://www.domain.tld"
var meta = this.metadata;
var myXMPData = new XML(meta);
myx = new Namespace("adobe:ns:meta/");
myrdf = new Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#");
mypdf = new Namespace("http://ns.adobe.com/pdf/1.3/");
myxap = new Namespace("http://ns.adobe.com/xap/1.0/");
mydc = new Namespace("http://purl.org/dc/elements/1.1/");
myxapRights = new Namespace("http://ns.adobe.com/xap/1.0/rights/");
var p = myXMPData.myrdf::RDF.myrdf::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.mydc::rights.myrdf::Alt.myrdf::li.toString() == "") {
p += <rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<dc:rights>
<rdf:Alt>
<rdf:li xml:lang="x-default">
{CopyrightNotice}
</rdf:li>
</rdf:Alt>
</dc:rights>
</rdf:Description>
} else
p.mydc::rights.myrdf::Alt.myrdf::li = CopyrightNotice;
/*
Some elements are converted into attributes, so we need to first test
whether the xapRights:Marked attribute is present, if not, we add it in as an
element; otherwise, if the attribute is present, we update the attribute.
Acrobat changes certain elements into attributes; the xapRights:Marked and
xapRights:WebStatement are two such examples, but dc:rights above is one
that is not changed into an attribute.
*/
if (p.@myxapRights::Marked.toString() == "" ) {
p += <rdf:Description rdf:about=""
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xapRights="http://ns.adobe.com/xap/1.0/rights/">
<xapRights:Marked>{CopyrightStatus}</xapRights:Marked>
<xapRights:WebStatement> {CopyrightInfoURL} </xapRights:WebStatement>
</rdf:Description>
} else {
p.@myxapRights::Marked = CopyrightStatus;
p.@myxapRights::WebStatement = CopyrightInfoURL;
}
// Convert myXMPData into a string
myNewXMPStr=myXMPData.toXMLString();
// and assign it to the document metadata
this.metadata = myNewXMPStr;
p.s. Fragen mit verständlichem Text stellen hilft ebenfalls, dann muss man nicht das Web mit solch überflüssigen Threads überschwemmen.
Joa, les das PDF dann weist du wie.