Translate

2016년 5월 15일 일요일

달콤(Dalkom) 2016.05.15 리브레오피스用 hwp 확장(oxt) 공개합니다

달콤(Dalkom)은 리브레오피스에서 hwp 문서를 보기 위한 확장 기능입니다.
libhwp 와 연동에 성공하여 hwp 문서에 있는 문자를 리브레오피스에서 볼 수 있습니다.
시간상의 이유 때문에 우선적으로 문자만 작업했습니다.
렌더링을 리브레오피스가 해주므로 렌더링 코드를 작성할 필요가 없어서 작업 난이도는 낮은 편에 속합니다. 앞으로 리브레오피스에서 hwp 문서를 볼 수 있는 길이 열립니다만,
문단, 표, 그림 등을 작업하려면 한컴 HWP 스펙 문서, UNO API 문서와 ODF 스펙 문서를 읽어야 되는데 읽어봐야 하는 문서 분량이 수백 장에 이릅니다. 따라서 제가 필요로 하는 스펙만 우선적으로 작업합니다.
이 부족한 소프트웨어를 공개하는 이유는 다음과 같습니다.
품질이 기대에 미치지 못하지만 어떤 분에게는 이 소프트웨어가 도움이 되거나 누군가는 개발에 참여할 것이라는 기대감에 공개합니다.

프로젝트 주소 (주소 업데이트됨)
https://gitlab.com/hodong/dalkom

설치


우분투 사용자 분들은 PPA 를 이용하실 수 있습니다.
https://launchpad.net/~hodong/+archive/ubuntu/dalkom

sudo add-apt-repository ppa:hodong/libhwp
sudo add-apt-repository ppa:hodong/dalkom
sudo apt update
sudo apt install dalkom


사용법


리브레오피스 라이터를 실행한 후 파일 열기 메뉴를 클릭합니다.


Hwp Document (Dalkom Filter) 필터 선택을 합니다.


그 다음 오른쪽 하단에 있는 열기 버튼을 누릅니다.
  


이제 hwp 문서를 볼 수 있습니다.
 

매번 이런 방식으로 문서를 보는 것은 불편합니다. 아래 문서를 참고하세요.
hwp 문서 클릭하여 리브레오피스로 바로 보는 방법
http://cogniti-works.blogspot.kr/2016/05/hwp_15.html


저작권


공개 프로젝트라고 하여 저작권이 없는 것이 아닙니다.
퍼블릭 도메인이 아닌 이상 저작권이 반드시 있습니다.
제가 여러분들께 오픈소스 라이선스로 소스코드를 제공하는 것은 저작권을 포기하는 행위가 아닙니다. 소스코드를 보면 Copyright (c) Hodong Kim 이라는 문구를 볼 수 있는데 저작권이 김호동에게 있다는 뜻입니다.
제가 하는 hwp 관련 공개 프로젝트들(dalkom, libhwp, evince-hwp, ruby-hwp)은 개인 프로젝트이며 저작권은 김호동에게 있습니다. 저는 저작권을 포기할 의사가 없다는 것을 분명히 알립니다.

당부의 말씀


여러분들께 당부 드립니다. 제가 하는 오픈소스 프로젝트들은 개인 프로젝트입니다. 기부금이나 후원금 또는 월급을 받으며 개발하는 오픈소스 프로젝트와는 차원이 다르므로 그들과는 비교하지 않으셨으면 좋겠고, 제가 본업이 따로 있는 사람이라 프로젝트에 할애할 수 있는 시간이 적습니다. 개발이 지연되거나 품질이 기대에 미치지 못하더라도 추측성 글을 자제하시고 느긋한 마음으로 기다려주시면 좋겠습니다.
즐거운 리눅스 생활하시기 바랍니다.
감사합니다.

댓글 5개:

  1. 먼저 개발에 감사드립니다. 페도라 23 용 패치를 만들어 봤습니다.
    하지만 빌드는 실패했습니다.

    dalkom$ make
    make all-recursive
    make[1]: Entering directory '/run/media/reandr/48fed7c3-c2ce-49e5-8eaa-3bdf47cff596/dalkom'
    Making all in src
    make[2]: Entering directory '/run/media/reandr/48fed7c3-c2ce-49e5-8eaa-3bdf47cff596/dalkom/src'
    mkdir -p includes
    /usr/lib64/libreoffice/sdk/bin/idlc -I/usr/lib64/libreoffice/sdk/idl dalkom.idl
    Compiling: dalkom.idl
    /usr/lib64/libreoffice/sdk/bin/idlc: starting preprocessor failed
    Makefile:756: recipe for target 'includes' failed
    make[2]: *** [includes] Error 57
    make[2]: Leaving directory '/run/media/reandr/48fed7c3-c2ce-49e5-8eaa-3bdf47cff596/dalkom/src'
    Makefile:458: recipe for target 'all-recursive' failed
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory '/run/media/reandr/48fed7c3-c2ce-49e5-8eaa-3bdf47cff596/dalkom'
    Makefile:390: recipe for target 'all' failed
    make: *** [all] Error 2

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

    diff -urN dalkom-orig/configure.ac dalkom/configure.ac
    --- dalkom-orig/configure.ac 2016-06-25 20:15:15.000000000 +0900
    +++ dalkom/configure.ac 2016-06-25 19:19:06.000000000 +0900
    @@ -28,9 +28,9 @@
    dnl OO SDK environment
    dnl ***************************************************************************

    -OFFICE_HOME=/usr/lib/libreoffice
    +OFFICE_HOME=/usr/lib64/libreoffice
    OO_SDK_HOME=$OFFICE_HOME/sdk
    -OO_SDK_URE_HOME=/usr/lib/ure
    +OO_SDK_URE_HOME=$OFFICE_HOME/program

    AC_PATH_PROG(CPPUMAKER, cppumaker, [no], $OO_SDK_HOME/bin)
    AC_PATH_PROG(IDLC, idlc, [no], $OO_SDK_HOME/bin)
    diff -urN dalkom-orig/src/Makefile.am dalkom/src/Makefile.am
    --- dalkom-orig/src/Makefile.am 2016-06-25 20:15:15.000000000 +0900
    +++ dalkom/src/Makefile.am 2016-06-25 20:03:26.000000000 +0900
    @@ -10,7 +10,7 @@

    dalkom_uno_la_CPPFLAGS = \
    -Wall -Werror \
    - -I/usr/include/libreoffice \
    + -I/usr/lib64/libreoffice/sdk/include \
    -fvisibility=hidden \
    -DUNX -DGCC -DLINUX -DCPPU_ENV=gcc3 -DHAVE_GCC_VISIBILITY_FEATURE \
    -I$(srcdir)/includes \

    답글삭제
    답글
    1. 1. libreoffice 버전 차이
      2. 32비트, 64비트 차이
      3. 데비안 / 레드햇의 설치 디렉토리에 차이가 있습니다.

      현재 2 * 2 = 4종류에 대하여 컴파일이 가능한 상태입니다.
      위 코드를 적용하면 레드햇에서만 컴파일이 됩니다.
      2 * 2 * 2 = 8종을 고려해야 합니다.

      삭제
    2. 친절한 답변 감사합니다.

      삭제
    3. 아래처럼 변경하면 fedora 64비트 f24 에서 컴파일됩니다.
      아치리눅스, 페도라 F24, 데비안 Jessie, 우분투 14.04, 16.04 에서 모두 컴파일될 수 있도록 패치를 작성해 주시면 받을 의사가 있습니다. 그렇지만, 기술 문의, 컴파일 문의는 받지 않습니다.
      알아서 사용하시도록 하시고 문의하지 마세요.
      죄송합니다.

      diff --git a/configure.ac b/configure.ac
      index 541c4cb..a93a5b2 100644
      --- a/configure.ac
      +++ b/configure.ac
      @@ -28,9 +28,9 @@ dnl ***************************************************************************
      dnl OO SDK environment
      dnl ***************************************************************************

      -OFFICE_HOME=/usr/lib/libreoffice
      +OFFICE_HOME=/usr/lib64/libreoffice
      OO_SDK_HOME=$OFFICE_HOME/sdk
      -OO_SDK_URE_HOME=/usr/lib/ure
      +OO_SDK_URE_HOME=/usr/lib64/ure

      AC_PATH_PROG(CPPUMAKER, cppumaker, [no], $OO_SDK_HOME/bin)
      AC_PATH_PROG(IDLC, idlc, [no], $OO_SDK_HOME/bin)
      diff --git a/src/Makefile.am b/src/Makefile.am
      index e5716a6..870ce96 100644
      --- a/src/Makefile.am
      +++ b/src/Makefile.am
      @@ -1,4 +1,4 @@
      -extensiondir = /usr/lib/libreoffice/share/extensions/dalkom
      +extensiondir = /usr/lib64/libreoffice/share/extensions/dalkom
      extension_LTLIBRARIES = dalkom.uno.la

      BUILT_SOURCES = includes
      @@ -11,6 +11,7 @@ dalkom_uno_la_SOURCES = \
      dalkom_uno_la_CPPFLAGS = \
      -Wall -Werror \
      -I/usr/include/libreoffice \
      + -I$(OO_SDK_HOME)/include \
      -fvisibility=hidden \
      -DUNX -DGCC -DLINUX -DCPPU_ENV=gcc3 -DHAVE_GCC_VISIBILITY_FEATURE \
      -I$(srcdir)/includes \
      @@ -26,13 +27,8 @@ dalkom_uno_la_LDFLAGS = \

      includes:
      mkdir -p includes
      - $(AM_V_GEN) $(IDLC) -I$(OO_SDK_HOME)/idl dalkom.idl
      - $(AM_V_GEN) $(REGMERGE) $(srcdir)/dalkom.uno.rdb /UCR $(srcdir)/dalkom.urd
      $(AM_V_GEN) $(CPPUMAKER) -Gc -O$(srcdir)/includes \
      $(TYPES_RDB) $(OFFICE_HOME)/program/types/offapi.rdb
      - $(AM_V_GEN) $(CPPUMAKER) -Gc \
      - -O$(srcdir)/includes $(srcdir)/dalkom.uno.rdb \
      - -X$(TYPES_RDB) -X$(OFFICE_HOME)/program/types/offapi.rdb

      install-data-hook:
      rm -f $(DESTDIR)$(extensiondir)/dalkom.uno.la

      삭제
  2. 윈도우즈 리브레오피스 사용자인데, 개발 쪽은 잘 모릅니다.
    그러나 여러 우여곡절이 있었던 것같더군요. 힘 내시길 바랍니다. 모두를 위한 일에 힘을 썼으나 때론 생각지 못한 서운함, 아쉬움 있죠.

    아무쪼록 큰 바램이 있을테니, 그러한 어려움 딛고, 한걸음 한걸음 놓으며, 큰 바램 이루시길 바랍니다.

    아무런 힘이 되지못하지만, 마음으로나만 당신을 응원하고 싶습니다.

    무엇보다 당신은 사람들에게 갈 길을 알려주기 위해 깃발을 든 사람이니까요.

    좋은 하루였길 바랍니다.

    답글삭제

응용 어플 끝글자 버그 잡는 거 진짜 개쉽습니다

그 동안 제가 끝글자 버그를 잡지 않고 방치한 이유 우선 책임, 의무가 없습니다. 제가 해당 어플 개발자도 아닐 뿐더러 오픈소스가 원래가 유지보수 의무, 보증 책임이 없습니다 . 이렇게 개떡 같은 게 오픈소스입니다. 전 과거 libhwp 하냐고...