Pdf作成時のフォント指定について

PDF作成時のフォント違いによる問題.pdf (258.5 KB)

PDF作成時にテキスト出力を、座標指定で行っていますが
指定するフォントによって、同じ座標でも出力位置が異なっております。
この事象の原因と回避方法を調査いただけますでしょうか。

@koga

生成されたPDFと、問題を確認するために使用したサンプルコードを共有してください。 問題の比較スナップショットも提供してください。

UTCTEST0001-000000001-20210427120648.pdf (410.4 KB)

作成しているソースについては、別途ご提供させていただきますが、
ひとまず実際に生成されたPDFを添付します。

同じ作成方法で作成し、フォントのみ変更した形で作成しています。

@koga

問題の確認に使用したサンプルコードを教えてください。 問題の比較スナップショットも提供してください。

対象ソース.zip (5.3 KB)
比較スナップショットについては、前回提示している内容を確認願います

@koga

提供されたコードスニペットを実行しようとしましたが、解決できませんでした。ただし、理解どおりにシナリオを複製するために、以下のサンプルコードスニペットを用意しました。

Document pdfDocument = new Document();
Page page = pdfDocument.getPages().add();
MarginInfo pageMarginInfo = new MarginInfo(3,3,3,3);
page.getPageInfo().setMargin(pageMarginInfo);

Table tableDetail = new Table();
tableDetail.setMargin(new MarginInfo(0,0,0,0));
tableDetail.setColumnWidths("200 200 200");

Row row = tableDetail.getRows().add();
row.getCells().add("フォント");
row.getCells().add("半角英数");
row.getCells().add("全角文字");

row = tableDetail.getRows().add();
row.getDefaultCellTextState().setFont(FontRepository.findFont("MS Mincho"));
row.getCells().add("MS明朝");
row.getCells().add("ABCXYZ0123");
row.getCells().add("あいうえお漢字");

row = tableDetail.getRows().add();
row.getDefaultCellTextState().setFont(FontRepository.findFont("Meiryo"));
row.getCells().add("メイリオ");
row.getCells().add("ABCXYZ0123");
row.getCells().add("あいうえお漢字");

page.getParagraphs().add(tableDetail);

pdfDocument.save(dataDir + "output.pdf");

DifferentFontHeight.png (12.6 KB)
output.pdf (415.4 KB)

MS明朝とメイリオではフォントの幅とサイズが違うことに気づきました。スクリーンショットも添付されています。同じことがあなたが話している問題であるかどうかを確認してください。それに応じて、さらにサポートを進めていきます。

作成いただいたPDF(output.pdf)の事象と、今回問合せをさせていただいている事象は同じ事象です。
文字の重なりを回避できる方法を検討していただけますでしょうか。

@koga

ID PDFJAVA-40451のチケットが、問題追跡システムで作成され、問題をさらに調査します。 このスレッドは問題にリンクされているため、問題が修正されたら通知を受けることができます。

@koga

以前に記録されたチケットを調査しました。各フォントには、異なる文字デザイン、インデント、大胆さ、繊細さがあります。私たちはそれを制御することはできません。

Aspose.PDFジェネレーターは、その設定でフォントを使用します。また、同じ文字サイズの場合、異なるフォントでは文字が同じサイズで描画されるのが普通です。これは、フォント作成時のデザイン要求によるものです。

フォントを使用するときは、ドキュメントデザインを作成するときにその特性を考慮する必要があります。それぞれのシンボルは小さな絵のようなもので、デザインが違えば空きスペースも重要です。

たとえば、同じテキストは非常に異なって見える場合があります。フォントも OS によって表示が異なります (例: DifferentFontView.jpg)

ここでは、テキストの比較を見ることができます。
https://qaz.wtf/u/convert.cgi?text=some+text+for+testing

ここでは、ベースライン、インデント、その他すべてのパラメータを使用した内部文字のデザインを確認できます。

DifferentFontView.jpg (124.1 KB)