แสดงบทความที่มีป้ายกำกับ LibreOffice แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ LibreOffice แสดงบทความทั้งหมด

วันพุธที่ 25 กุมภาพันธ์ พ.ศ. 2558

Fix LibreOffice Transformer on Alfresco 5.0.c community

By default fresh install of Alfresco 5.0.c does not pack require libraries for LibreOffice in the installer. You should install it manually by this instruction http://docs.alfresco.com/5.0/concepts/install-lolibfiles.html

After install all libraries, When you test run LibreOffice with command

/opt/alfresco-5.0.c/libreoffice/program/soffice.bin --nofirststartwizard --nologo --headless --accept=socket,host=localhost,port=8100

It will show some library is missing (libdbus-glib-1-2). Install it.

Then after you install all libraries and restart your alfresco if you still found transformer exception "connection failed: socket,host=localhost,port=8100,tcpNoDelay=1; com.sun.star.lang.IllegalArgumentException". So change your start up script of LibreOffice at

/opt/alfresco-5.0.c/libreoffice/scripts/libreoffice_ctl.sh

From

SOFFICE="$SOFFICEWRAPPER --nofirststartwizard --nologo --headless --accept=socket,host=127.0.0.1,port=$SOFFICE_PORT\;urp\;StarOffice.ServiceManager"

To

SOFFICE="$SOFFICEWRAPPER --nofirststartwizard --nologo --headless "--accept=socket,host=127.0.0.1,port=$SOFFICE_PORT\;urp\;StarOffice.ServiceManager""

(Adding double quote before --accept and end of line). Then restart alfresco again. The transformer exception will fix.

 reference -- https://forums.alfresco.com/forum/installation-upgrades-configuration-integration/configuration/document-preview-problem-was
Continue Reading...

วันอังคารที่ 14 พฤษภาคม พ.ศ. 2556

Fix bug in numbertext for thai in libreoffice

ใน numbertext extension สำหรับ libreoffice นั้นมี bug อยู่คือตัวเลขที่มากกว่าหลักล้านจะแปลผิด (สามารถลองใส่ตัวเลขได้ผ่านหน้า web http://numbertext.org ได้) ซึ่งผมได้ post bug + patch ไว้ที่ launchpad แล้วแต่เจ้าของเขายังไม่ patch ให้ซักที ผมเลย patch เองซะเลย คนอื่นจะได้เอาไปใช้กันได้ โดยสามารถ download ไปใช้งานกันได้เลยครับ

link download
https://docs.google.com/file/d/0B74Y1jkVlWmhZVJOQTg1MUtQRFE/edit?usp=sharing

issue
https://bugs.launchpad.net/numbertext/+bug/1074639
Continue Reading...

วันจันทร์ที่ 18 กรกฎาคม พ.ศ. 2554

แปลงเลขอาราบิกให้เป็นเลขไทยใน LibreOffice/OpenOffice.org

จาก post http://www.leknarm.com/2010/10/openofficeorg-writer.html ผมได้เขียนมาโครง่ายๆ และได้ทำเป็น extension ไว้ให้ลองเล่นกันแล้ว แต่ว่ามี bug อยู่จำนวนมาก และจากงาน OpenOffice.org Codefest#9 ก็ได้มีเพื่อนๆ ช่วยกันพัฒนา extension นี้จนสมบูรณ์ขึ้นมา

แต่ระหว่างที่ผมกำลัง review และปรับปรุง extension อยู่นั้นก็ได้เกิดเหตุการที่ไม่คาดฝันขึ้น มีบุคคลนึงเอา extension จาก post ที่กล่าวมาเอาไป publish ที่ OpenOffice.org Extensions เฉยเลย
http://extensions.services.openoffice.org/en/project/thai-number-converter (ไม่ขอทำเป็น link นะครับเพราะ SEO) น่าเศร้าใจเป็นที่สุด

แต่ตอนนี้ทางทีมก็ได้ publish extension ที่แก้ไขและปรับปรุงเรียบร้อยแล้วไว้ที่ http://extensions.services.openoffice.org/project/convertdigit ทุกท่านสามารถ download และทดลองใช้ได้เลยครับ หากมี bug หรือ comment ในส่วนไหนสามารถ comment ได้ที่ extension หรือที่ blog นี้ก็ได้ครับ
Continue Reading...

วันพุธที่ 11 พฤษภาคม พ.ศ. 2554

การทำ Menu/Toolbar Merging บน LibreOffice

จาก http://www.leknarm.com/2009/07/openofficeorg-menubar-merging.html ผมได้เขียนวิธีการทำ Menubar/Toolbar Merging ไว้แต่การที่จะกำหนด MergePoint ได้นั้นจะต้องรู้ก่อนว่า Menubar นั้นๆ หรือ Toolbar นั้นๆ มี UNO function ชื่อว่าอะไร

แต่ document เกี่ยวกับ UNO function หรือ DispatchHelper นั้นหาได้ยากยิ่ง UNO function Russian document (ยิ่งกว่าหา M$ เถื่อน) และถึงจะหามาได้ก็ไม่รู้อยู่ดีว่า UNO function ที่ได้มานั้นเป็นการทำงานส่วนไหน

ถ้าการหา document นั้นมันยากเราก็เข้าไปดูใน LibreOffice เลยสิเพราะเนื่องจากโครงสร้างของ Menu/Toolbar ของ LibreOffice นั้นเป็นลักษณะ xml ที่ Override กันอยู่เป็นชั้นๆ ซึ่งลองหาดูก็พบ Menu/Toolbar configuration อยู่ที่ LibO_HOME/Basis/share/config/soffice.cfg/modules/[program]

หากลองเข้าไปดูจะเห็นโครงสร้างของ Menu/Toolbar เป็นชั้นๆ ซึ่งเราสามารถนำ UNO function ที่กำหนดอยู่ในนั้นมากำหนดเป็น MergePoint ใน extensions เราได้เลยครับ
Continue Reading...

วันจันทร์ที่ 7 กุมภาพันธ์ พ.ศ. 2554

วิธีการ debug LibreOffice/OpenOffice.org ด้วย Visual Studio

การ debug LibO หรือ OOo บน Windows นั้นมีอยู่หลายวิธีด้วยกันแต่ผมจะขอนำวิธีการใช้ Visual Studio มาเล่าให้ฟังละกันครับ เพราะว่ามันสามารถตอบโจทย์การ debug ครั้งนี้ได้

ขอเล่าวิธีการทั่วไปหากต้องการ debug ก่อนครับ ก่อนอื่นหากเราต้องการ debug code ในส่วนใดเราจำเป็นต้อง build module นั้นๆ ด้วย parameter debug=true ก่อนแล้ว copy output ไปไว้ที่ LibO/OOo Installation folder (copy <module name>/<output folder>/bin/*.dll ไปไว้ที่ <LibO Root>/program/)

โจทย์ในครั้งนี้คือ ต้อง debug code ในส่วนตอนเริ่มโปรแกรม ซึ่งการ Attach to process ธรรมดาไม่สามารถใช้งานได้ เนื่องจากกว่าเราจะได้ Attach to process, program มันก็ถูกรันไปเรียบร้อยแล้ว


อีกทั้ง LibO และ OOo ตัว binary จริงๆ นั้นไม่ใช่ exe ไฟล์แต่เป็น bin(soffice.bin) ซึ่งตามปรกติแล้ว Visual Studio ไม่สามารถเปิดไฟล์ชนิดดังกล่าวได้ ดังนั้นเราจึงจำเป็นต้อง rename soffice.bin ให้กลายเป็น .exe ซะหรือจะใส่นามสกุลเพิ่มไปเลยก็ได้ (soffice.bin.exe)


จากนั้นให้ไปเพิ่ม path ที่จำเป็นเข้าไปใน Windows ด้วยซึ่ง path ที่ต้องเพิ่มมีดังนี้
  1. <LibO Root>\URE\bin
  2. <LibO Root>\Basis\program
เมื่อเพิ่ม path เรียบร้อยแล้ว ก็สามารถ debug ได้ตามปรกติเลยครับ
Continue Reading...

วันศุกร์ที่ 4 กุมภาพันธ์ พ.ศ. 2554

แก้ปัญหา Font ภาษาไทยซ้อนกันบน OpenOffice.org และ LibreOffice

จากปัญหา http://www.leknarm.com/2009/11/openofficeorg-calc-windows-7.html

จากตอนแรกเดาปัญหาว่าเกิดจากการที่ตัว OpenOffice.org หรือ LibreOffice เมื่อใช้งาน UI font ของ Windows จะทำให้แสดงผลได้ผิดพลาดเนื่องจาก font ที่ใช้เป็น UI ของ Windows นั้นไม่มี gryph ไทยซึ่งก็จริงตามนั้น แต่หากใน OOo หรือ LibO ไม่ได้ใช้ Use system font for user interface มันควรจะใช้ได้แต่ดันไม่ได้

ปัญหาที่แท้จริงนั้นเกิดจาก default font ที่ใช้เป็น UI ของ OOo และ LibO นั้นใช้เป็น Andale Sans UI ซึ่งเป็น font ของ StarOffice แต่เนื่องจากเราไม่ได้ใช้ version StarOffice จึงทำให้เราไม่มี font ดังกล่าว

ปัญหานี่สามารถแก้ไขได้ 2 วิธีคือ
  1. ไปแก้ที่ default font ใน project officecfg โดยให้ default font นั้นเป็น font อื่นที่มี gryph ครบทุกภาษา
  2. แก้ replacement table ซึ่งมีขั้นตอนดังนี้
    1. ไปที่เมนู Tools > Option > LibreOffice(OpenOffice.org) > Fonts 
    2. เลือก Apply replacement table แล้ว replace font จาก Andale Sans UI ไปเป็น Tahoma หรือ font อื่นๆ ที่ชอบ 
    3. แล้วกดเครื่องหมายถูกด้านขวาจะได้ font replace ไปอยู่ในกล่องด้านล่าง
    4. คลิกเครื่องหมายถูกหน้า Always แล้วกด OK

 
แค่นี้เราก็สามารถใช้งานภาษาไทยบน LibO และ OOo ได้อย่างมีความสุขแล้ว

อ่อลืมบอกไป ต้องไม่ใช้ Use system font for user interface ด้วยนะครับโดยปิดที่
Tools > Option > LibreOffice > View แล้วเลือกเครื่องหมาถูกหน้า Use system font for user interface ออกครับ
Continue Reading...

วันศุกร์ที่ 28 มกราคม พ.ศ. 2554

ระบบ Build ของ LibreOffice

เนื่องจากได้ปล้ำกับ LibreOffice มาสัปดาห์นึง เพิ่งจะเข้าใจมัน(ถึงจะไม่หมดก็เหอะ) ก็เลยเอามา blog ไว้เผื่อท่านอื่นๆ จะได้เข้าใจบ้าง

ใน LibreOffice นั้นมี wiki บอกวิธีการ build อยู่ที่ http://wiki.documentfoundation.org/Development/Native_Build

โดยในส่วน getting the source นั้นเขียนไว้ดังนี้

$ mkdir git
$ cd git
$ git clone git://anongit.freedesktop.org/libreoffice/bootstrap libo
Cloning into libo...
Remote: Counting objects: 76845, done.
remote: Compressing objects: 100% (17328/17328), done.
remote: Total 76845 (delta 60786), reused 74045 (delta 58579)
Receiving objects: 100% (76845/76845), 15.82 MiB | 1.17 MiB/s, done.
Resolving deltas: 100% (60786/60786), done.
$ cd libo

ถ้าดูจาก file size ที่ได้มา 15.82 MiB นั้นดูเหมือนจะน้อยเกินไปสำหรับ source code ของ LibreOffice ซึ่งในส่วนที่ get มานั้นเป็นแค่ bootstrap ของ LibreOffice เท่านั้น

LibreOffice นั้นเก็บ source code ทั้งหมดไว้เป็น 19 repository หรือ 20 ถ้ารวมส่วนของ l10n ไปด้วยซึ่งถ้าจะ git ออกมาทีละ repo ก็สามารถทำได้ แต่ว่า LibreOffice นั้นมี shell script ที่สามารถดึง source code ทั้งหมดออกมาได้ทีเดียว เรียกว่า g

ซึ่ง g ที่ว่านั้นอยุ่ใน bootstrap ที่เพิ่ง git ออกมานั่นเอง ทั้งนี้เมื่อเรา ได้ bootstrap มาแล้วเราสั่ง ./autogen.sh มันจะ check environment ทั้งหมดของเครื่องเราว่าสามารถที่จะ build LibreOffice ได้หรือไม่ และถ้าผ่านส่วนนั้นมาแล้ว มันจะไปเรียก g เพื่อ clone repository ทั้ง 19 repo มาไว้ที่เครื่องเราต่อไป

ดังนั้น source code ทั้งหมดนั้นเราจะใช้ git ในการ checkout หรือทำงานเฉยๆ ไม่ได้เพราะว่ามันต้องทำทีละ 19 repo แต่จากที่บอกไว้ทีแรก เราใช้ g ในการทำงานแทนได้ เพราะ g จะทำงานเหมือนกับคำสั่ง git แต่ว่าทำให้ทั้ง 19 repo เลยทีเดียว
Continue Reading...

Blogroll

About