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

วันจันทร์ที่ 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...

วันศุกร์ที่ 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...

วันพุธที่ 3 พฤศจิกายน พ.ศ. 2553

get locale ของ openoffice.org ด้วย macro

ในบ้างครั้งการเขียนมาโครก็มีความจำเป็นต้องรู้ว่าเครื่องนั้นๆ มีการ settings อะไรไว้บ้างเช่น set ค่า locale ไว้เป็นอะไรเพื่อที่จะได้รู้ว่ามีการเขียนวันเดือนปีเป็นแบบไหน (ปี/เดือน/วัน, วัน/เดือน/ปี)
การเขียนมาโครบน OpenOffice.org เพื่อแสดงค่า locale ที่ตั้งค่าไว้สามารถเขียนได้ดังนี้

dim lang as string 
dim args(0) As new com.sun.star.beans.PropertyValue 

configprovider = createUnoService( "com.sun.star.configuration.ConfigurationProvider" ) 
args(0).name = "nodepath" 
args(0).value = "/org.openoffice.Setup/L10N" 
settings = configprovider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", args() )
print settings.ooSetupSystemLocale

ค่า locale ของเราจะอยู่ที่ property ooSetupSystemLocale ซึ่งใน code ตัวอย่างเราจะได้ผลลัพธ์เป็น th-TH
Continue Reading...

วันอังคารที่ 15 มิถุนายน พ.ศ. 2553

แก้ไขไฟล์ read-only บน OpenOffice.org ให้กลับมาใช้ได้

สำหรับคนที่ใช้งาน OpenOffice.org บางท่านอาจเคยไป set ค่าไฟล์ให้เป็น read-only ที่เมนู Tools > Option > OpenOffice.org > Security แล้วคลิกเครื่องหมายถูกหน้า "Open this document in read-only mode" ซึ่งเมื่อหลังจาก save แล้วเราจะไม่สามารถเปิดไฟล์มาแก้ไขได้อีกเลย

วิธีการแก้ไขนั้น จำเป็นต้องแก้ไข settings ของไฟล์(hack) โดยขั้นแรกให้แตกไฟล์ OpenOffice.org ที่ติด read-only ออกมาก่อน(ไฟล์ OpenOffice.org นั้นเป็น zip ไฟล์ที่มีนามสกุลเป็น od*) จากนั้นเปิดไฟล์ settings.xml ด้วย editor ตัวใดก็ได้แล้ว search หาส่วน
<config:config-item config:name="LoadReadonly" config:type="boolean">true</config:config-item> 
จากนั้นให้แก้ value จาก true ให้เป็น false

ให้ save ไฟล์ settings.xml และ zip ข้อมูลทั้งหมดกลับเป็น zip ไฟล์แล้วค่อยแก้นามสกุลให้เป็น ods, odt หรืออื่นๆ แค่นี้ไฟล์เราก็จะสามารถแก้ไขได้ตามปรกติแล้วครับ
Continue Reading...

วันเสาร์ที่ 14 พฤศจิกายน พ.ศ. 2552

Contributed numbertext extension

และแล้ว numbertext ก็สามารถใช้งานกับภาษาไทยได้อย่างถูกต้อง หลังจากส่ง patch ไปให้ทางคุณ nemeth[at]openoffice[dot]org เป็นเวลา 3 วัน รวดเร็วจริงๆ โดยส่วนที่แก้ไขคือ การแสดงผลคำพูดหลังจุดทศนิยม ตำแหน่งแรก และหลังจากตำแหน่งที่ 2 เป็นต้นไป โดยสามารถดู preview ได้ที่ http://numbertext.org 

Numbertext นี้สามารถนำไปใช้ใน OpenOffice.org ได้โดยการติดตั้ง extensions numbertext ตาม link นี้ครับ http://extensions.services.openoffice.org/project/numbertext


ปล. มีชื่อเราใน Author and contributors ด้วย อิอิ (แอบดีใจ)
Continue Reading...

วันพฤหัสบดีที่ 5 พฤศจิกายน พ.ศ. 2552

ปิดการแสดงผลตัวอักษรซ้อนกันของ OpenOffice.org Calc บน Windows 7

สำหรับท่านที่เคยใช้ OpenOffice.org Calc นั้นคงเคยเจอกันไม่มากก็น้อยที่ตัวอักษรภาษาไทยซ้อนกัน ซึ่งจะเกิดขึ้นบน UI ต่างๆ และโดยมากจะเกิดบน Windows Vista และ Windows 7
การที่จะทำให้ภาษาไทยแสดงผลได้ถูกต้องนั้น มีวิธีการง่ายๆคือ
  1. เปิด OpenOffice.org Calc 
  2. ไปที่เมนู Tools > Options > OpenOffice.org > View
  3. ปิดเครื่องหมายถูกหน้า Use system font for user interface
  4. Restart OpenOffice.org
เพราะว่า System โดยปกติแล้วจะใช้ Font Segoe UI ซึ่งผมเดาว่าไม่มีภาษาไทย และ System ก็เลยไปดึงภาษาไทยมาจาก Font อื่นซึ่งไม่ Work กับ OOo ทำให้ตัวอักษรซ้อนกัน ขั้นตอนดังกล่าวเป็นการบอกว่า OOo อย่าใช้ Font ของ System นะจึงทำให้ตัวอักษรไม่ซ้อนกัน

แต่ในบางกรณี เมื่อทำตามขั้นตอนด้านบนแล้วตัวอักษรก็ยังซ้อนกันอยู่ ผมเดาว่า OOo ดันไปเลือก Font ที่ไม่มีภาษาไทยมาใช้เหมือนกับ System ดังนั้นวิธีการแก้ไขอย่างถาวรของผมคือ ให้ System ใช้ Font ที่มีภาษาไทยซะก็จบ ซึ่งทำได้โดย

  1. ไปที่ Control Panel เลือก Personalization
  2. คลิกไปที่ Windows Color ด้านล่างสุดของหน้าต่าง
  3. เลือก Advanced apperance settings...
  4. ค่อยๆ เลือก Item ทีละอันแล้วปรับ Font ด้านล่างให้เป็น Tahoma ซะ 
ทำให้ครบแล้วกด OK และถ้าใครเอาเครื่องหมายถูกหน้า Use system font for user interface ออกก็ให้เอากลับคืนมา แค่นี้ OOo ก็จะเลือกภาษาไทยได้อย่างถูกต้องแล้วครับ

ปล. วิธีการนี้จะทำให้ Font บน UI ของ Windows กลายเป็น Tahoma แทนซึ่งสำหรับผมนั้นไม่ซีเรียสอะไรครับ เน้นถูกต้องมากกว่า
Continue Reading...

วันอังคารที่ 3 พฤศจิกายน พ.ศ. 2552

OpenOffice.org Calc Add-In with datedif function

[แก้ไข] algorithm ใหม่เนื่องจากตัวเก่ามีปัญหาการคำนวณ สามารถ download ได้ที่
http://sites.google.com/site/leknarm/files/datedif-0.9.2.oxt?attredirects=0&d=1

-------------------------------------------------------------------------------------------------

และแล้วก็สร้าง Calc function ที่สามารถเรียกใช้งานได้ผ่าน function wizard ได้เสียที เสียเวลาไปวันนึงเต็มๆ แต่ก็คุ้มครับ

การสร้างฟังก์ชันในลักษณะนี้เรียกว่า Calc Add-In ซึ่งภาษา OpenOffice.org Basic นั้นไม่สามารถทำได้ผมเลยต้องเขียนด้วยภาษา Java แทนครับ

โดย Tools ที่ผมใช้งานคือ NetBeans 6.7.1 และ OpenOffice.org Extensions Plug-in for NetBeans v2.0.5 และนี่ก็คือ datedif extensions ที่ลองสร้างขึ้นมาครับ download

หากมี bug หรือข้อแนะนำอย่างไรก็สามารถ comment กันมาได้ ถ้าดีจริง ผมจะแก้ไขให้ครับ
Continue Reading...

วันเสาร์ที่ 4 กรกฎาคม พ.ศ. 2552

OpenOffice.org Menubar&Toolbar Merging

สำหรับคนที่คิดจะเริ่มทำ extensions ของ OpenOffice.org เป็นครั้งแรกคงหนีไม่พ้น extensions ที่ช่วยทำ extensions อีกทีที่ชื่อว่า BasicAddonBuilder หรือ BAB นั่นเอง สามารถดูได้จาก

http://www.linuxbeacon.com/doku.php/articles:ooobab

ซึ่ง extensions นี้ให้ความสะดวกสบายมากเพราะ จะมี UI มาคอยเก็บค่า configuration ต่างๆที่จำเป็นแล้วนำไปสร้างเป็น Extension ให้เรียบร้อยเลยแต่ว่า มันไม่มีเมนูสำหรับแทรก ปุ่มลงใน toolbar หรือแทรก menu ลงใน menubar เลยสิ มีแค่สร้าง menu ใหม่หรือ toolbar ใหม่เท่านั้น
แต่ เราสามารถทำ ปุ่มหรือ menu ที่เราสร้างไปแทรกอยู่ toolbar หรือ menubar เก่าได้ด้วยวิธีการแก้ไข file Addon.xcu โดยเราต้องเพิ่ม MergePoint ครับเช่น

<prop oor:name="MergePoint">
  <value>.uno:PickList\.uno:SetDocumentProperties</value>
</prop>

หมายความว่า จุดที่เราจะ Merge นั้นอยู่ที่ Menu File ตำแหน่ง Properties ซึ่งค่าตัวแปรต่างๆ ที่ใช้นั้นเราสามารถดูได้จาก uno function ครับ ในส่วนต่อมาเราจะต้องบอกว่าเราจะแทรกก่อนหรือหลัง ส่วนที่เราระบุไปเมื่อครู่ โดยการใช้ MergeCommand เช่น

<prop oor:name="MergeFallback">
  <value>AddPath</value>
</prop>

หลังจากเรากำหนดจุด MergePoint, MergeCommand และ MergeFallback แล้วเราก็ทำการเพิ่ม Menu ได้เลยครับดังนี้

<node oor:name="MenuItems">
  <node oor:name="m1" oor:op="replace">
    <prop oor:name="Context" oor:type="xs:string">
      <value>com.sun.star.text.TextDocument, com.sun.star.sheet.SpreadsheetDocument, com.sun.star.drawing.DrawingDocument, com.sun.star.presentation.PresentationDocument </value> 
    </prop>
    <prop oor:name="URL" oor:type="xs:string">
      <value>vnd.sun.star.script:EasyMigration.PageSetup.PageSetup?language=Basic&location=application</value>
    </prop>
    <prop oor:name="Title" oor:type="xs:string">
      <value>Page Setup</value>
    </prop>
  </node>
</node>

ในส่วนของ Context นั้นเป็นตัวบอกว่าเราจะทำใน Application อะไรส่วน URL นั้นบอกว่าเราจะทำอะไรเช่นในตัวอย่างนั้นจะเรียก Macro ตัวนึงครับ ส่วน Title นั้นก็เป็น ชื่อของ Menu ของเรานั่นเอง

เราสามารถเพิ่ม Submenu ได้ด้วยครับ อ่านเพิ่มเติมได้จาก http://wiki.services.openoffice.org/wiki/Framework/Article/Addon_Menu_Toolbar_Merging
ปล. ลิ้งด้านบน มีข้อมูลในส่วนของ toolbar merging นะจ๊ะ คล้ายๆกัน
Continue Reading...

Blogroll

About