PDF-Export

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: PDF-Export

von toni » Mo, 26.03.2007 09:00

Hallo Thomas,

das ist sicherlich der bessere Weg!

Vielen Dank.

Gruss

Thomas

von Toxitom » Fr, 23.03.2007 20:18

Hey Thomas,

ich misch noch mal mit, auch wenn schon etwas länger her, aber, CeBIT und so... ;-)

Neben dem reinen Basic-Shell Befehl den ihr hier benutzt, solltest du einmal denb UNO-Shell Befehlt testen. Hier ist es nämlich in der Regel gar nicht nötig, den genauen Ort des Programms zu kennen - solange es nur dem System bekannt ist (Mime-Typ). Das ist meist effizienter.
Also, um das PDF-Dokument aufzurufen, reicht dann:

Code: Alles auswählen

sub showPDF
  sURL = "d:\Daten\test.pdf"  'Dateinamen mit Pfad
  oService = createUnoService("com.sun.star.system.SystemShellExecute")
  oService.execute(sURL,,0)
end sub
Der Execute-Befehl erwartet drei Parameter: zunächst die Datei oder das Programm. Übergibt man nur eine Datei, so entspricht das einem Doppelklick in der Gui auf den Dateinamen - das System erkennt die dazugehörige Applikation und startet die automatisch :-) (es muss also nicht der Adobe Reader sein), der zweite Parameter wäre eine Liste von Übergabeparametern (oder eben nichts) und der dritte ist ein Flag:
0 = Standard, 1 = keine Systemmeldung, falls Fehler.

Ich denke, das wäre der bessere Weg in deinem Programm.

Viele Grüße
Thomas

von toni » Mo, 19.03.2007 16:06

Hallo Karo,

mit getGuiType() bekomme ich die Unterscheidung hin!

Die Löschbefehle unter Windows schau ich mir noch an.

Vielen Dank!

Thomas

von Karolus » Mo, 19.03.2007 15:39

Hallo
Wie frage ich ab, auf welchem Betriebssystem ich mich gerade befinde (in Java gibt es sowas wie 'system.getProperties').
Die Suche nach "Betriebssystem ermitteln" führt u.a. zu diesem Thema:

viewtopic.php?t=10918&highlight=betrieb ... +ermitteln
Wie sieht der entsprechende Löschbefehl für die Datei test.pdf unter Windows aus?
Die Google-Suche nach "MS-DOS-befehle" ergibt die Befehle 'DEL' und 'ERASE' zum löschen von Dateien unter Windows.
Hilft dir das weiter ?

Gruß Karo

von toni » Mo, 19.03.2007 14:00

Hallo Karo,

auch der Löschbefehl klappt!

Unter Linux reicht bei mir übrigens der Befehl:

Code: Alles auswählen

Shell("acroread", 0, "C:/temp/test.pdf",True)
um die Datei zu öffnen.
Ich brauche scheinbar keinen Pfad zur Reader-Exe mit zu geben(?!).


Meine Calc-Anwendung muss allerdings unter Windows und unter Linux laufen.

Mit

Code: Alles auswählen

Shell("C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe", 0, "C:/temp/test.pdf",True)
klappt der Aufruf auch unter Windows.

Nun meine Fragen:

Wie sieht der entsprechende Löschbefehl für die Datei test.pdf unter Windows aus?
gibt es auch unter Windows die Möglichtkeit den Reader ohne konkreten Pfad auf zu rufen?
Wie frage ich ab, auf welchem Betriebssystem ich mich gerade befinde (in Java gibt es sowas wie 'system.getProperties').

Gruss

Thomas

von Karolus » Fr, 16.03.2007 15:57

Hallo Thomas
Kannst Du mir vielleicht auch sagen, wie ich die Datei nach dem Schließen des Readers wieder löschen kann?
Wenns ebenfalls via Shell sein darf ? - das Prinzip bleibt das gleiche:

Shell("Pfad\zum\lösch\befehl", 0, "\pfad\zur\test.pdf",True)

Ich arbeite mit Linux daher kann ich dir keine konkreteren Angaben machen, bei mir funktioniert ein Test mit der Code-zeile:
...
Shell("/bin/rm", 0, "/home/aaa/test.txt",True)
....

von toni » Fr, 16.03.2007 15:20

Danke Karo,

hat beides bestens geklappt!!!

Kannst Du mir vielleicht auch sagen, wie ich die Datei nach dem Schließen des Readers wieder löschen kann?

Gruss

Thomas

von Karolus » Do, 15.03.2007 12:17

Hallo Thomas
Wie kann ich dem AcrobatReader sagen, dass er beim Start automatisch die Datei test.pdf öffnen soll(Kommandozeilenparameter???)?
Füg doch mal den Pfad zur 'test.pdf' zwischen den hinteren ""-zeichen ein:

Code: Alles auswählen

Sub Reader
Shell("C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe", 0, "C:\temp\test.pdf",True)
msgbox "Reader beendet"
End Sub 
m exportierten PDF-Dokument werden die Nullwerte angezeigt, obwohl die Option.....
Unter -->Format-->Seite 'Tabelle'--Drucken die Option 'Nullwerte' abschalten.

Gruß Karo

PDF-Export

von toni » Do, 15.03.2007 11:32

Hallo zusammen,

ich möchte den Druck meiner Calc-Dokumente über PDF realisieren.

Einige Bausteine habe ich schon zusammen:

Mit dem Makroaufruf

Code: Alles auswählen

Druckbereich_Anlegen(oSheet_Test,0,0,25,100) 

Code: Alles auswählen

Sub Druckbereich_Anlegen(nSht as Object, _
                         nStC as Integer, _
                         nStR as Integer, _
                         nEndC as Integer, _
                         nEndR as Integer)

Dim CellrangeAddress AS New com.sun.star.table.CellRangeAddress
Dim args(0)
Dim myProps(0) as New com.sun.star.beans.PropertyValue
Dim arg_leer()


    Cellrangeaddress.StartColumn = nStC
    Cellrangeaddress.Startrow = nStR
    Cellrangeaddress.EndColumn = nEndC
    Cellrangeaddress.EndRow = nEndR
    args(0) = Cellrangeaddress
    nSht.setPrintAreas(args())   'Druckbereich wird erstellt
    
    sUrl= "file:///C:/temp/test.pdf"
 
    myProps(0).Name="FilterName"
    myProps(0).Value = "calc_pdf_Export"
    ThisComponent.storeToUrl(sUrl,myProps())
    nSht.setPrintareas(arg_leer())  'Druckbereich wird gelöscht
    
End Sub 
erstelle ich einen Druckbereich, exportiere ich ins PDF und lösche den Druckbereich wieder.

Mit

Code: Alles auswählen

Sub Reader
Shell("C:\Programme\Adobe\Acrobat 6.0\Reader\AcroRd32.exe", 0, "",True)
msgbox "Reader beendet"
End Sub
öffne ich den AcrobatReader.

Nun meine Fragen:

Wie kann ich dem AcrobatReader sagen, dass er beim Start automatisch die Datei test.pdf öffnen soll(Kommandozeilenparameter???)?

Im exportierten PDF-Dokument werden die Nullwerte angezeigt, obwohl die Option 'Nullwerte anzeigen' in Calc deaktiviert ist. Gibt es dafür eine spezielle Eigenschaft beim Export?

Vielleicht hat sich ja schon mal jemand damit beschäftigt.

Gruss

Thomas

Nach oben