パッケージ org.opengion.hayabusa.report2

## クラス DocConverter_OOO

- java.lang.Object
- - org.opengion.hayabusa.report2.DocConverter_OOO

-     public class DocConverter_OOO
      extends Object

  OpenOfficeを利用して様々な形式のファイルを読み込み、出力・印刷を行うための変換クラスです。 変換を行うことのできる入出力のフォーマット以下の通りです。 [対応フォーマット] 入力[Calc(ODS) ,Excel(XLS) ] ⇒ 出力[Calc(ODS) ,Excel(XLS) ,PDF] 入力[Writer(ODT) ,Word(DOC) ] ⇒ 出力[Writer(ODT) ,Word(DOC) ,PDF] 入力[Impress(ODP),PowerPoint(PPT)] ⇒ 出力[Impress(ODP),PowerPoint(PPT),PDF] 入力[ * 上記の全て ] ⇒ 印刷 変換を行うには、以下の2通りの方法があります。 (1)簡易的な変換メソッドを利用する場合 `convert(String, String)`を利用して、変換を行います。 この場合、出力形式は、出力ファイルの拡張子に従って自動的に決定されます。 このため、印刷処理などを行う場合は、(2)の方法で出力して下さい。 (2)段階的に書くメソッドを呼び出して変換する場合 オブジェクトを生成した後、`open()`、#(各種変換メソッド)、`Object.clone()`を 順番に呼び出して変換を行います。 この場合、出力形式は、それに対応するメソッドを呼び出ることで決定されます。 また、変換を行うための、各種メソッドは、例外としてThrowableを投げるように定義されています。 このクラスを利用する場合は、このThrowableをcatchし、catch句で、必ず`close( boolean )`に、 "true"(エラー発生時のクローズ処理)を指定して、終了処理を行って下さい。 (これを行わない場合、OpenOfficeの不要なプロセスが残ってしまう可能性があります) また、出力ファイルが既に存在する場合、出力ファイルは一旦削除された後、処理されます。 なお、入力ファイルと出力ファイルが同じ場合、何も処理されません。(例外も発行されません) 入力ファイルを、CSV形式で複数指定した場合、複数の入力ファイルをマージして出力します。 ※1 現状は、ファイルのマージは、入力ファイルがExcelまたはCalcの場合のみ対応しています。
  機能分類
    帳票システム
  バージョン
    4.0
  作成者
    Hiroki.Nakamura
  導入されたバージョン:
    JDK1.6

- - ### コンストラクタの概要

    コンストラクタ
    コンストラクタ | 説明
    --- | ---
    `DocConverter_OOO​(String input)` | コンストラクタです。
    `DocConverter_OOO​(String[] input)` | コンストラクタです。
    `DocConverter_OOO​(String[] input, boolean isOl)` | コンストラクタです。

  - ### メソッドの概要

    すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `void` | `auto​(String outputName)` | 出力ファイルから出力形式を自動判別し、変換を行います。
    `void` | `close()` | Calcコンポーネントをクローズします。
    `void` | `close​(boolean isErr)` | Calcコンポーネントをクローズします。
    `static void` | `convert​(String[] inputFile, String outputFile)` | ドキュメントの変換を行うための簡易メソッドです。
    `static void` | `convert​(String[] inputFile, String outputFile, boolean isOnline)` | ドキュメントの変換を行うための簡易メソッドです。
    `static void` | `convert​(String inputFile, String outputFile)` | ドキュメントの変換を行うための簡易メソッドです。
    `void` | `doc​(String outputName)` | Word(doc)出力を行います。
    `static void` | `main​(String[] args)` | ドキュメントの変換を行います。
    `void` | `odp​(String outputName)` | Impress(odp)出力を行います。
    `void` | `ods​(String outputName)` | Calc(ods)出力を行います。
    `void` | `odt​(String outputName)` | Writer(ods)出力を行います。
    `void` | `open()` | SOficeのコンポーネントを起動します。
    `void` | `pdf​(String outputName, String pdfPasswd)` | PDF出力を行います。
    `void` | `ppt​(String outputName)` | PowerPoint(ppt)出力を行います。
    `void` | `print​(String printer)` | 印刷を行います。
    `void` | `xls​(String outputName)` | Excel(xls)出力を行います。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### DocConverter_OOO

          public DocConverter_OOO​(String input)

      コンストラクタです。 #DocConverter(input, true)と同じです。
      パラメータ:
        `input` - ファイル一覧(CSV形式)
      関連項目:
        `DocConverter_OOO(String[])`

    - #### DocConverter_OOO

          public DocConverter_OOO​(String[] input)

      コンストラクタです。 #DocConverter(input, true)と同じです。
      パラメータ:
        `input` - ファイル一覧(配列)
      関連項目:
        `DocConverter_OOO(String[], boolean)`

    - #### DocConverter_OOO

          public DocConverter_OOO​(String[] input,
                                  boolean isOl)

      コンストラクタです。 isOnline(isOl)がtrueに指定された場合、soffice.binのプロセスをファクトリークラス経由で生成し、 キャッシュします。 但し、システムリソースが読み込まれないような、バッチファイルから起動した場合は、この方法は 利用できないため、isOnlineをfalseに指定する必要があります。
      パラメータ:
        `input` - ファイル一覧(配列)
        `isOl` - オンライン(Web環境での使用)かどうか

  - ### メソッドの詳細

    - #### open

          public void open()
                    throws Throwable

      SOficeのコンポーネントを起動します。 正常に処理が終了した場合は、#close()を発行し、終了処理を行って下さい。 また、例外が発生した場合は、#close(true)を発行し、終了処理を行って下さい。
      例外:
        `Throwable` - 何らかのエラーが発生した場合。
      関連項目:
        `close()`, `close(boolean)`
      変更履歴:
        5.1.7.0 (2010/06/01) マージ処理対応

    - #### close

          public void close()
                     throws Throwable

      Calcコンポーネントをクローズします。 このクローズ処理は、処理が正常終了した場合に呼び出しする必要があります。 例外が発生した場合は、#close(true)を発行し、終了処理を行って下さい。 このメソッドは#close(false)と同じです。
      例外:
        `Throwable` - 何らかのエラーが発生した場合。
      関連項目:
        `close(boolean)`

    - #### close

          public void close​(boolean isErr)

      Calcコンポーネントをクローズします。 引数のisErrがtrueの場合、この変換オブジェクトで生成されたプロセスは強制的に破棄されます。 falseの場合は、プロセスは、ファクトリクラスを経由して、キャッシュに戻されます。 (バッチ処理の場合は、いずれの場合も、プロセスは強制的に破棄されます) 起動から変換、クローズまでの書く処理で例外が発生した場合は、#close(true)を発行し、終了処理を行って下さい。 #close(false)は#close()と同じであるため、通常利用することはありません。
      パラメータ:
        `isErr` - trueの場合、この変換オブジェクトで生成されたプロセスは強制的に破棄されます。
      変更履歴:
        4.2.4.1 (2008/07/07 ) 終了処理を60回で終わるように修正, 4.3.0.0 (2008/07/15 ) ↑は6秒しか待っていなかったので、60秒待つように修正

    - #### print

          public void print​(String printer)
                     throws Throwable

      印刷を行います。 正常に処理が終了した場合は、#close()を発行し、終了処理を行って下さい。 また、例外が発生した場合は、#close(true)を発行し、終了処理を行って下さい。
      パラメータ:
        `printer` - プリンター名
      例外:
        `Throwable` - 何らかのエラーが発生した場合。
      変更履歴:
        4.3.0.0 (2008/07/16) スプールが終わるまでwaitし、さらにプリンタ発行の状況を監視し、正常終了かどうかを判断, 4.3.7.3 (2009/06/22) 存在しないプリンターを指定した場合のエラーハンドリングを追加, 5.1.2.0 (2010/01/01) CentOS等は、OS_INFOがLinux UNKNOWNとなるため、判定条件を変更

    - #### pdf

          public void pdf​(String outputName,
                          String pdfPasswd)
                   throws Throwable

      PDF出力を行います。 入力形式で未対応の場合(形式は入力ファイルの拡張子で判別)、例外が発行されます。 正常に処理が終了した場合は、#close()を発行し、終了処理を行って下さい。 また、例外が発生した場合は、#close(true)を発行し、終了処理を行って下さい。
      パラメータ:
        `outputName` - 出力ファイル名
        `pdfPasswd` - PDFパスワード
      例外:
        `Throwable` - 何らかのエラーが発生した場合。

    - #### ods

          public void ods​(String outputName)
                   throws Throwable

      Calc(ods)出力を行います。 入力形式で未対応の場合(形式は入力ファイルの拡張子で判別)、例外が発行されます。 正常に処理が終了した場合は、#close()を発行し、終了処理を行って下さい。 また、例外が発生した場合は、#close(true)を発行し、終了処理を行って下さい。
      パラメータ:
        `outputName` - 出力ファイル名
      例外:
        `Throwable` - 何らかのエラーが発生した場合。

    - #### xls

          public void xls​(String outputName)
                   throws Throwable

      Excel(xls)出力を行います。 入力形式で未対応の場合(形式は入力ファイルの拡張子で判別)、例外が発行されます。 正常に処理が終了した場合は、#close()を発行し、終了処理を行って下さい。 また、例外が発生した場合は、#close(true)を発行し、終了処理を行って下さい。
      パラメータ:
        `outputName` - 出力ファイル名
      例外:
        `Throwable` - 何らかのエラーが発生した場合。

    - #### odt

          public void odt​(String outputName)
                   throws Throwable

      Writer(ods)出力を行います。 入力形式で未対応の場合(形式は入力ファイルの拡張子で判別)、例外が発行されます。 正常に処理が終了した場合は、#close()を発行し、終了処理を行って下さい。 また、例外が発生した場合は、#close(true)を発行し、終了処理を行って下さい。
      パラメータ:
        `outputName` - 出力ファイル名
      例外:
        `Throwable` - 何らかのエラーが発生した場合。

    - #### doc

          public void doc​(String outputName)
                   throws Throwable

      Word(doc)出力を行います。 入力形式で未対応の場合(形式は入力ファイルの拡張子で判別)、例外が発行されます。 正常に処理が終了した場合は、#close()を発行し、終了処理を行って下さい。 また、例外が発生した場合は、#close(true)を発行し、終了処理を行って下さい。
      パラメータ:
        `outputName` - 出力ファイル名
      例外:
        `Throwable` - 何らかのエラーが発生した場合。

    - #### odp

          public void odp​(String outputName)
                   throws Throwable

      Impress(odp)出力を行います。 入力形式で未対応の場合(形式は入力ファイルの拡張子で判別)、例外が発行されます。 正常に処理が終了した場合は、#close()を発行し、終了処理を行って下さい。 また、例外が発生した場合は、#close(true)を発行し、終了処理を行って下さい。
      パラメータ:
        `outputName` - 出力ファイル名
      例外:
        `Throwable` - 何らかのエラーが発生した場合。

    - #### ppt

          public void ppt​(String outputName)
                   throws Throwable

      PowerPoint(ppt)出力を行います。 入力形式で未対応の場合(形式は入力ファイルの拡張子で判別)、例外が発行されます。 正常に処理が終了した場合は、#close()を発行し、終了処理を行って下さい。 また、例外が発生した場合は、#close(true)を発行し、終了処理を行って下さい。
      パラメータ:
        `outputName` - 出力ファイル名
      例外:
        `Throwable` - 何らかのエラーが発生した場合。

    - #### auto

          public void auto​(String outputName)
                    throws Throwable

      出力ファイルから出力形式を自動判別し、変換を行います。 入出力形式で未対応の場合(形式は入出力ファイルの拡張子で判別)、例外が発行されます。 正常に処理が終了した場合は、#close()を発行し、終了処理を行って下さい。 また、例外が発生した場合は、#close(true)を発行し、終了処理を行って下さい。
      パラメータ:
        `outputName` - 出力ファイル名
      例外:
        `Throwable` - 何らかのエラーが発生した場合。

    - #### convert

          public static final void convert​(String inputFile,
                                           String outputFile)

      ドキュメントの変換を行うための簡易メソッドです。 変換方法は、出力ファイルの拡張子により自動的に決定されます。
      パラメータ:
        `inputFile` - 入力ファイル名
        `outputFile` - 出力ファイル名
      関連項目:
        `convert(String[], String, boolean)`

    - #### convert

          public static final void convert​(String[] inputFile,
                                           String outputFile)

      ドキュメントの変換を行うための簡易メソッドです。 変換方法は、出力ファイルの拡張子により自動的に決定されます。
      パラメータ:
        `inputFile` - 入力ファイル名配列
        `outputFile` - 出力ファイル名
      関連項目:
        `convert(String[], String, boolean)`

    - #### convert

          public static final void convert​(String[] inputFile,
                                           String outputFile,
                                           boolean isOnline)

      ドキュメントの変換を行うための簡易メソッドです。 変換方法は、出力ファイルの拡張子により自動的に決定されます。 isOnlineがtrueに指定された場合、soffice.binのプロセスをファクトリークラス経由で生成し、 キャッシュします。 但し、システムリソースが読み込まれないような、バッチファイルから起動した場合は、この方法は 利用できないため、isOnlineをfalseに指定する必要があります。
      パラメータ:
        `inputFile` - 入力ファイル名配列
        `outputFile` - 出力ファイル名
        `isOnline` - オンライン(Web環境での使用)かどうか

    - #### main

          public static void main​(String[] args)

      ドキュメントの変換を行います。 変換方法は、出力ファイルの拡張子により自動的に決定されます。
      パラメータ:
        `args` - コマンド引数配列
      変更履歴:
        4.3.1.1 (2008/08/23) mkdirs の戻り値判定, 6.3.9.1 (2015/11/27) A method/constructor shouldnt explicitly throw java.lang.Exception(PMD)。