Tabellen aus Html-Dokumenten im Writer/Web ändern

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: Tabellen aus Html-Dokumenten im Writer/Web ändern

Re: Tabellen aus Html-Dokumenten im Writer/Web ändern

von jessi » Fr, 08.02.2008 13:10

Ich habe es nun versucht und bekomme den Error "BASIC runtime error. Object variable not set".
Der Fehler tritt in der Zeile "If Doc.Sheets(0) Then" auf (s.u.)
Kann mir jemand sagen, was falsch ist?

-------NEU----------------

hier steht neuer code

-----END NEU-------------


Sub GeneratePDF(source As String, target As String)

'This macro loads an html-file into OpenOffice, converts it into a pdf-file and stores it as pdf.

Dim sourceURL, targetURL
Dim oDoc
Dim documentType
Dim documentFilter

'---------------------------------NEU----------------------------------
Dim Sheet As Object
Dim Doc As Object
'---------------------------------NEU END-----------------------------


Dim FileProperties(0) As New com.sun.star.beans.PropertyValue
FileProperties(0).Name = "Hidden"
FileProperties(0).Value = TRUE

documentFilter = "writer_web_pdf_Export"
documentType = Ucase( Right( source, 4 ) )

If documentType = ".ODT" Then
documentFilter = "writer_pdf_Export"
End If

sourceURL = ConvertToURL( source ) 'converts path into a OpenOffice conform path
targetURL = ConvertToURL( target ) 'converts path into a OpenOffice conform path

oDoc = StarDesktop.loadComponentFromURL(sourceURL, "_blank", 0, FileProperties()) 'loads source-file into OpenOffice

'---------------------------------NEU----------------------------------

Doc = StarDesktop.CurrentComponent
If Doc.Sheets(0) Then <------ERROR
Sheet = Doc.Sheet(0)
Sheet.Columns(0).OptimalWidth = true
End If

'---------------------------------NEU END-----------------------------

Dim SaveArgs(0) As New com.sun.star.beans.PropertyValue 'necessary argument for storeToURL-function

SaveArgs(0).Name = "FilterName"
SaveArgs(0).Value = documentFilter

oDoc.storeToURL(targetURL, SaveArgs()) 'stores loaded component to targetURL
Stardesktop.terminate()

End Sub

Tabellen aus Html-Dokumenten im Writer/Web ändern

von jessi » Do, 07.02.2008 13:31

Hallo,

ich möchte Html-Dokumente in PDF-Dokumente umwandeln.
Dafür habe ich ein Makro erstellt, dass die Html-Dokumente in den Writer/Web lädt und anschließend als PDF abspeichert.
Die Tabellen aus den Html-Dokumenten sehen in dem PDF aber nicht gut aus, da unerwünschte Zeilenumbrüche in den Spalten auftreten.
Wenn ich per Hand Folgendes mache, habe ich das Problem nicht:

1. File -> Open 'Html-Dokument laden
2. File -> SaveAs 'Grund: die Html-Dokumente werden als Read-only geladen. Wenn ich einmal abspeicher, kann ich sie verändern.
3. Table -> Select -> Table
4. Table -> Autofit -> Distribute Columns Evenly
5. Table -> Autofit -> Optimal Columns Width
6. Als PDF abspeichern

Weiß jemand, wie ich die Schritte 1-5 in mein Makro einbauen kann?
Mein Makro sieht bislang so aus:

Sub GeneratePDF(source As String, target As String)

'This macro loads an html-file into OpenOffice, converts it into a pdf-file and stores it as pdf.

Dim sourceURL, targetURL
Dim oDoc
Dim documentType
Dim documentFilter

Dim FileProperties(0) As New com.sun.star.beans.PropertyValue
FileProperties(0).Name = "Hidden"
FileProperties(0).Value = TRUE

documentFilter = "writer_web_pdf_Export"
documentType = Ucase( Right( source, 4 ) )

If documentType = ".ODT" Then
documentFilter = "writer_pdf_Export"
End If

sourceURL = ConvertToURL( source ) 'converts path into a OpenOffice conform path
targetURL = ConvertToURL( target ) 'converts path into a OpenOffice conform path

oDoc = StarDesktop.loadComponentFromURL(sourceURL, "_blank", 0, FileProperties()) 'loads source-file into OpenOffice
Dim SaveArgs(0) As New com.sun.star.beans.PropertyValue 'necessary argument for storeToURL-function

SaveArgs(0).Name = "FilterName"
SaveArgs(0).Value = documentFilter

oDoc.storeToURL(targetURL, SaveArgs()) 'stores loaded component to targetURL

Stardesktop.terminate()

End Sub

Nach oben