tirsdag den 6. december 2016

Tekstdokumenters titel


Det har i lang tid irriteret mig at mine PDF-filer vises med filnavn og dokumenttitel i titellinjen. Det er irriterende fordi jeg altid glemmer at rette dokumenttitlen, og mine PDF-filer har altid skabelonens navn (hvis jeg har brugt en skabelon) i titellinjen. 
Et tekstdokument kan have forskellige ”titler”. F.eks. kan du anvende en typografi med navnet ”Titel”. Det er bare ikke den titel der anvendes nÃ¥r vi laver PDF-filer. Det er den titel du kan registrere under Filer – Egenskaben pÃ¥ fanen Beskrivelse i feltet Titel.
Og hvem husker lige det?
I mit tilfælde er jeg sÃ¥ uheldig at mine skabeloner derimod har titler, og hvert eneste dokument ”arver” skabelonens titel, hvilket sÃ¥ i sidste ende vises i PDF-læserens titellinje. Det var faktisk bedre hvis der slet ikke stod noget som helst i det felt.
Jeg har forsøgt at automatisere opdatering af feltet, og jeg er kommet frem til to forslag. Det første gÃ¥r ud pÃ¥ at titlen inde i dokumentet (f.eks. med typografien ”Titel”) tildeles et bogmærke med navnet ”Titel”. Denne makro overfører Titel-teksten i dokumentet til egenskabstitlen:
Sub TitelFraBookmark
oBookmarkTitel = thisComponent.Bookmarks.getByName("Titel")
thisComponent.DocumentProperties.Title = oBookmarkTitel.Anchor.String
End Sub
Ulempen er at det ikke er tydeligt for brugeren hvad titlen er, for det er meget let at ødelægge bogmærket, så det kun er en del af teksten der er bogmærke.
I stedet bruger jeg en brugerdefineret variabel (IndsætFeltFlere felter… pÃ¥ fanen Variable opretter du et Brugerdefineret felt). I dokumentet markerer du feltet og vælger typografi ”Titel”.
Denne makro kopierer det brugerdefinerede felt til dokumentegenskaberne:
Sub TitelFraFelt
oMaster = thisComponent.getTextFieldMasters().getByName("com.sun.star.text.fieldmaster.User.Titel")
thisComponent.DocumentProperties.Title = oMaster.Content
End Sub


Makroen sørger for at feltet i dokumentet overføres til dokumentegenskaberne:


Så er det bare at knytte makroen (vælg selv hvilken af de to du synes er bedst) til en eller flere handlinger, f.eks. når dokumentet gemmes eller når dokumentet eksporteres.
Tilknytning af en makro til en handling kan du gøre under FunktionerTilpas på fanen Hændelser. Du kan sagtens tilknytte samme makro til flere forskellige hændelse.