1

documents4jを使用して Excel ファイルを PDF に変換したいのですが、2 つの問題があります。

  1. 変換時に Excel ファイルを開く必要があります。Word を PDF に変換するとき、doc/docx ファイルを開く必要はありませんでした。
  2. PDF には、Excel に含まれているチャート イメージが含まれていません。

どうすればこれを解決できますか? 問題を再現するコードは次のとおりです。

private void convertExcelToPDF1() throws Exception {

    InputStream excelFileIS = new BufferedInputStream(new FileInputStream("C:\\test_convert\\test.xlsx"));
    File target = new File("C:\\test_convert\\sim_status_excel.pdf");

    IConverter converter = RemoteConverter.builder()
                       .baseFolder(new File("D:\\temp"))
                       .workerPool(20, 25, 2, TimeUnit.SECONDS)
                       .requestTimeout(10, TimeUnit.SECONDS)
                       .baseUri("http://localhost:9998")
                       .build();

    Future<Boolean> conversion = converter.convert(excelFileIS).as(DocumentType.XLSX)
                                    .to(target).as(DocumentType.PDF)
                                    .prioritizeWith(1000)
                                    .schedule();
}
4

1 に答える 1

0

MS Excel は、必ずしもプログラムによる変換の使用を意図したものではありません。したがって、奇妙な問題が発生する可能性があります。まず、MS Excel を直接使用してファイルを PDF に変換しようとしましたか? そこでも問題が発生した場合、documents4j は無力です。

それ以外にも、エクスポートを成功させるために必要なレポート オプション セットがある場合があります。documents4j が Excel 変換をトリガーするために実行する VBS スクリプトを確認できます。 /資力

これらのファイルをローカルに保存して実行できます。excel_start.vbsまず、 Windows のコマンド ラインから実行します。excel_convert.vbs input.xls output.pdf 999次に、指定されたファイルの PDF への変換をトリガーするを実行します。を実行してクリーンアップできますexcel_stop.vbs。あなたが終わった後。

あなたにとって興味深い 2 つのパラメーターは次のとおりです。

excelApplication.Workbooks.Open(inputFile, , True, , , , , , , , , , , , 2)

excelDocument.ExportAsFixedFormat xlTypePDF, outputFile

これを微調整して変換を実行できます。単体テストで正常に動作する標準の Excel ファイルでのみテストしました。あなたに合った解決策が見つかった場合は、変更をマージさせていただきます。メソッド (ExportAsFixedFormatおよびOpen) は、MSDN で文書化されています。

于 2015-12-17T11:00:13.750 に答える