Name für PDF gleich dateiname

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Name für PDF gleich dateiname

Re: Name für PDF gleich dateiname

von strusi » Fr, 13.01.2012 11:57

Besten Dank!!!

Habs mit eurer Hilfe hinbekommen und läuft so wie es sollte.

der split befehl war vollkommen ausreichend als Denkanstoss

Re: Name für PDF gleich dateiname

von Frieder D. » Do, 12.01.2012 18:25

Hallo Mephist
Mephisto hat geschrieben: demzufolge liefer obiger Code "alles bis auf die letzten 4 Zeichen". Die letzten 4 Zeichen sind die Dateiendung (".doc", ".odt", ...) Wenn deine Dateiendungen 5-Stellig (z.B. ".docx") sein sollten, musst du das halt entsprechend anpassen
Aus genau diesem Grund ist deine Lösung nicht besser, sondern schlechter.

Mit

Code: Alles auswählen

meinArray() = split("meineDatei.ods", ".")
sName =meinArray(0)
erhalte ich immer den richtigen Name, und muss mich nicht darum kümmern, wie lang die Endung ist.
außerdem hat eine Datei, die noch nie abgespeichert wurde keine Endung.
Problematisch wird es nur, wenn im Dateinamen ein Punkt vor kommt.
dafür gibt es aber auch eine intelligente Lösung:

Code: Alles auswählen

  If Not thisComponent.haslocation() Then 'überprüfen, ob das Dokument zuvor gespeichert wurde.
    sName = thisComponent.Title & ".pdf"
  Else
    aName() =Split( thisComponent.Title, ".")
    for i=0 To UBound(aName())-1
     sName = sName & aName(i) & "."
    Next
    sName=sName & "pdf"
  end if
allerding geht es auch noch einfacher.

Code: Alles auswählen

    sName=GetFileNameWithoutExtension(  thisComponent.Title ) & ".pdf"
Gruß Frieder

Re: Name für PDF gleich dateiname

von Mephisto » Do, 12.01.2012 15:51

Eine zweite (bessere) Möglichkeit, die ich selbst grad verwendet hab:

Code: Alles auswählen

pdfurlOhneDateiendung = LEFT(pdfurl, LEN(pdfurl) - 4)
Erklährung:
LEFT("abcdefghijk", 5) nimmt die ersten 5 Zeichen von links. In dem Fall also "abcde"

LEN("abcdefghijk") liefter die Länge des Strings. In dem Fall also 11

demzufolge liefer obiger Code "alles bis auf die letzten 4 Zeichen". Die letzten 4 Zeichen sind die Dateiendung (".doc", ".odt", ...) Wenn deine Dateiendungen 5-Stellig (z.B. ".docx") sein sollten, musst du das halt entsprechend anpassen

Re: Name für PDF gleich dateiname

von Mephisto » Do, 12.01.2012 15:10

Versuchst mal mit der funktion split
split bekommt 2 Strings übergeben.
Der erste String ist dein zu bearbeitender String, der anhand des 2.Strings separiert wird. Das Ergebnis wird in ein Array gepackt.

Ich veranschauliche das am besten anhand eines Beispiels

meinArray() = split("meineDatei.ods", ".")

Der String "meinDatei.ods" wird nun beim Punkt gesplittet. Dann hast du
meinArray(0) --> "meineDatei"
meinArray(1) --> "ods"

Re: Name für PDF gleich dateiname

von strusi » Do, 12.01.2012 09:13

Hallo,
Sorry für die späte Antwort bin aber jetzt erst dazu gekommen es mal zu testen.

Dein Vorschlag funktioniert generell so wie gedacht allerdings mit einem kleinen "schönheitsfehler" und zwar wird das pdf mit der writer endung generiert sprich es sieht dann so aus.

xyz.odt.pdf

hat vllt noch jemand einen tipp wie ich das raus bekomme?

Aber besten dank vorerst für die bisherige Lösung!!

Re: Name für PDF gleich dateiname

von opiWahn » Mo, 28.11.2011 12:02

Hallo,

bin zwar auch nicht gerade der Crack, aber ich denke es sollte so funktionieren:
Zunächst ermitteltst du mit thisComponent.title den aktuellen Namen der Datei.

Das speichern als PDF sollte dann so funktionieren:

Code: Alles auswählen

datname = thisComponent.title
path = "X:/Verzeichnis/PDF/"
extension = ".pdf"
pdfurl = "file:///" + path + datname + extension
dim pdfProperties(1) as new com.sun.star.beans.PropertyValue
pdfProperties(0).Name = "FilterName"
pdfProperties(0).Value = "writer_pdf_Export"
thisComponent.storeToURL(pdfurl, pdfProperties())

Name für PDF gleich dateiname

von strusi » Di, 22.11.2011 20:10

Hallo,
Wollte mir ein kleines Makro bauen, das mir einige Arbeitsschritte abnimmt. Wie es eben Makros so machen.

Hab das Makro mittels Makrorecorder aufgezeichnet und es funktioniert auch soweit. Nur ein Problem habe ich noch:

Das pdf das erzeugt wird soll unter dem gleichen Namen gespeichert werden wie der eigentlich Dateiname...

Mit dem recorder sieht das ganze so aus:

Code: Alles auswählen

args1(0).Value = "file:///C:/Users/name/Documents/wieauchimmer.pdf"
vllt hat es auch gar nichts mit dieser stelle zu tun aber dort schien es mir logisch zu sein.

es sollte dann eben so aussehen wenn ich datei "abcd.odt" öffne soll das pdf entsprechend unter "abcd.pdf" gespeichert werden und "xyz.odt" ergo "xyz.pdf"

da ich ein absoluter noob bin und mich auch nur bedingt mit der Materie auskenne wäre ich sehr dankbar für eine Hilfestellung wie man das lösen kann.

Besten Dank für die Hilfe...

Nach oben