Viser opslag med etiketten Kommandolinje. Vis alle opslag
Viser opslag med etiketten Kommandolinje. Vis alle opslag

torsdag den 14. marts 2019

Flere brugerprofiler

Din brugerprofil indeholder en lang række oplysninger om hvordan du har indstillet LibreOffice, og hvordan du har brugt LibreOffice senest. Der findes mere end 56.000 forskellige "indstillinger" i LibreOffice.

Første gang du starter LibreOffice bliver der automatisk oprettet en folder med navnet "user" i dit hjemmekatalog. På min Ubuntu-maskine ligger den i /home/leif/.config/libreoffice/4. På Windows er det i C:\Program Files\LibreOfficeOffice (tror jeg nok) og på en Mac er det i ~/Library/Application Support/LibreOffice/4/user.

Du kan godt have flere brugerprofiler på samme computer.

Du kan f.eks. kopiere hele user-kataloget til et andet sted (i mit eksempel i /home/leif), og starte LibreOffice med parameteren -env:UserInstallation:

/opt/libreoffice6.2/program/soffice -env:UserInstallation=file:////home/leif --nologo

Du kan starte LibreOffice med parametre ved at åbne en terminal (på Linux) eller en kommandoprompt på Windows. Du kan også oprette en ny LibreOffice.desktop (på Linux) eller oprette en genvej på Skrivebordet (i Windows).

Du kan også gøre det uden først at kopiere folderen user, og så vil der blive oprettet en ny "tom" brugerprofil.

Nu kan du ændre indstillingerne i den startede LibreOffice, og når du lukker, vil ændringerne blive lagt i den nye brugerprofil. Du kan f.eks. have en brugerprofil med dit eget navn og e-mail i brugeroplysningerne, og en anden med badmintonklubbens navn og adresse.

I dette eksempel konverterer jeg en fil til PDF med en specifik brugerprofil, hvor alle PDF-filer eksporteres som PDF/A 1a:

/opt/libreoffice6.2/program/soffice --convert-to pdf /home/leif/Dokumenter/LibreOffice/test/Ligatur.odt --outdir //home/leif/Dokumenter/LibreOffice/test -env:UserInstallation=file:////home/leif --nologo

PDF-indstillingerne er en linje i filen registrymodifications.xcu:

<item oor:path="/org.openoffice.Office.Common/Filter/PDF/Export"><prop oor:name="SelectPdfVersion" oor:op="fuse"><value>1</value></prop></item>

Du kan læse mere om LibreOffice parametre her: https://help.libreoffice.org/latest/da/text/shared/guide/start_parameters.html

tirsdag den 11. september 2018

Konvertering af (mange) csv-filer

Det er ingen hemmelighed at LibreOffice er noget af en schweizerkniv når det kommer til at konvertere dokumenter af enhver art. Gamle præsentationer fra Mac eller regneark fra Super Calc. LibreOffice klarer det med et snuptag. Det kan endda gøres med en kommandolinje, f.eks.

"C:\Program Files (x86)\LibreOffice\program\scalc.exe" --convert-to pdf  C:\Users\leil\Documents\test\testregneark.xlsx --outdir C:\Users\leil\Documents\test

Her konverteres et regnearksdokument til PDF.

Der skal ikke meget til for at lave en løkke, som rekursivt konverterer alle xlsx-filer i en bestemt folder.

Men...

Import af CSV-filer er lidt mere kompliceret.

Når du importerer en CSV-fil med LibreOffice ledes du altid igennem et skærmbillede, som ser nogenlunde sådan ud:



Hvis vi skal konvertere en mængde af (ens) CSV-filer skal vi i kommandolinjen udfylde skærmbilledet ved at anvende en parameter "-infilter" som er temmelig kompliceret at regne ud. Det er reelt umuligt at regne sig frem til, at det skal se sådan ud: --infilter="csv:59/44,34,12,1,1/4,0,false,true,true,false,false".

Der er en meget let måde at finde denne parameters værdi på. Det kræver en lille makro:

Sub showFilterOptions
Dim args(),i%
args() = thisComponent.getArgs
    for i = 0 to uBound(Args())
        if args(i).Name = "FilterOptions" then inputbox "","",args(i).value
    next
End Sub


Hvis du manuelt importerer en CSV-fil (og udfylder skærmbilleder korrekt), kan du umiddelbart efter køre denne makro. LibreOffice "husker" nemlig hvad du senest har importeret, og med denne makro får du oplyst hvad der er gemt.



Og import-kommandoen er derfor:

"C:\Program Files (x86)\LibreOffice\program\scalc.exe" --convert-to pdf --infilter="csv:59/44,34,12,1,1/4,0,false,true,true,false,false" C:\Users\leil\Documents\CSV\testdokument.csv --outdir C:\Users\leil\Documents\CSV

onsdag den 4. april 2018

LibreOffice med kommandolinje

LibreOffice kan startes med forskellige parametre i en kommandolinje, hvor du f.eks. kan starte programmet uden opstartsskærmbilede eller i minimeret tilstand. Lera Goncharuk har skrevet en artikel på engelsk, som forklarer mulighederne: https://dnimruoynepo.blogspot.dk/2016/12/command-line-arguments-in-libreoffice.html. Lera er en af de meget aktive brugere i Rusland.

Det artiklen desværre ikke omtaler er muligheden for at åbne et dokument og samtidig eksekvere en makro.

I eksemplet har jeg et almindeligt tekstdokument (Dansk.odt) og en makro installeret (Generate.LoremIpsum.Main). Makroen er fra en udvidelse, som findes her: https://extensions.libreoffice.org/extensions/magenta-lorem-ipsum-generator.

Hvad makroen gør er egentlig ikke vigtig i denne sammenhæng.

Fra en kommandolinje kan jeg skrive: soffice --nologo /home/leif/Dokumenter/LibreOffice/Dansk.odt macro:///Generate.LoremIpsum.Main og dokumentet åbnes, og en dialogboks fra makroen vises. (Vær opmærksom på at stierne i eksemplet er fra min Linux-maskine. På Windows skal du selv finde stierne.)

Forklaring:
  • soffice starter LibreOffice
  • --nologo betyder at vi ikke ønsker splash-skærmen
  • /home/leif/Dokumenter/LibreOffice/Dansk.odt er dokumentet
  • macro:///Generate.LoremIpsum.Main er makroen
 Resultatet:





For at starte en kommandolinje i Windows, skal du klikke på "Kør" og så skrive CMD [enter].

Du kan oprette en genvej på skrivebordet, hvor du tilføjer hele kommandolinjen, og genvejen vil altså fungere som en genvej direkte til at udføre makroen.

Perspektiver
I kombination med andre parametre som f.eks. "--invisible" kan du på denne måde behandle dokumenter maskinelt, uden at programmet LibreOffice viser sig på skærmen.