BuildVuでOfficeドキュメントを変換する
BuildVuはPDFファイルをHTMLまたはSVGにしか変換できませんが、オープンソースソフトウェアのLibreOfficeを使用してOfficeドキュメントをPDFに事前変換することで、Word、PowerPoint、ExcelファイルなどのOfficeドキュメントを変換することもできます。
これを行うには、LibreOfficeをインストールする必要があります。Linux等のサーバOSでLibreOfficeを実行している場合、一部のOfficeドキュメントがLinuxでは使用できないフォントを使用していると、正しく変換されないことがあります。 このため、Google Noto Fontsをインストールして、不足しているフォントを置き換える必要があります。
BuildVuはLibreOfficeを使用して、コマンドライン経由またはJavaクラスからOfficeドキュメントを変換できます。
コマンドラインでの変換
LibreOfficeをインストールしたら、LibreOffice実行可能ファイルへの絶対パスをシステムプロパティとして渡すだけで、コマンドラインからOfficeドキュメントを変換できます。
java -Dorg.jpedal.pdf2html.libreOfficeExecutablePath="/path/to/soffice" -jar buildvu.jar /inputDir/ /outputDir/
Officeドキュメントと同じファイル名のPDFファイルが既に存在する場合、変換は失敗します。 これは、次のシステムプロパティを追加することで上書きすることができます。
-Dorg.jpedal.pdf2html.allowLibreOfficeOverwrite=true
Java Classでの変換
LibreOfficeがインストールされると、DocumentToPDFConverterクラスを使用してLibreOfficeを呼び出し、Officeドキュメントを前処理することができます。
if (DocumentToPDFConverter.hasConvertibleFileType(document)) {
try {
DocumentToPDFConverter.convert(document, libreOfficeExecutablePath);
// Code to convert generated PDF file to HTML5 goes here
} catch (IOException e) {
// Problem occurred - see Javadoc for reasons
} catch (InterruptedException e) {
// Process was interrupted
}
} else {
// File type not supported
}
是非、こちらのJavadocをお読みください。 DocumentToPDFConverterクラスのソースコードもオンラインでご覧いただけます。