Free Support Forum - aspose.com

Excel⇒PDFに変換した際に、PDF側が全体的に縮小されてしまう

aspose.cells for java ver21.3 を使用しています。
作成したExcelファイルをPDFに変換していますが、
変換後のPDFファイルをExcelファイルと比較すると、
PDFファイルの方が全体的に縮小されてしまいます。

その為、ラベルシールのような専用用紙で出力した際に、印字位置がずれてしまいます。
PDFをExcelと等倍率で出力するような事は出来ないのでしょうか?
(なお、変換元のExcelファイルは表示倍率は100%のまま変換しています。)

(ロジック抜粋)
stream = new ByteArrayOutputStream();
workbook.save(stream, SaveFormat.PDF);

@ika0616,
テストのためにサンプルファイルを共有してください。 問題を再現し、分析後にフィードバックを提供します。

@ahsaniqbalsidiqui

ご確認ありがとうございます。
サンプルファイルをお送りします。
よろしくお願いいたします。

Asposeファイルサンプル.zip (43.5 KB)

@ika0616,
これは、Excel出力とAspose.Cells出力Pdfファイルを比較すると、出力Pdfファイルのマージンの違いに関連しているように見えます。調査のために、この問題を「CELLSJAVA-43430」としてデータベースに記録しました。ニュースが届きましたら、このトピックで更新します。

@ahsaniqbalsidiqui

よろしくお願いいたします。
回答をお待ちしております。

@ika0616,

実際、修正またはその他の更新がある場合は、ここで通知します。

@ika0616,
添付のPDFファイルをご確認ください。「SavedByExcel2016.pdf」はMicrosoftExcelでグリッド線付きで保存されています。 「SavedByAspose.pdf」は、Aspose.Cells for Javav21.3によってグリッド線で保存されます。 余白、コンテンツの幅と高さ、セルの幅と高さはほぼ同じです。

「SavedByExcel2016.pdf」と「SavedByAspose.pdf」の両方を実際のプリンターで紙のラベルが貼られたステッカーに印刷して、印刷結果を確認してください。

また、ステッカーにラベルが貼られている用紙がA4サイズかレター用紙サイズかを教えてください。

AsposeAndExcelSavedPdf.zip (55.3 KB)

@ahsaniqbalsidiqui
ご確認頂きありがとうございます。
頂いた「SavedByExcel2016.pdf」と「SavedByAspose.pdf」のファイルについて
実際に出力してみると、両方ともずれたままです。(現象は改善していませんでした。)

確かに頂いた「SavedByExcel2016.pdf」の方は、Excelファイルから手動でエクスポートした
ファイルだと思いますが、こちらでもExcelファイルからPDFファイルを作成すると、
頂いた「SavedByExcel2016.pdf」とほぼ同じレイアウトで出力されますね。
(つまり、PDFファイルとして出力する限りは、元のExcelファイルと比較して
レイアウトがずれてしまう事は回避不可能と言う事でしょうか??)

ちなみに、用紙サイズは「A4縦」です。

@ika0616,
フィードバックありがとうございます。 参考までに、この情報をログに記録されたチケットに記録しました。 フィードバックを共有する準備ができ次第、ここに返信します。

@ika0616,
ユーザーがAdobeAcrobatでPDFファイルを開いて印刷する場合は、印刷時に「フィット」オプションではなく「実際のサイズ」を選択してみてください。 (スクリーンショットを参照: “PrintWithActualSize.png”)
PrintWithActualSize.png (104.4 KB)

@ahsaniqbalsidiqui
ありがとうございます。確かに作成されたPDFファイルをAcrobatで開いて「実際のサイズ」を選択後に印刷をすると、ほぼExcelファイルを印刷した状態と同じサイズで出力されました。(実際には数ミリずれますが許容範囲だと思います。)

上記を踏まえてこの方法で進めたいと思いますが、実際の運用現場ではユーザーがAcrobatを使用して印刷するのではなく、プログラム内でプリンタに送信しています。(ユーザーのPCにAcrobatがインストールされていない場合もあり)その為、PDFファイルを作成する段階で、この「ページサイズ処理=実際のサイズ」プロパティを設定したいと思いますが、aspose.cells for javaから設定可能でしょうか?

@ika0616,
PDFファイルを作成する段階では、同様の設定/プロパティはないと思います。 PDFファイルを印刷する作業です。
PDFファイルを印刷するコード/プロジェクトを共有して、可能であれば何かを改善できるかどうかを確認してください。

また、API WorkbookRender.toPrinter(String PrinterName) は、workook-> PDF-> printerのプロセスの代わりに、ワークブックをプリンターに直接印刷できます。

@ahsaniqbalsidiqui
回答ありがとうございます。
確かに今回のプロパティはPDF作成の段階ではなく、印刷する段階の話ですよね。
また今回の要件的にもWorkbookを直接印刷するのではなく、一度PDFファイルに落としてから別のプロセスにてそのPDFファイルを印刷する動きとなります。PDFのviewerなども含めて印刷ロジックをもう少し見直してみます。

@ika0616,

時間をかけて印刷ロジックを確認し、フィードバックを共有してください。

調査中です。フィードバックはまもなく共有されます。

@ika0616,
はい、「実際のサイズ」の選択は印刷段階です。