[GastForen Programmierung/Entwicklung JavaScript Bookmarks via Javascript im Acrobat

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Bookmarks via Javascript im Acrobat

cwenet
Beiträge gesamt: 1139

15. Mär 2011, 18:23
Beitrag # 1 von 5
Bewertung:
(4719 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

folgendes Script habe ich ausgegraben:

Code
var aBkMkNames = [ "TOC", ["Tax Forms","1040"], 
["Schedules","Schedule A"],
["Wages & Tips","W2-Work"],
["Interest & Div","Bank W9","Stocks W9","cwe"],
"Receipts"];



function MakeBkMks(oBkMkParent, aBkMks)
{
for(var i=0;i<aBkMks.length;i++)
{
if(typeof(aBkMks[i]) == "string")
oBkMkParent.createChild({cName:aBkMks[i], nIndex:i, cExpr:"this.pageNum=2;"});
else
{
// Assume this is a sub Array
oBkMkParent.createChild({cName:aBkMks[i][0], nIndex:i,cExpr:"this.pageNum=3;"});
MakeBkMks(oBkMkParent.children[i], aBkMks[i].slice(1) );
}
}
}

MakeBkMks(this.bookmarkRoot, aBkMkNames);


Hiermit lassen sich Lesezeichen im aktuellen PDF erzeugen.
this.pageNum=2 und this.pageNum=3 habe ich hier aberr statisch hinterlegt.
Wie kann ich die Seitenzahlen in den Array aBkMkNames mit einbauen?
Es soll jedem Arrayeintrag später eine Seitenzahl zugwiesen werden können.


Gruss
Christoph
X

Bookmarks via Javascript im Acrobat

crisies
  
Beiträge gesamt: 138

23. Mär 2011, 20:26
Beitrag # 2 von 5
Beitrag ID: #467545
Bewertung:
(4639 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi christoph,

denke da gibt es mehrere möglichkeiten. ich würde entweder das aBkMkNames erweitern oder dieses Klonen und dort die Seitenzahlen eintragen und es nicht mit den Texten vermischen wegen der Uebersichtlichkeit. Hier mal eine Idee:

Code
var aBkMkNames = [[ "TOC", ["Tax Forms","1040"],  
["Schedules","Schedule A"],
["Wages & Tips","W2-Work"],
["Interest & Div","Bank W9","Stocks W9","cwe"],
"Receipts"]
,
[ 1, [2,2],
[3,3],
[4,5],
[6,6,6],
7]
];



function MakeBkMks(oBkMkParent, aBkMks)
{
for(var i=0;i<aBkMks[0].length;i++)
{
if(typeof(aBkMks[0][i]) == "string")
oBkMkParent.createChild({cName:aBkMks[0][i], nIndex:i, cExpr:"this.pageNum=aBkMks[1][i];"});
else
{
// Assume this is a sub Array
oBkMkParent.createChild({cName:aBkMks[0][i][0], nIndex:i,cExpr:"this.pageNum=[1][i][0];"});
MakeBkMks(oBkMkParent.children[i], aBkMks[0][i].slice(1) );
}
}
}

MakeBkMks(this.bookmarkRoot, aBkMkNames);


Blau markiert sind die Werte für die Texte und rot wären dann die dazugehörenden Seitenzahlen.

mfg
chris.w.


als Antwort auf: [#467079]

Bookmarks via Javascript im Acrobat

cwenet
Beiträge gesamt: 1139

28. Mär 2011, 11:25
Beitrag # 3 von 5
Beitrag ID: #467826
Bewertung:
(4590 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank Chris,

jetzt passiert folgendes:

Tax Forms hat als untergeordnetes Lesezeichen
1
0
4
0

Also wird der Eintrag in Einzelzeichen zerlegt und als Lesezeichen angelegt.

Das geschieht auch bei allen anderen Lesezeichen.

Weiterhin steht als JAvasriptaction im Acrobat der Code 1:1 drin:

this.pageNum=[1][0]
Er wird also nicht aufgelöst und die entsprechenden Seitenzahlen werden nicht übergeben.


Hast Du noch eine Idee was das passiert ist?

Gruss
Christohp


als Antwort auf: [#467545]

Bookmarks via Javascript im Acrobat

crisies
  
Beiträge gesamt: 138

28. Mär 2011, 16:47
Beitrag # 4 von 5
Beitrag ID: #467867
Bewertung:
(4570 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi christoph,

versuche das doch mal so:

Code
var aBkMkNames = [ "TOC", ["Tax Forms","1040"],   
["Schedules","Schedule A"],
["Wages & Tips","W2-Work"],
["Interest & Div","Bank W9","Stocks W9","cwe"],
"Receipts"];

var aBkMkPage = [ 1, [2,2],
[3,3],
[4,5],
[6,6,6],
7];

function MakeBkMks(oBkMkParent, aBkMks, aBkMkp)
{
for(var i=0;i<aBkMks.length;i++)
{
if(typeof(aBkMks[i]) != "object")
oBkMkParent.createChild({cName:aBkMks[i], nIndex:i, cExpr:"this.pageNum="+aBkMkp[i]+";"});
else
{
// Assume this is a sub Array
oBkMkParent.createChild({cName:aBkMks[i][0], nIndex:i,cExpr:"this.pageNum="+aBkMkp[i][0]+";"});
MakeBkMks(oBkMkParent.children[i], aBkMks[i].slice(1), aBkMkp[i].slice(1) );
}
}
}

MakeBkMks(this.bookmarkRoot, aBkMkNames, aBkMkPage);


gruss
chris.w.


als Antwort auf: [#467826]

Bookmarks via Javascript im Acrobat

cwenet
Beiträge gesamt: 1139

28. Mär 2011, 18:00
Beitrag # 5 von 5
Beitrag ID: #467877
Bewertung:
(4562 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
so klappt es prima.

Merci viel mal chris

Gruß
Christoph


als Antwort auf: [#467867]
X