[gelöst] Writer Dokument nach dem öffnen Read-Only setzen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
Rasakul
**
Beiträge: 32
Registriert: Di, 29.07.2014 15:26
Wohnort: Wien

[gelöst] Writer Dokument nach dem öffnen Read-Only setzen

Beitrag von Rasakul »

Hallo liebe Community!

Mein Plan ist es, ein Writer-Dokument per Makro zu öffnen und anschließend zu einer Textmarke zu springen, wobei gleichzeitig das Dokument schreibgeschützt sein sollte.

Leider scheinen sich Schreibschutz und Textmarken nicht zu vertragen, zumindest erzielt der folgende Code keinen Sprung zur Textmarke, das Dokument wird nur geöffnet:

Code: Alles auswählen

Sub OpenDoc
     
     Dim myProp(0) As new com.sun.star.beans.PropertyValue
    myProp(0).name="ReadOnly"
    myProp(0).value = True 
    
    strBookmark = "MyBookmark"

    sURL = ConverttoURL(dies\ist\der\pfad\test.odt)
    oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, myProp())
    
    oViewCursor = oDoc.CurrentController.getviewCursor()
    oBookmark = oDoc.Bookmarks.getByName(strBookmark)
    oBookmarkAnchor = oBookmark.Anchor
    oViewCursor.gotorange(oBookmarkAnchor,false) 
    
End Sub
Deshalb die Frage: gibt es eine Möglichkeit, das Dokument nach dem Sprung in den ReadOnly Modus zu versetzen? Oder gibt es eine andere Möglichkeit, dies zu realisieren?

Danke schonmal für die Hilfe!

LG
Rasakul
Zuletzt geändert von Rasakul am Mi, 20.08.2014 14:39, insgesamt 1-mal geändert.
Wenn du dir die Anwender deiner Programme als Idioten vorstellst, werden auch nur Idioten deine Programme verwenden - Linus Torvalds
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Writer Dokument nach dem öffnen Read-Only setzen

Beitrag von Karolus »

Hallo
Textmarken haben eine URL die du direkt "öffnen" kannst

Code: Alles auswählen

Sub OpenDoc
         
        Dim myProp(0) As new com.sun.star.beans.PropertyValue
        myProp(0).name="ReadOnly"
        myProp(0).value = True 
        sURL = ConverttoURL( "dies\ist\der\pfad\test.odt#MyBookmark"  )  '#hier'
        oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, myProp())
        
End Sub
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Writer Dokument nach dem öffnen Read-Only setzen

Beitrag von balu »

Hallo

@Rasakul
Ich hab deinen Code ausprobiert (OOo 3.2.1, AOO 4.0.1, LO 4.2.1.1) und er funktioniert. Es wird die Datei Schreibgeschützt geöffnet und zur in der Datei gesetzten Textmarke gesprungen. Die Textmarke wird auch farblich angezeigt.



@Karolus
Textmarken haben eine URL die du direkt "öffnen" kannst
Komisch, bei mir nicht.
Alle drei eben aufgelistete Office produzieren bei mir Fehlermeldungen. Hier mal zwei als Screenie.
Fehler-AOO.jpg
Fehler-AOO.jpg (77.5 KiB) 3047 mal betrachtet
Fehler-LO.jpg
Fehler-LO.jpg (86.74 KiB) 3047 mal betrachtet

Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Writer Dokument nach dem öffnen Read-Only setzen

Beitrag von Karolus »

Hallo

Ich habs unter Linux und mit Python so hingekriegt.

Code: Alles auswählen

from com.sun.star.beans import PropertyValue

prop = PropertyValue()
prop.Name="ReadOnly"
prop.Value=True

sURL = "file:///home/karolus/Unwriteable.odt#ffff"
oDoc = desktop.loadComponentFromURL(sURL, "_blank", 0, (prop,))
    
 
evtl. muss du "#bookmark" nach dem converttoURL drankleben ??

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Benutzeravatar
Rasakul
**
Beiträge: 32
Registriert: Di, 29.07.2014 15:26
Wohnort: Wien

Re: Writer Dokument nach dem öffnen Read-Only setzen

Beitrag von Rasakul »

Hallo!

@Karolus: stimmt, funktioniert nur nach dem converttoURL

@balu:
ich hab jetzt ein bisschen herumprobiert und bin draufgekommen, dass es daran lag, dass Textmarken anscheinend nur mit markierten Text funktionieren und nicht auf Cursorpositionen (so wie ich es machen wollte) referenzieren bzw Curosorpositionen als Textmarke in Kombination mit dem Makro nicht funktionieren.

somit dürfte das Problem gelöst sein, danke euch beiden!

LG
Rasakul
Wenn du dir die Anwender deiner Programme als Idioten vorstellst, werden auch nur Idioten deine Programme verwenden - Linus Torvalds
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Writer Dokument nach dem öffnen Read-Only setzen

Beitrag von Karolus »

Hallo

ConverttoUrl wandelt den #Gartenzaun zu '%23' damit kann die Officeinterne URL-auflösung wohl nix anfangen.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Antworten