Piet,
first i alayw provide some information when storing not a empty array a
you did
Thiscomponent.storeToURL( ConvertToURL(sfile), Array(
MakePropertyValue("FilterName", "writer8", "ReadOnly", "False" ))
and i allways do convertToURL(myURL) to been sure it's a correct URL
(your URL seems corrrect)
Did you played around with
"storeAsURL" and "storeAToURL"
I do the folowing check
if fileexists(ConvertToURL(sfile)) then
Thiscomponent.storeToURL( ConvertToURL(sfile), Array(
MakePropertyValue("FilterName", "writer8", "ReadOnly", "False"))
' bIsNewDoc = False
else
Thiscomponent.storeAsURL( ConvertToURL(sfile), Array(
MakePropertyValue("FilterName", "writer8", "ReadOnly", "False"))
' bIsNewDoc = true
end if
Hope it helps
Fernand
On 26/03/2015 11:38, Piet van Oostrum wrote:
I am currently experimenting with programming LibreOffice through Python/UNO.
One thing I tried is to create a document, not with the loadComponentFromURL
call from the desktop, but the route via the XLoadable interface,
After setting up the connection, getting the context, servicemanager, desktop,
and XSCRIPTCONTEXT,
the following works:
calcdoc =
smgr.createInstanceWithContext("com.sun.star.sheet.SpreadsheetDocument",
context)
calcdoc.initNew() # or calcdoc.load(....)
sheets = calcdoc.getSheets()
sheet1 = sheets.getByName("Sheet1")
cell = sheet1.getCellByPosition(0,0)
cell.String = "Hello World"
calcdoc.storeAsURL("file:///Users/piet/TEST/LibreOffice/testcalc.ods", ())
calcdoc.close(True)
Of course I could have used
calcdoc = desktop.loadComponentFromURL("private:factory/scalc", "_blank", 0,
());
(or with a Hidden=True property)
but I just wanted to experiment with the createInstance version.
Now the above example works perfectly. It creates the spreadsheet, and nothing
is shown on the screen.
Now when I do this with a Writer document:
textdoc = smgr.createInstanceWithContext("com.sun.star.text.TextDocument",
context)
LibreOffice crashes with a segmentation fault. It looks like a null pointer is
dereferenced or stored into. It seems to be in the event loop. So maybe there
is some pointer not properly initialized.
Here is part of the crash report (Mac OS X 10.10.2). This happens both with
LibreOffice 4.4.1.2 from the installer package and a self-compiled master
version.
Process: soffice [25385]
Path:
/Users/USER/Downloads/*/LibreOfficeDev.app/Contents/MacOS/soffice
Identifier: org.libreoffice.script
Version: 4.5.0 (0)
Code Type: X86-64 (Native)
Parent Process: bash [71305]
Responsible: Terminal [71161]
User ID: 501
Date/Time: 2015-03-26 11:23:20.020 +0100
OS Version: Mac OS X 10.10.2 (14C1510)
Report Version: 11
Anonymous UUID: 0AEBB0CD-ADAB-A830-FE6A-DB114A5C4135
Sleep/Wake UUID: 6AC2711A-D840-4BA5-9661-4545A1C4ABDB
Time Awake Since Boot: 900000 seconds
Time Since Wake: 8400 seconds
Crashed Thread: 10
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
VM Regions Near 0:
-->
__TEXT 000000010feff000-000000010ff00000 [ 4K] r-x/rwx
SM=COW /Users/USER/Downloads/*/LibreOfficeDev.app/Contents/MacOS/soffice
Thread 0:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff93f494de mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff93f4864f mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff92a4ab34
__CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff92a49ffb __CFRunLoopRun + 1371
4 com.apple.CoreFoundation 0x00007fff92a49858 CFRunLoopRunSpecific
+ 296
5 com.apple.HIToolbox 0x00007fff92df2aef
RunCurrentEventLoopInMode + 235
6 com.apple.HIToolbox 0x00007fff92df286a
ReceiveNextEventCommon + 431
7 com.apple.HIToolbox 0x00007fff92df26ab
_BlockUntilNextEventMatchingListInModeWithFilter + 71
8 com.apple.AppKit 0x00007fff87bbcf81 _DPSNextEvent + 964
9 com.apple.AppKit 0x00007fff87bbc730 -[NSApplication
nextEventMatchingMask:untilDate:inMode:dequeue:] + 194
10 libvcllo.dylib 0x0000000111f80ee6
AquaSalInstance::Yield(bool, bool) + 1094
11 libvcllo.dylib 0x0000000111f0e0ca Application::Yield()
+ 74
12 libvcllo.dylib 0x0000000111f0e065
Application::Execute() + 37
13 libsofficeapp.dylib 0x000000010ff7ea75
desktop::Desktop::Main() + 7573
14 libvcllo.dylib 0x0000000111f11812 ImplSVMain() + 50
15 libvcllo.dylib 0x0000000111f808b4
AquaSalInstance::handleAppDefinedEvent(NSEvent*) + 84
16 libvcllo.dylib 0x0000000111fb65b1 -[VCL_NSApplication
sendEvent:] + 321
17 com.apple.AppKit 0x00007fff87bb0608 -[NSApplication run]
+ 711
18 com.apple.AppKit 0x00007fff87b9ba14 NSApplicationMain +
1832
19 libvcllo.dylib 0x0000000111f7fc09 ImplSVMainHook(int*)
+ 329
20 libvcllo.dylib 0x0000000111f123fa SVMain() + 26
21 libsofficeapp.dylib 0x000000010ffa9bc0 soffice_main + 224
22 org.libreoffice.script 0x000000010fefff20 main + 16
23 libdyld.dylib 0x00007fff86dc25c9 start + 1
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice