Aspose.Cells for JavaでExcelファイルをPDFファイルに変換した際に、改ページタイミングが変わる

Aspose.Cells for .Java を用いて、ExcelファイルをPDFファイルに変換しています。
Excelファイルで印刷範囲を設定していますが、PDFファイルに変換すると
その印刷範囲と異なる位置で改ページが行われます。
「Microsoft Print to PDF」プリンタでは正常の改ページで表示されますが、asposeを利用すると改ページが異なります。

これは不具合でしょうか。
それともプロパティ等の設定で制御可能でしょうか。
過去の問い合わせに存在するcells-netと同様の事象だと考えております。

お手数をおかけしますが、よろしくお願いいたします。

@iwai

ExcelファイルをPDFに変換する際に改ページのタイミングが変わる問題については、いくつかの要因が考えられます。Aspose.Cellsでは、Excelの印刷設定やページ設定がPDF変換に影響を与えることがあります。

原因と解決策

  1. 印刷範囲の確認: Excelで設定した印刷範囲が正しく指定されているか確認してください。特に、ページ設定の「改ページ」タブでの設定が影響することがあります。

  2. ページ設定の調整: PDF変換時にページ設定を明示的に指定することができます。以下のコードを参考に、PdfSaveOptionsを使用してページ設定を調整してください。

    Workbook workbook = new Workbook("input.xlsx");
    PdfSaveOptions options = new PdfSaveOptions();
    options.setOnePagePerSheet(true); // シートごとに1ページにする
    workbook.save("output.pdf", options);
    
  3. バージョンの確認: 使用しているAspose.Cellsのバージョンが最新であるか確認し、必要に応じてアップデートしてください。バグ修正や機能改善が含まれている場合があります。

  4. サポートへの問い合わせ: 上記の手順で解決しない場合は、Asposeのサポートに直接問い合わせることをお勧めします。具体的なファイルや設定を提供することで、より詳細なサポートが受けられます。

次のステップ

これらの手順を実行し、問題が解決するか確認してください。もし解決しない場合は、サポートに連絡し、具体的な情報を提供してください。

この問題が解決することを願っています。何か他にお手伝いできることがあれば、ぜひお知らせください。

>1.印刷範囲の確認
正しく指定されております。

>2. ページ設定の調整
1シートの中身を1ページにするのは要件に相応しくありません。
1シートの中で改ページに従いpdfのページを作成したいです。

>3.バージョンの確認
aspose-cells-25.7.jarを利用しています。

ご確認の程よろしくお願いいたします。

自動改ページの場合に問題があるようです。
任意的に改ページを設定した場合は問題がありませんでした。
自動改ページに対して対応する方法はありますか。

@iwai
サンプルファイルと実行可能なテストコードを提供しますか。スクリーンショットを提供し、間違った位置をハイライトすることができれば、問題の位置付けに役立ちます。私たちはすぐに検査します。

サンプルファイルは下記となります。
test.zip (287.2 KB)

サンプルプログラムは下記です。
String fileName = “test”;
String convertFile = “.xlsx”;
Workbook workbook = new Workbook(fileName+convertFile);
PdfSaveOptions opts = new PdfSaveOptions();
opts.setExportDocumentStructure(true);
workbook.save(fileName + “.pdf”, opts);

よろしくお願いいたします。

@iwai
サンプルファイルとコードを使用して最新バージョンv25.7でテストすることで、問題を再現できます。ファイルをpdfに変換するときにページングエラーが発生しました。

内部問題追跡システムで次の新しいチケットを開き、Free Support Policies に記載されている条件に従って修正を提供しています。

質問番号:CELLSJAVA-46448

@iwai ,

Windows では、システムの表示スケール設定によって Excel の改ページ位置が異なります。システムの表示スケールを 150% に設定した場合、Excel で同じ改ページ位置を取得できます。しかし、システムの表示スケールを 100% と 200% に設定すると、改ページ位置が異なります。

現在、Aspose.Cells は、システムの表示スケールを 100% に設定した場合の改ページ位置のみを計算します。場合によっては、Aspose.Cells が計算した改ページ位置が、システムの表示スケールを 100% に設定した場合の改ページ位置と異なることがあります。

システムの表示スケール設定を変更した後は、すべての Excel ウィンドウを閉じて Excel アプリケーションを再起動し、システムの表示スケール設定を Excel で有効にしてください。

Windowsにてシステムの表示スケールは100%ですが、改ページ位置が異なるpdfが出力されました。
また、今回Linuxサーバでpdf変換を行う予定です。Linuxサーバで変換を行ったところ、同様に改ページ位置がexcelの自動設定の改ページと異なる結果が得られました。
お手数をおかけしますが、よろしくお願いいたします。

@iwai ,

Aspose.Cells の場合、ソース ファイルで使用されているフォントがインストールされていれば、Windows と Linux で同じ PDF 出力を取得できます。

Linuxでも同じPDF出力ができることは確認いたしました。
そのため、Linuxサーバでもexcelの自動設定改ページが正しくpdfに反映されません。
任意で指定した改ページ設定であれば正しくpdfに反映されます。
自動改ページと任意改ページで動作が異なるのはなぜでしょうか。
よろしくお願いいたします。

@iwai

手動で改ページを挿入した場合、改ページの位置は特定の行に固定され、変更されることはありません。手動で挿入された改ページがない場合、改ページの位置は、行の高さ、スタイル、ズーム、ページサイズなど、さまざまな影響要因を計算して決定されます。これらの要因は他の関連する環境設定の影響を受けるため、異なる環境設定下では結果が異なる可能性があり、計算された改ページの位置が変わることがあります。前述のとおり、いくつかの状況では、Excelと完全に同じ結果を出すことは困難です。いずれにせよ、現在のお客様のこのファイルの問題については、Cellsの出力結果を改善できるかどうか、さらに調査してまいります。

@iwai ,

Excel で 150% のシステムスケール設定で保存された出力のみが期待される結果であるようです。現在、Aspose.Cells は Excel で 100% のシステムスケール設定で保存された出力と一致するようにすることのみをサポートしています。Aspose.Cells では、Excel で 150% のシステムスケール設定で保存された出力と一致する出力を取得できません。
output_saved_by_Excel_on_different_system_display_scale.zip (321.0 KB)

test2.zip (241.5 KB)

ご確認いただきありがとうございます。
大変申し訳ございません。サンプルとして提供いたしましたtest.xlsxが適切なサンプルではなかった可能性があります。
改めて100%システムスケールで確認を行ったtest2.xlsxを添付いたします。
excelの自動改ページと異なる結果となりました。
また、test2.xlsxに対して、シート①はexcelのページレイアウト(拡大/縮小)を100%、シート②を任意改ページ設定したtest3.xlsxも送付いたします。
こちらはpdfの変換としては望ましいものが取得できましたが、特にシート①はexcelのpdf変換(印刷ページ)と異なる結果になっています。
excelを作成する際はpdf変換(印刷)でレイアウトを確認するため、印刷レイアウトと同様のpdf変換の結果を得るためにはどのようにjavaで記載すればよろしいでしょうか。
お手数をおかけしますが、ご確認の程よろしくお願いいたします。

@iwai
ご意見と新しいサンプルファイルのご提供ありがとうございます。問題をさらに分析し、更新情報があり次第お知らせいたします。

@iwai ,

お客様のファイル(test.xlsx、test2.xlsx、test3.xlsx)について、Excelのシステム表示スケールを100%に設定した場合の出力と一致するように改ページ問題を修正いたします。添付の​​プレフィックス出力をご確認ください。
output_prefix_by_Aspose.zip (148.9 KB)

excelの改ページプレビュー(印刷レイアウト)に合わせていただける認識でよろしいでしょうか。プレフィックス出力を確認いたしました。問題ないと思われます。お手数をおかけしますが、ご対応の程よろしくお願いいたします。

@iwai,

出力の確認とレビューをありがとうございます。はい、ご理解の通りです。Aspose.Cellsは、システムの表示設定が100%に設定されている場合、Excelのレイアウトに合わせて出力を調整します。

@iwai,

お客様の問題(チケットID: “CELLSJAVA-46448”)が解決されたことをお知らせいたします。この修正/機能強化は次回のリリース(Aspose.Cells v25.9)に組み込まれる予定です。次回リリースは2025年9月上旬に予定されております。新バージョンがリリースされ次第、改めてご連絡いたします。

>Aspose.Cellsは、システムの表示設定が100%に設定されている場合、Excelのレイアウトに合わせて出力を調整します。
承知いたしました。

>この修正/機能強化は次回のリリース(Aspose.Cells v25.9)に組み込まれる予定です。
迅速なご対応いただきありがとうございます。
v25.9がリリースされましたら確認いたします。