ラベル LibreOffice の投稿を表示しています。 すべての投稿を表示
ラベル LibreOffice の投稿を表示しています。 すべての投稿を表示

2012年6月30日土曜日

LibreOfficeとunoconvを、IIS6で動かした!

この問題の対処法が判りました:
Failed to connect to C:\Program Files\LibreOffice 3.5\program\soffice.exe (pid=10080) in 6 seconds.
Connector : couldn't connect to socket (WSAECONNREFUSED, Connection refused)
Error: Unable to connect or start own listener. Aborting. 
対策:(2012/07/05に大幅修正!)

① IUSRを止めて、一般的なアカウントに変更する。
Users権限を持っていれば十分です。Administrators権限は不要です。


参考:https://github.com/dagwieers/unoconv/issues/44

② AppDataのパスを固定化する。

それでもダメなら、AppDataのパスを固定化します。

その一般的なアカウントでログインし、レジストリエディタを立ち上げます。例:
runas /u:Pro4 /p regedit.exe
レジストリの次の場所のAppData値
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
こちらの指している場所を、具体的なパスに変更する。例:
C:\Documents and Settings\Pro4\Application Data
こんな感じです:

最初は次のようになっています:
%USERPROFILE%\Application Data

原因:(2012/07/05に修正)

長々と追跡しましたが、次の箇所で、失敗していたようです。
if ( !GetSpecialFolder( &ustrFile, CSIDL_APPDATA) )
普通はここで失敗しない手はずですが…

IUSR_XXXのアカウントを確認しますと、Guests権限になっていました。

また、IIS7.5では、IUSRは、NT AUTHORITY\IUSRに収まっていたりと、低権限故のアクセス制限が多数掛けられている可能性が見込まれます。

それで、CSIDL_APPDATAは、bootstrap.ini中の、$SYSUSERCONFIGを解決する際に必要とされます。
UserInstallation=$SYSUSERCONFIG/LibreOffice/3
utl::Bootstrap::locateUserInstallationが、それを取得しようとしますが、GetSpecialFolderで失敗します。
return UserInstall::E_Creation;
UserInstall::UserInstallError instErr_fin = UserInstall::finalize();まで戻りまして、次の様な具合で落ちます:
HandleBootstrapErrors( BE_USERINSTALL_FAILED );
「プログラムは起動できません。」「内部エラーが発生しました。」を表示する事になる様です:
FatalError(aMessage);

2012年6月29日金曜日

LibreOfficeとunoconvを、IIS6で動かしたい

Word/Excel/PowerPoint等の文書データを、PDFに変換しようと試みています。

unoconvを、IIS6+PHP5.4上で動かして、少ない手数で実現したい…

然しながら、うまくいっていません。

unoconvが期待するように動いてくれません:
  • デスクトップ環境では、期待する様に動きます。
  • しかし、IIS6環境では、失敗しています。
Webブラウザでは、次のようなメッセージを受け取っています:
Failed to connect to C:\Program Files\LibreOffice 3.5\program\soffice.exe (pid=10080) in 6 seconds.
Connector : couldn't connect to socket (WSAECONNREFUSED, Connection refused)
Error: Unable to connect or start own listener. Aborting.
unoconvの問題ではなく、LibreOfficeの方がトラブルに巻き込まれている感じです。

解決を図るために、いつもの如く、Google先生に頼み込みます:
同じ境遇の方もいらっしゃるようですが、未だ解決策は見つかっていません。

という訳で、自力調査が始まります。

~~~

途中は省きますが、

LibreOfficeがMessageBoxを表示して、入力を待っていることが分かりました。

デスクトップにはMessageBoxは表示されませんが、裏方で表示されている様です。

次の図は、WinDbgでsoffice.binをアタッチした時の様子です。スタックトレースを追跡し、MessageBoxの引数をメモリダンプで確認しています:

ちょうど、次のようなメッセージボックスを表示して停止しているのでしょう。再現してみました:

次の方策は、自炊のデバッグ版LibreOfficeで以て、エラー箇所を特定することです。ご期待ください!

2012年4月24日火曜日

LibreOffice「ActiveX Control to Display Documents in Internet Explorer」の件

或る時のOpenOffice.org Writer/Calcでは、Internet Explorerに文書を表示できていました。

参考になる画面写真:
http://sites.google.com/site/kaihatsublog/activex-control-plugin-viewer/openoffice-org-writer
http://sites.google.com/site/kaihatsublog/activex-control-plugin-viewer/openoffice-org-calc


これが、LibreOfficeになってから、表示できなくなっています。

しかし、ヘルプによりますと、表示できることになっています。

Internet Explorer でドキュメントを表示させるための ActiveX コントロール
http://help.libreoffice.org/Common/ActiveX_Control_to_Display_Documents_in_Internet_Explorer/ja


どういう事か調べましたら、情報が有りました。

Windows build with ActiveX
http://nabble.documentfoundation.org/Windows-build-with-ActiveX-td3926953.html

~~~~~
英文:

I tried to find the activex dll (so_activex.dll & so_activex64.dll) in my  
latest official install (LibreOffice 3.5.2.2 / Version ID :  
281b639-6baa1d3-ef66a77-d866f25-f36d45f) and did not find it.
I did find it in the latest build of
Win-x86@15-Prague_Win32 tinderbox  
though (program subfolder).

Is it intentional we do not provide it by default or not ?

Yes, it is. We disable it in distro-configs/LibreOfficeWin32.conf
(--disable-activex-component). You can enable it in your own build and
play with it. As Tor mentined in the other thread, it does not work as
one can expect
, and it has no maintaner, so in order to avoid numerous
bug reports we simply disable it.


~~~~~
和訳:

私は公式の最新版LibreOffice3.5.2.2から、activex dllを見つけ出そうとしましたが、見付かりませんでした。
Tinderboxの最新ビルドからは、その機能を見つけることができましたが…

その機能の提供有無についての判断は、故意によるものですか?

はい。そうです。我々はdistro/configs/LibreOfficeWin32.conf (--disable-activex-component)で、その機能を無効にしています
あなたは、自分のビルドにおいて、その機能を有効にできます。
Tor氏が他のスレッドで言及しているように、その機能は期待するようには動いておらず手入れできる人材もいません。数え切れない数のバグレポートを回避するために、我々は単にその機能を無効にしています

きちんと事情が有るようでした(^^;