パッケージ 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,xlsx) ,PDF] 入力[Writer(odt) ,Word(doc) ] ⇒ 出力[Writer(odt) ,Word(doc,docx) ,PDF] 入力[Impress(odp),PowerPoint(ppt)] ⇒ 出力[Impress(odp),PowerPoint(ppt,pptx) ,PDF] 入力[ * 上記の全て ] ⇒ 印刷 ※ xlsx,docx,pptx は､MS 2007形式の為､LibreOffice のみ利用できます｡ 変換を行うには､以下の2通りの方法があります｡ (1)簡易的な変換ﾒｿｯﾄﾞを利用する場合 #convert(String, String)を利用して､変換を行います｡ この場合､出力形式は､出力ﾌｧｲﾙの拡張子に従って自動的に決定されます｡ このため､印刷処理などを行う場合は､(2)の方法で出力して下さい｡ (2)段階的に各ﾒｿｯﾄﾞを呼び出して変換する場合 ｵﾌﾞｼﾞｪｸﾄを生成した後､`open()`､#(各種変換ﾒｿｯﾄﾞ)､`Object.clone()`を 順番に呼び出して変換を行います｡ この場合､出力形式は､それに対応するﾒｿｯﾄﾞを呼び出すことで決定されます｡ また､変換を行うための､各種ﾒｿｯﾄﾞは､例外としてThrowableを投げるように定義されています｡ このｸﾗｽを利用する場合は､このThrowableをcatchし､catch句で､必ず`close(boolean)`に､ "true"(ｴﾗｰ発生時のｸﾛｰｽﾞ処理)を指定して､終了処理を行って下さい｡ (これを行わない場合､OpenOfficeの不要なﾌﾟﾛｾｽが残ってしまう可能性があります) また､出力ﾌｧｲﾙが既に存在する場合､出力ﾌｧｲﾙは一旦削除された後､処理されます｡ なお､入力ﾌｧｲﾙと出力ﾌｧｲﾙが同じ場合､何も処理されません｡(例外も発行されません) 入力ﾌｧｲﾙを､CSV形式で複数指定した場合､複数の入力ﾌｧｲﾙをﾏｰｼﾞして出力します｡ ※1 現状は､ﾌｧｲﾙのﾏｰｼﾞは､入力ﾌｧｲﾙがExcelまたはCalcの場合のみ対応しています｡ ※ DocConverter は､ｸﾗｳﾄﾞ対応されていません｡変換時はﾛｰｶﾙﾌｧｲﾙ間で行ってください｡

機能分類
  帳票ｼｽﾃﾑ
導入されたバージョン:
  JDK1.6

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

  コンストラクタ
  コンストラクタ
  説明
  `DocConverter_OOO(String input)`
  ｺﾝｽﾄﾗｸﾀです｡ #DocConverter(input, true)と同じです｡
  `DocConverter_OOO(String[] input)`
  ｺﾝｽﾄﾗｸﾀです｡ #DocConverter(input, true)と同じです｡
  `DocConverter_OOO(String[] input, boolean isOl)`
  ｺﾝｽﾄﾗｸﾀです｡ isOnline(isOl)がtrueに指定された場合､soffice.binのﾌﾟﾛｾｽをﾌｧｸﾄﾘｰｸﾗｽ経由で生成し､ ｷｬｯｼｭします｡ 但し､ｼｽﾃﾑﾘｿｰｽが読み込まれないような､ﾊﾞｯﾁﾌｧｲﾙから起動した場合は､この方法は 利用できないため､isOnlineをfalseに指定する必要があります｡

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `void`
  `auto(String outputName)`
  出力ﾌｧｲﾙから出力形式を自動判別し､変換を行います｡ 入出力形式で未対応の場合(形式は入出力ﾌｧｲﾙの拡張子で判別)､例外が発行されます｡ 正常に処理が終了した場合は､#close()を発行し､終了処理を行って下さい｡ また､例外が発生した場合は､#close(true)を発行し､終了処理を行って下さい｡
  `void`
  `close()`
  Calcｺﾝﾎﾟｰﾈﾝﾄをｸﾛｰｽﾞします｡ このｸﾛｰｽﾞ処理は､処理が正常終了した場合に呼び出しする必要があります｡ 例外が発生した場合は､#close(true)を発行し､終了処理を行って下さい｡ このﾒｿｯﾄﾞは#close(false)と同じです｡
  `void`
  `close(boolean isErr)`
  Calcｺﾝﾎﾟｰﾈﾝﾄをｸﾛｰｽﾞします｡ 引数のisErrがtrueの場合､この変換ｵﾌﾞｼﾞｪｸﾄで生成されたﾌﾟﾛｾｽは強制的に破棄されます｡ falseの場合は､ﾌﾟﾛｾｽは､ﾌｧｸﾄﾘｸﾗｽを経由して､ｷｬｯｼｭに戻されます｡ (ﾊﾞｯﾁ処理の場合は､いずれの場合も､ﾌﾟﾛｾｽは強制的に破棄されます) 起動から変換､ｸﾛｰｽﾞまでの書く処理で例外が発生した場合は､#close(true)を発行し､終了処理を行って下さい｡ #close(false)は#close()と同じであるため､通常利用することはありません｡
  `static final void`
  `convert(String[] inputFile, String outputFile, boolean isOnline)`
  ﾄﾞｷｭﾒﾝﾄの変換を行うための簡易ﾒｿｯﾄﾞです｡ 変換方法は､出力ﾌｧｲﾙの拡張子により自動的に決定されます｡ isOnlineがtrueに指定された場合､soffice.binのﾌﾟﾛｾｽをﾌｧｸﾄﾘｰｸﾗｽ経由で生成し､ ｷｬｯｼｭします｡ 但し､ｼｽﾃﾑﾘｿｰｽが読み込まれないような､ﾊﾞｯﾁﾌｧｲﾙから起動した場合は､この方法は 利用できないため､isOnlineをfalseに指定する必要があります｡
  `static void`
  `main(String[] args)`
  ﾄﾞｷｭﾒﾝﾄの変換を行います｡ 変換方法は､出力ﾌｧｲﾙの拡張子により自動的に決定されます｡
  `void`
  `open()`
  SOficeのｺﾝﾎﾟｰﾈﾝﾄを起動します｡ 正常に処理が終了した場合は､#close()を発行し､終了処理を行って下さい｡ また､例外が発生した場合は､#close(true)を発行し､終了処理を行って下さい｡
  `void`
  `pdf(String outputName, String pdfPasswd)`
  PDF出力を行います｡ 入力形式で未対応の場合(形式は入力ﾌｧｲﾙの拡張子で判別)､例外が発行されます｡ 正常に処理が終了した場合は､#close()を発行し､終了処理を行って下さい｡ また､例外が発生した場合は､#close(true)を発行し､終了処理を行って下さい｡
  `void`
  `print(String printer)`
  印刷を行います｡ 正常に処理が終了した場合は､#close()を発行し､終了処理を行って下さい｡ また､例外が発生した場合は､#close(true)を発行し､終了処理を行って下さい｡

  ### クラスから継承されたメソッド 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` - 何らかのｴﾗｰが発生した場合｡
    変更履歴:
      8.1.0.3 (2022/01/21) checkOutputﾒｿｯﾄﾞは呼出元で判定する。

  - ### auto

    public void auto(String outputName) throws Throwable
    出力ﾌｧｲﾙから出力形式を自動判別し､変換を行います｡ 入出力形式で未対応の場合(形式は入出力ﾌｧｲﾙの拡張子で判別)､例外が発行されます｡ 正常に処理が終了した場合は､#close()を発行し､終了処理を行って下さい｡ また､例外が発生した場合は､#close(true)を発行し､終了処理を行って下さい｡
    パラメータ:
      `outputName` - 出力ﾌｧｲﾙ名
    例外:
      `Throwable` - 何らかのｴﾗｰが発生した場合｡
    変更履歴:
      8.1.0.3 (2022/01/21) checkOutputﾒｿｯﾄﾞは呼出元で判定する。

  - ### convert

    public static final void convert(String[] inputFile, String outputFile, boolean isOnline)
    ﾄﾞｷｭﾒﾝﾄの変換を行うための簡易ﾒｿｯﾄﾞです｡ 変換方法は､出力ﾌｧｲﾙの拡張子により自動的に決定されます｡ isOnlineがtrueに指定された場合､soffice.binのﾌﾟﾛｾｽをﾌｧｸﾄﾘｰｸﾗｽ経由で生成し､ ｷｬｯｼｭします｡ 但し､ｼｽﾃﾑﾘｿｰｽが読み込まれないような､ﾊﾞｯﾁﾌｧｲﾙから起動した場合は､この方法は 利用できないため､isOnlineをfalseに指定する必要があります｡
    パラメータ:
      `inputFile` - 入力ﾌｧｲﾙ名配列
      `outputFile` - 出力ﾌｧｲﾙ名
      `isOnline` - ｵﾝﾗｲﾝ(Web環境での使用)かどうか
    変更履歴:
      8.0.3.0 (2021/12/17) ﾌｧｲﾙ連結の簡易ﾒｿｯﾄﾞは、使用しません。

  - ### 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)｡, 8.0.3.0 (2021/12/17) ﾌｧｲﾙ連結の簡易ﾒｿｯﾄﾞは、使用しません。