Automatische Dateinamensvergabe
Moderator: Moderatoren
Automatische Dateinamensvergabe
Hallo,
ich möchte Dokumente, bspw. eine Rechnung per
Tastendruck auch im pdf-Format speichern und
dabei den Namen der oo-Datei vergeben lassen.
Also: Rechnung 0122003.ods soll automatisch
als 0122003.pdf gespeichert werden.
Wie bekomme ich das hin?
Vielen Dank
Gruß
Penti
ich möchte Dokumente, bspw. eine Rechnung per
Tastendruck auch im pdf-Format speichern und
dabei den Namen der oo-Datei vergeben lassen.
Also: Rechnung 0122003.ods soll automatisch
als 0122003.pdf gespeichert werden.
Wie bekomme ich das hin?
Vielen Dank
Gruß
Penti
Win2000, OpenOffice 3.2
Hast Du einen Hinweis?
Nein, darauf habe ich so genau noch nie geachtet.
Im Zweifel mache es einfach mit Makro und rufe einen angepaßten Speichern-Dialog auf. Nur für bereits gespeicherte Calc-Dokumente sollte das hier gehen:
Code: Alles auswählen
Sub Calc_als_PDF_speichern()
datei = ThisComponent.URL
i = 0
Do
i = i + 1
dat_name = RIGHT(datei,i)
Loop While LEFT(dat_name,1)<>"/"
'Name
nur_name = LEFT(RIGHT(datei,i-1),LEN(RIGHT(datei,i-1))-4)
'pfad
nur_pfad = ConvertFromURL(LEFT(datei,LEN(datei)-LEN(dat_name)))
'exit sub
arg = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION)
dialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
dialog.Initialize(arg())
dialog.appendFilter( "PDF-Dokument (*.pdf)", "*.pdf" )
dialog.SetMultiselectionMode(False)
dialog.setDefaultName(nur_name)
dialog.setDisplayDirectory(nur_pfad)
dialog.setvalue(100,0,true)
antwort = dialog.execute
if antwort = 1 then
Dim exportEigenschaften(0) as New com.sun.star.beans.PropertyValue
exportEigenschaften(0).Name = "FilterName"
exportEigenschaften(0).Value = "calc_pdf_Export"
ThisComponent.storeToUrl( dialog.Files(0) , exportEigenschaften() )
end if
End Sub
Gruß
Stephan
Ist wohl schon
Guten Morgen,
hab vielen Dank, Stephan.
Das Makro funktioniert. Allerdings nur wie der
"eingebaute" Befehl.
Nach wie vor ist es so, dass es bei einigen Dateien keinen Dateinamensvorschlag gibt.
Würde zu gerne wissen, nach welchen Kriterien das
Muster abläuft, ich habe noch mal getestet und
nichts herausgefunden !?
Vielleicht hat jemand noch eine, die zündende Idee?
Gruß
Penti
Guten Morgen,
hab vielen Dank, Stephan.
Das Makro funktioniert. Allerdings nur wie der
"eingebaute" Befehl.
Nach wie vor ist es so, dass es bei einigen Dateien keinen Dateinamensvorschlag gibt.
Würde zu gerne wissen, nach welchen Kriterien das
Muster abläuft, ich habe noch mal getestet und
nichts herausgefunden !?
Vielleicht hat jemand noch eine, die zündende Idee?
Gruß
Penti
Win2000, OpenOffice 3.2
Dieses Makro funktioniert ausnahmslos für jede Datei, welche Bereits einen Namen hat. Die Eigenschaft:
enthält nämlich diesen Namen. Sonst nenne ein konkretes Gegenbeispiel.
Bei einer Datei welche noch keinen Namen hat kann natürlich der Dateiname nicht als Name für das PDF verwendet werden weil er einfach nicht da ist.
Gruß
Stephan
Code: Alles auswählen
ThisComponent.URL
enthält nämlich diesen Namen. Sonst nenne ein konkretes Gegenbeispiel.
Bei einer Datei welche noch keinen Namen hat kann natürlich der Dateiname nicht als Name für das PDF verwendet werden weil er einfach nicht da ist.
Gruß
Stephan
Hallo penti,
ich habe ein ähnliches Makro geschrieben und Rechnungen per Makro in eine
PDF zu generieren. Dabei wird der aktuelle Pfad ermittelt um die PDFs dort abzugelegt. Zusätzlich wird der Tabelle "Rechnung" die Rechnungsnummer (Zelle: F7) dazu verwende um einen eindeutigen PDF-Namen zu erhalten (Rechnung_2006-001).
Schau mal bitte unter das Thema
"drucken zu PDF mit einem bestimmten Druckbereich per Makro"
viewtopic.php?t=6710
Gruß
Marius[/url]
ich habe ein ähnliches Makro geschrieben und Rechnungen per Makro in eine
PDF zu generieren. Dabei wird der aktuelle Pfad ermittelt um die PDFs dort abzugelegt. Zusätzlich wird der Tabelle "Rechnung" die Rechnungsnummer (Zelle: F7) dazu verwende um einen eindeutigen PDF-Namen zu erhalten (Rechnung_2006-001).
Schau mal bitte unter das Thema
"drucken zu PDF mit einem bestimmten Druckbereich per Makro"
viewtopic.php?t=6710
Gruß
Marius[/url]
Guten Abend,
@ stephan: Also1, ich speichere eine Datei mit dem Namen Hallo.ods [ok]
JETZT klicke ich auf das pdf-Symbol. Dialog öffnet sich und KEIN Name ist
vorgeschlagen.
Also2, ich lade eine Datei, die zu diesem Zeitpunkt selbstverständlich
einen Namen hat und klicke auf das pdf-Symbol. Der Dialog öffnet sich und es ist KEIN Name vorgeschlagen.
Manchmal aber ist zu 1 oder 2 ein Name vorgeschlagen, nämlich der DATEINAME.
Mit Deinem Makro ist es ganz genauso.
Wie gesagt, ich kann keine Struktur finden, wann´s geht und wann nicht.
Ich hoffe, das hat zur Klärung beigetragen.
@ sule1979 : Mit welcher Version hast Du das Makro getestet?
Gruß
Penti
@ stephan: Also1, ich speichere eine Datei mit dem Namen Hallo.ods [ok]
JETZT klicke ich auf das pdf-Symbol. Dialog öffnet sich und KEIN Name ist
vorgeschlagen.
Also2, ich lade eine Datei, die zu diesem Zeitpunkt selbstverständlich
einen Namen hat und klicke auf das pdf-Symbol. Der Dialog öffnet sich und es ist KEIN Name vorgeschlagen.
Manchmal aber ist zu 1 oder 2 ein Name vorgeschlagen, nämlich der DATEINAME.
Mit Deinem Makro ist es ganz genauso.
Wie gesagt, ich kann keine Struktur finden, wann´s geht und wann nicht.
Ich hoffe, das hat zur Klärung beigetragen.
@ sule1979 : Mit welcher Version hast Du das Makro getestet?
Gruß
Penti
Win2000, OpenOffice 3.2
Nein, leider überhaupt nichtIch hoffe, das hat zur Klärung beigetragen.

Mein primäres Problem damit ist auch nicht Deine Antwort das sich der Dateidialog beim integrierten PDF-Export so verhält, obwohl ich das zunächst auch nicht erklären kann, sondern das das Makro so reagiert.
Laß doch bitte mal bei diesen Dateien nur das Folgende laufen:
Code: Alles auswählen
Sub name_anzeigen()
datei = ThisComponent.URL
i = 0
Do
i = i + 1
dat_name = RIGHT(datei,i)
Loop While LEFT(dat_name,1)<>"/"
'Name
nur_name = LEFT(RIGHT(datei,i-1),LEN(RIGHT(datei,i-1))-4)
msgbox nur_name
End sub
Was steht übrigens bei den betreffenden Dateien in der Titelzeile?
Gruß
Stephan
Hallo Stephan,
in der Titelzeile steht z. B. Rechnungsliste_2006.sxc, auch Lehmann_2006_22235 -OpenOffice.org calc.
Übrigens: beim Ausführen Deines letzten Makros erscheint korrekt in der MessageBox der Dateiname, und zwar bei allen Dateien.
Du machst Dir ja viel Mühe. Vielen Dank.
Gruß
Penti
in der Titelzeile steht z. B. Rechnungsliste_2006.sxc, auch Lehmann_2006_22235 -OpenOffice.org calc.
Übrigens: beim Ausführen Deines letzten Makros erscheint korrekt in der MessageBox der Dateiname, und zwar bei allen Dateien.
Du machst Dir ja viel Mühe. Vielen Dank.
Gruß
Penti
Win2000, OpenOffice 3.2
Übrigens: beim Ausführen Deines letzten Makros erscheint korrekt in der MessageBox der Dateiname, und zwar bei allen Dateien.
Ja, das habe ich mir gedacht, bzw. diese Antwort hatte ich befürchtet, weil:
Ich kann Dir nun kaum weiterhelfen, da nach Deiner Aussage zwei völlig gleiche Dinge einmal für jede Datei funktionieren und einmal nicht. Nein, ich stelle DEine Antworten nicht in Frage, nur weiß ich ebend keinen Rat mehr. Das zweite Makro ist ein Auszug des Ersten und nach Deiner Aussage funktioniert das zweite immer. Es ist mir dann jedoch nicht nachvollziehbar warum das erste nicht funktioniert, da der einzige Unterschied der ist einmal den Dateinamen in einem Meldungsfenster anzuzeigen und einmal innerhalb des Dateidialogs. Die Zeile für Letztres im ersten Makro ist:
Code: Alles auswählen
dialog.setDefaultName(nur_name)
Vielleicht sieht sonst jemand einen Fehler, ich sehe keinen und bin ratlos.
Gruß
Stephan
@ sule1979 : Mit welcher Version hast Du das Makro getestet?
Hi,
das Makro habe ich unter OO 2.0.1 und OO 2.0.2 getest.
Es funktioniert einwandfrei, nur die PDF-Qualität läßt zu wünschen übrig, d.h. gewisse Formatierungen werden nicht 100 %-ig dargestellt. (Linie leicht versetzt, Schriftzug nicht genau linksbündig usw. )
Gruß
Sule
Hi,
das Makro habe ich unter OO 2.0.1 und OO 2.0.2 getest.
Es funktioniert einwandfrei, nur die PDF-Qualität läßt zu wünschen übrig, d.h. gewisse Formatierungen werden nicht 100 %-ig dargestellt. (Linie leicht versetzt, Schriftzug nicht genau linksbündig usw. )
Gruß
Sule