BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] PDF per Makro von "A" nach "B" unter Windows kopieren?

Alles zur Programmierung im LibreOffice.
Antworten
nostromo
Beiträge: 33
Registriert: So 20. Aug 2017, 12:52
Wohnort: Osnabrück

[gelöst] PDF per Makro von "A" nach "B" unter Windows kopieren?

Beitrag von nostromo » Mo 8. Aug 2022, 10:11

Hallo LO-Makro-Experten!

Ich habe bereits tolle Unterstützung und Lösungen von euch bekommen - herzlichen Danke dafür!
... dennoch komme ich aktuell nicht in meinem Projekt weiter.

Mit einem Makro exportiere ich bereits ein Calc-Sheet als PDF auf einen Speicherort z.B. "W:\muster\projekt\dateiname.pdf".
Nun stellt sich heraus das es sinnvoll wäre, wenn dieses PDF zusätzlich auch auf dem Desktop des Windows-Users gespeichert wird.

Der eine Lösungsansatz ist die Datei erneut zu exportieren - daher das bestehenden Makro mit abweichenden Pfadangabe die PDF-Datei ein zweites Mal zu erstellen. ... das habe ich auch hinbekommen.

Da die Lösung weder besonders effektiv noch besonders "schnell" ist - User haben teilweise sehr schwache Notebooks,
würde ich gerne ein Makro nutzen, welches die bereits exportierte PDF-Datei von:

Code: Alles auswählen

"W:\muster\projekt\Dateiname.pdf"
nach

Code: Alles auswählen

"C:\[ENVIRON]\muster\projekt\dateiname.pdf"
.. kopiert.

Der Speicherpfad ist bereits in einer URL-String verfügbar... hier der original-String:

Code: Alles auswählen

 file:///W:/Metrologie/DEVICES/DEB_000002/AB666666/SRA_0000815/ELM_SRA_815-W1_2022-8-8_666666_2-19882-44781.PDF
Mir ist bekannt, dass hier aufgrund des USER-Speichortes mit einer Umgebungsvariable (environ) im Makro umgegangen werden muss.

Habe auch schon ein paar Experimente damit gemacht. Es gibt aber wohl auch "Merkwürdigkeiten" aufgrund des installierten OneDrive, welcher die Pfade irgendwie "manipuliert" .. oder auch zwischen meinen Ohren :-)

Habt ihr da ggf. einen Hinweis für mich wie ich das umsetzen muss - zunächst danke für die Mühe!
Zuletzt geändert von nostromo am Di 9. Aug 2022, 17:08, insgesamt 1-mal geändert.
cu
nostromo

gogo
Beiträge: 1072
Registriert: Sa 5. Feb 2011, 19:07

Re: PDF per Makro von "A" nach "B" unter Windows kopieren?

Beitrag von gogo » Mo 8. Aug 2022, 11:45

g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

nostromo
Beiträge: 33
Registriert: So 20. Aug 2017, 12:52
Wohnort: Osnabrück

Re: PDF per Makro von "A" nach "B" unter Windows kopieren?

Beitrag von nostromo » Di 9. Aug 2022, 09:31

@gogo

die Funktion habe ich soweit verstanden und getestet.

Mein Problem ist derzeit noch, dass ich das Zielverzeichnis (DEVICES.temp) des Users vorhanden sein muss.
Ist es nicht verfügbar kommt es zu einer Fehlermeldung (BASIC-Laufzeitfehler. Pfad nicht gefunden)

Code: Alles auswählen

Filecopy sDatei_url_Name, Environ(sUmgebung) & "\DEVICES.temp\" & sELM_Datei_Name & ".pdf"
Ziel-String sieht so aus:
C:\Users\nostromo\DEVICES.temp\ELM_SRA_815-W1_2022-8-8_666666_2-24302-44781.pdf

Wie kann ich das lösen? Danke
cu
nostromo

Benutzeravatar
karolus
Beiträge: 2170
Registriert: Fr 10. Dez 2010, 10:01

Re: PDF per Makro von "A" nach "B" unter Windows kopieren?

Beitrag von karolus » Di 9. Aug 2022, 09:56

Hallo

du hast in deinem Zielpfad den literalen Eintrag "\DEVICES.temp\" und möchtest jetzt wissen wie du eine Fehlermeldung aufgrund dessen abfängst :?: gehts noch?

in Basic gibts tatsächlich den Befehl mkdir zum erstellen eines Verzeichniss[pfads]
Zuletzt geändert von karolus am Di 9. Aug 2022, 10:13, insgesamt 1-mal geändert.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

nostromo
Beiträge: 33
Registriert: So 20. Aug 2017, 12:52
Wohnort: Osnabrück

Re: PDF per Makro von "A" nach "B" unter Windows kopieren?

Beitrag von nostromo » Di 9. Aug 2022, 10:11

@karolus
super Antwort - kann ich echt viel mit anfangen!

Was auch immer das für ein Problem sein mag - es funktioniert ja, wenn das Verzeichnis zuvor schon besteht.

Danke für die Mühe einer etwas weniger emotionalen Antwort, wenn du noch magst!
cu
nostromo

Benutzeravatar
karolus
Beiträge: 2170
Registriert: Fr 10. Dez 2010, 10:01

Re: PDF per Makro von "A" nach "B" unter Windows kopieren?

Beitrag von karolus » Di 9. Aug 2022, 10:17

Wie offensichtlich muss eine Fehlermeldung denn sein, damit $Basic-held daraus die offensichtlichen Schlüsse zieht.?
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

nostromo
Beiträge: 33
Registriert: So 20. Aug 2017, 12:52
Wohnort: Osnabrück

Re: PDF per Makro von "A" nach "B" unter Windows kopieren?

Beitrag von nostromo » Di 9. Aug 2022, 10:25

@karolus - geh bitte aus diesem Thread - danke für deine Meinung - kann nichts damit anfangen!
..hatte bislang ein anderes Bild von dir - habe ich mich wohl getäuscht :-(
cu
nostromo

nostromo
Beiträge: 33
Registriert: So 20. Aug 2017, 12:52
Wohnort: Osnabrück

[gelöst] Re: PDF per Makro von "A" nach "B" unter Windows kopieren?

Beitrag von nostromo » Di 9. Aug 2022, 17:07

Ich habe die Lösung für mein "Problem" mit Hilfe und trotz meines kleine "$Basic-held" - Know-how zurechtgefummelt.
Ob das wirklich alles soooo 100% richtig ist - sicherlich nicht, wenn Experten einen Blick darauf werfen :-)

Code: Alles auswählen

Sub mELM_exportPDF()

	oELM_Doc = ThisComponent.CurrentController.Frame
	oELM_Dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

	sDatei_url_Name = ConvertToUrl (sDatei_pdf_Name)

	dim args1(1) as new com.sun.star.beans.PropertyValue
		args1(0).Name = "URL"
		args1(0).Value = sDatei_url_Name
		args1(1).Name = "FilterName"
		args1(1).Value = "calc_pdf_Export"

	oELM_Dispatcher.executeDispatch(oELM_Doc, ".uno:ExportDirectToPDF", "", 0, args1())

	REM PDF wird zusätzlich in das lokal Verzeichnis "DEVICES.temp" kopiert
	mkdir (Environ(sUmgebung) & sTrenner & "DEVICES.temp")
	
	sZielDatei_pdf_Name = Environ(sUmgebung) & sTrenner & "DEVICES.temp" & sTrenner & sELM_Datei_Name & ".pdf"
	sZielDatei_url_Name = ConvertToUrl( sZielDatei_pdf_Name )

	FileCopy ( sDatei_url_Name, sZielDatei_url_Name )
		
End Sub

Das obige Makro habe ich unter Win10pro und unter opensuse (KDE/plasma) getestet - es funktioniert!
LO 6.4.4.2 (exe bzw rpm)

Es ist scheinbar kein Problem zu sein, wenn "mkdir" angewendet wird, obwohl das Verzeichnis bereits besteht.
...ja, ich habe gelesen, dass auch geprüft werden kann ob eine Verzeichnis schon besteht.

Danke!
cu
nostromo

gogo
Beiträge: 1072
Registriert: Sa 5. Feb 2011, 19:07

Re: [gelöst] PDF per Makro von "A" nach "B" unter Windows kopieren?

Beitrag von gogo » Di 9. Aug 2022, 17:39

sofern Environ(sUmgebung) eine gültige Pfadangabe ist und Du dort Schreibrechte hast, solltest das ok sein...
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten