Ik ben een absolute beginner met InDesign, maar ik wil hiermee graag een fotoalbum maken. Met name omdat ik graag een redelijk toekomstvaste digitale versie wil hebben, dus in pdf. Waarschijnlijk laat ik hem afdrukken bij fotofabriek.nl, omdat zij pdf als aanleverformaat accepteren.
Mijn eerste probleem waar ik tegenaan loop wil ik hier graag aan de orde stellen. Het is meer ter kennisgeving dan voor discussie, dus misschien mag ik dat niet doen. Ik wil graag een vrij strak album maken. Weinig toeters en bellen, en een strakke indeling van de foto frames. Na enig Googelen kwam ik er achter dat je handig met libraries kunt werken om indelingen in op te slaan. Maar dan blijft het probleem: Hoe kom ik aan de indelingen? Ik zie veel templates te koop in Internet, maar die zijn vrij duur, omdat ik maar een simpele layout wil. Zelf de frames passen en meten vond ik toch vrij omslachtig, maar dat is waarschijnlijk mijn onervarenheid.
Toen kwam ik er achter dat je scripts kunt maken voor InDesign. En je bent tweaker of je bent het niet...
Ik heb een scriptje gemaakt dat een raster maakt van frames. Je kunt een gewenste aspectratio opgeven en marges. Het script maakt dan de grootst mogelijk frames aan. Daarna vond ik het script "MergeTextframes". Door een aantal frames in het grid te selecteren en dat script toe te passen, kan je vrijwel onbeperkt indelingen verzinnen. De resulterende indelingen die ik mooi vind, sla ik op in een library. Het verzinnen en opslaan van indelingen kost nauwelijks tijd. Het heeft voor mij net iets prettigere mogelijkheden dan het sample script MakeGrid dat bij InDesign wordt meegeleverd.
Het grid script is wel erg minimalistisch. Het maakt het grid aan op de eerste pagina van het eerste document. Het is echt alleen bedoeld als basis voor een indeling die later in een library opgenomen kan worden.
Dit is de code voor het grid script. Misschien heeft iemand er iets aan. Mij lijkt het in ieder geval te helpen.
Mijn eerste probleem waar ik tegenaan loop wil ik hier graag aan de orde stellen. Het is meer ter kennisgeving dan voor discussie, dus misschien mag ik dat niet doen. Ik wil graag een vrij strak album maken. Weinig toeters en bellen, en een strakke indeling van de foto frames. Na enig Googelen kwam ik er achter dat je handig met libraries kunt werken om indelingen in op te slaan. Maar dan blijft het probleem: Hoe kom ik aan de indelingen? Ik zie veel templates te koop in Internet, maar die zijn vrij duur, omdat ik maar een simpele layout wil. Zelf de frames passen en meten vond ik toch vrij omslachtig, maar dat is waarschijnlijk mijn onervarenheid.
Toen kwam ik er achter dat je scripts kunt maken voor InDesign. En je bent tweaker of je bent het niet...
Ik heb een scriptje gemaakt dat een raster maakt van frames. Je kunt een gewenste aspectratio opgeven en marges. Het script maakt dan de grootst mogelijk frames aan. Daarna vond ik het script "MergeTextframes". Door een aantal frames in het grid te selecteren en dat script toe te passen, kan je vrijwel onbeperkt indelingen verzinnen. De resulterende indelingen die ik mooi vind, sla ik op in een library. Het verzinnen en opslaan van indelingen kost nauwelijks tijd. Het heeft voor mij net iets prettigere mogelijkheden dan het sample script MakeGrid dat bij InDesign wordt meegeleverd.
Het grid script is wel erg minimalistisch. Het maakt het grid aan op de eerste pagina van het eerste document. Het is echt alleen bedoeld als basis voor een indeling die later in een library opgenomen kan worden.
Dit is de code voor het grid script. Misschien heeft iemand er iets aan. Mij lijkt het in ieder geval te helpen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| /* Parameters invullen*/ #include "ominoDialogMaker.jsx" var omd = newOminoDialog("Instellingen"); omd.number("Marge links en rechts","margeLR",5); omd.number("Marge boven en onder","margeBO",5); omd.number("Rijen","rijen",3); omd.number("Kolommen","kolommen",2); omd.number("Breedte ratio","breedteRatio",3); omd.number("Hoogte ratio","hoogteRatio",2); omd.number("Minimale tussenruimte kolommen","minTussenKolommen",3); omd.number("Minimale tussenruimte rijen","minTussenRijen",3); var result = omd.run(); if(result != null) { with(result) { var myDocument = app.documents.firstItem(); var myPage = myDocument.pages.item(0); /* Pagina eigenschappen */ var pagHoogte = myDocument.documentPreferences.pageHeight; var pagBreedte = myDocument.documentPreferences.pageWidth; var besBreedte = pagBreedte - 2*margeLR; var besHoogte = pagHoogte - 2*margeBO; /* Maximale breedte en hoogte */ var maxBreedte = (besBreedte - (kolommen-1)*minTussenKolommen)/kolommen; var maxHoogte = (besHoogte - (rijen-1)*minTussenRijen)/rijen; /* Bepaal beperkende factor, definitieve hoogte en breedte frames, en tussenruimten */ var hoogteBreedteRatio = hoogteRatio/breedteRatio; if (maxBreedte*hoogteBreedteRatio > maxHoogte) { /* Hoogte is de beperkende factor */ var frameBreedte = maxHoogte/hoogteBreedteRatio; var frameHoogte = maxHoogte; var tussenKolommen = (besBreedte - kolommen*frameBreedte)/(kolommen - 1); /* <totaal beschikbare tussenruimte>/<aantal tussenruimtes> */ var tussenRijen = minTussenRijen; } else { /* Breedte is de beperkende factor */ var frameBreedte = maxBreedte; var frameHoogte = maxBreedte*hoogteBreedteRatio; var tussenKolommen = minTussenKolommen; var tussenRijen = (besHoogte - rijen*frameHoogte)/(rijen - 1); /* <totaal beschikbare tussenruimte>/<aantal tussenruimtes> */ } /* Aanmaken frames */ for (i=0; i < kolommen; ++i) { for (j=0; j < rijen; ++j) { var myTextFrame = myPage.textFrames.add(); myTextFrame.geometricBounds = [margeBO + j*(frameHoogte+tussenRijen), margeLR + i*(frameBreedte+tussenKolommen), margeBO + j*tussenRijen + (j+1)*frameHoogte, margeLR + i*tussenKolommen + (i+1)*frameBreedte]; }; }; }; }; |