Seite 1 von 1

Problem bei PDF export

Verfasst: Do 14. Jun 2012, 11:20
von Hecky
Hallo Zusammen.

Ich habe folgendes Problem:

Aus unterschiedlichen Forenbeiträgen habe ich mir den Quellcode zum PDF - Export zusammengesucht.
Es funktioniort auch alles, bis auf ein mir unerklärliches Phänomen:

Code: Alles auswählen

function ConvertToPDF2 
   dim oDoc as object 
   cFile = "test.dbf"    
   oDoc = ThisComponent
   cURL = ConvertToURL(cFile) 
    
   ' Save the document using a filter. 

   pdfFilterData = Array( MakePropertyValue ("UseLosslessCompression",false),MakePropertyValue ("Quality",90),MakePropertyValue ("ReduceImageResolution",false),MakePropertyValue ("MaxImageResolution",150)) 
 
   oExport = Array( MakePropertyValue("Overwrite", True), MakePropertyValue("FilterName", "writer_pdf_Export"), MakePropertyValue("FilterData", pdfFilterData) ) 
    
   oDoc.storeToURL(cURL, oExport) 

End function


Wenn ich den Dateinamen des Dokuments ändere (über Speichern unter) erzeugt oDoc.storeToURL(cURL, oExport) einen IO Fehler.
Diese bleibt bestehen, bis das Dokument erneut gespeichert wird (ohne Namensänderung). Hat jemand eine Erklärung hierfür ???

Besten Dank

Hecky

Re: Problem bei PDF export

Verfasst: Do 14. Jun 2012, 12:22
von karolus
Hallo

Versuch mal oDoc.storeAsURL(cURL, oExport)

Karo

Re: Problem bei PDF export

Verfasst: Do 14. Jun 2012, 14:43
von Hecky
Danke für die schnelle Anwort.

Der Fehler bleibt allerdings:
Fehlermeldung.JPG
Fehlermeldung.JPG (8.74 KiB) 5204 mal betrachtet
Das verrückte ist, dass nach erneutem Speichern der Datei auch der export wieder funktioniert !
Ich habe das Gefühl, dass nach einem 'save as' das Object ThisComponent nicht korrekt ist ?!

Hecky.

Problem bei PDF export

Verfasst: Fr 2. Nov 2012, 19:57
von Jopradl
    Hallo habe das gleiche Problem
    • REM ***** BASIC *****

      Sub Main

      Dim FileNo As Integer
      Dim CurrentLine As String
      Dim File As String
      Dim Msg as String
      Dim DateiDa as String
      Dim i as double
      Dim aListe()
      Dim sUrl as String
      Dim myProps(0) as New com.sun.star.beans.PropertyValue

      myProps(0).Name = "FilterName"
      myProps(0).Value = "writer_pdf_Export"



      'Welche Files befinden sich im Laufwerk M:\
      oSFA = createUnoService("com.sun.star.ucb.SimpleFileAccess")

      sURL = convertToURL("m:\")


      'Welche Dateien befinden sich im Ordner?
      if oSFA.isFolder(sUrl) then
      aListe = oSFA.getFolderContents(sUrl, False)
      end if

      'Alle .alp Dateien herausfiltern
      for a = 0 to uBound(aListe())

      'msgbox("Liste: " & a & " " & convertFromURL(aListe(a))
      Dim url as string
      url = convertFromURL(aListe(a))
      n=InStr(url, ".alp")
      'msgbox(n)

      'Wenn es sich um eine .alp Datei handelt -> PDF generieren
      if n > 0 then
      'msgbox(url)
      sPfad = convertToUrl(url)

      if oSFA.exists(sPfad) then
      oDatei = ""
      oInputStream = createUnoService("com.sun.star.io.TextInputStream")
      'msgbox(sPfad)
      oDatei = oSFA.OpenFileReadWrite(sPfad)
      oInputStream.SetInputStream(oDatei.getInputStream)

      '*************************************
      'Umlaute richtig darstellen!
      oInputStream.InputStream = oDatei
      oInputStream.Encoding = "ISO-8859-15"
      '*************************************

      sText = ""

      do while not oInputStream.isEOF
      sText = sText & oInputStream.ReadLine() & chr(10)
      loop

      oInputStream.closeInput()
      'msgbox(sText)

      '***********************************************************************************
      'Anfragenummer suchen
      Dim Anfrage as string
      Dim Firmennamen as string
      n=InStr(sText, "Anfrage")
      'msgbox(n)

      if n > 10 then
      Anfrage = mid(sText, n+14, 6)
      'msgbox(Anfrage)

      'Firmennamen bestimmen
      Firmennamen = mid(sText, 120, 25)
      FirmennameKurz = Trim(Firmennamen)
      'msgbox("FA " & FirmennameKurz & " E")

      '***********************************************************************************
      'neues Dokument erstellen
      Dim vDoc
      Dim Arg()

      Rem GFM Papier
      sUrl = converttourl("C:\Meine Files.ott")
      vDoc = StarDesktop.loadComponentFromURL(sUrl, "_blank", 0, Arg()

      Dim myDoc as Object
      myDoc = ThisComponent
      myViewCursor = MyDoc.getCurrentController.viewCursor
      myViewCursor.CharHeight = "10"
      myViewCursor.CharFontName = "Times New Roman"

      'Inhalt aus .alp Datei in Dokument einfügen
      Dim oDoc as Object
      oDoc = ThisComponent
      oDoc.text.setString(sText)
      oDoc.refresh()




      'PDF erzeugen
      Dim sUrlpdf as string
      Dim teilUrl as string

      teilUrl = Trim(Anfrage)
      'msgbox("A" & teilUrl)
      sUrlpdf = "file:///M:/" & "A" & teilUrl & "_" & FirmennameKurz & ".pdf"
      'msgbox(sUrlpdf)

      oDoc.storetoUrl(sUrlpdf,myProps())


      'Variablen auf 0 setzen
      sUrlpdf = ""
      teilUrl = ""
      Anfrage = ""
      s=""


      'Writer Dokument schließen
      ThisComponent.close(True)

      s=""
      end if
      end if
      end if

      next

      End Sub

      [quote][/quote]Kann jemand helfen?