【Aspose.Words】行間の改行が出力されない

Aspose.Words for .Net(18.1)にて、行間に空の改行を設定し出力した際、文中の改行が出力されない事象を確認いたしました。
※文頭、文末の改行を除く

原因が特定できていない為、ご助言いただければと存じます。
お忙しいところ恐れ入りますが、よろしくお願いいたします。

Aspose.Words_20230207.xlsx.zip (515.0 KB)

@Uchida, ほとんどの場合、問題は異なるフォントが原因です。 スクリーンショットから、入力ドキュメントと出力ドキュメントで選択された文字が異なるフォントを使用していることは明らかです。

次のコードを使用して、変換時に入力ドキュメントで指定されたフォントが Aspose.Words に置き換えられるかどうかを確認できます。

Document doc = new Document("in.docx");
GetDocumentWarnings missingfonts = new GetDocumentWarnings();
doc.WarningCallback = missingfonts;

doc.Save("out.pdf");

public class GetDocumentWarnings : IWarningCallback
{
    public void Warning(WarningInfo info)
    {
        // We are only interested in fonts being substituted.
        if (info.WarningType == WarningType.FontSubstitution)
        {
            Console.WriteLine(info.WarningType + " :: " + info.Description.ToString());
        }
    }
}

問題の解決に役立たない場合は、サンプルの入力ドキュメント、問題が発生しているコンピューターで作成されたサンプルの出力ドキュメント、およびサンプル コードを提供してください。

ご回答いただきありがとうございます。

提供いただきましたコードについて、実施できる環境が準備できていないため、未実施の状態でご連絡させていただいております。
申し訳ありません。
結果が判明次第、改めてご連絡いたします。

ご回答いただきましたフォントの違いについて、確認いたしました。
スクリーンショット上では異なるフォントと認識できますが、実際は同様のフォントになります。
※詳細は添付資料「発生事象詳細_フォント比較シート」 をご確認ください。

また、お問合せさせていただきました事象を、引き続きこちらでも調査しております。
前回ご相談させていただいた時点より詳細な内容が判明いたしましたので、資料を提供させていただきます。

お忙しいところ恐れ入りますが、ご確認の程よろしくお願いいたします。

Aspose.Words_20230209.zip (432.5 KB)

@Uchida, 私はおそらくあなたの最初の投稿を理解していませんでした。

写真に示されているように空の行が表示されないことに関連する問題ですか? MailMerge 後、XML のこれらの空行を DOCX に保持しますか?

これをさらに試して、これが Aspose.Words の問題かどうかを確認します。

@Uchida, 提供していただいたXMLファイルで MailMerge をしてみました。 空行は、出力ドキュメントに正しく表示されます。

スキームから、MailMerge に中間 CSV ファイルを使用しているようです。 この CSV ファイルを共有できますか? それが問題の原因かもしれません。 また、XML を CSV に変換するサンプル コードを共有してください。

ご確認いただきありがとうございます。

お問合せいたしました事象は「空の行が表示されないことに関連する問題」で間違いありません。

MailMergeに使用したCSVファイル、XML を CSV に変換するサンプル コードを共有いたします。
※XMLファイル、Wordひな型、Word出力結果を、CSVの値に合わせて共有いたします。

お忙しいところ恐れ入りますが、ご確認の程よろしくお願いいたします。
Aspose.Words_20230213.zip (133.4 KB)

@Uchida, この問題は、CSV リーダーが原因である可能性があります。 提供した CSV ファイルでは、文字列「a b c d」が次のスクリーンショットに示すようにエンコードされています:

TextFieldParser を使用して CSV ファイルを読み込んでみました:

using TextFieldParser csvReader = new TextFieldParser(csvFile);
csvReader.SetDelimiters(new string[] { "," });
csvReader.HasFieldsEnclosedInQuotes = true;
csvReader.TrimWhiteSpace = false;

string[] names = csvReader.ReadFields();
string[] values = csvReader.ReadFields();

次に、「a b c d」テキストを含むセルを確認しました:

元の文字列:
"\r\na\r\n\r\nb\r\n\r\n\r\nc\r\n\r\nd\r\n\r\n"
TextFieldParser によって読み取られる文字列:
"\r\na\r\nb\r\nc\r\nd\r\n"

ご覧のとおり、「\r\n」の一部が欠落しています。 そして、これはあなたが観察している問題と非常に似ています。

CSV から読み取った後、差し込み印刷の前に、プログラムが「a b c d」セルの「\r\n」の一部を削除するかどうかを確認してください。 はいの場合、この問題は Aspose.Words とは関係ありません。

ご回答いただきありがとうございます。

弊社環境にて検証を行い、TextFieldParserは「\r\n」を削除して、CSVファイルを読み込んでいることを確認いたしました。
Aspose.Words とは関係のない問題になります。

以上になります。お忙しいところご対応いただきありがとうございました。