Document Conversion using Aspose.Words

大佬,你的问题解决了没,我也遇到这个问题了 :face_with_thermometer:

@zhangxiong

您能否与文档和代码示例一起分享有关您的要求的更多详细信息? 我们将调查该问题并为您提供更多相关信息。

代码执行以下逻辑

1、调用域变量填充逻辑

MergeOption option = MergeOption.builder().mergeAll().required(false).build();    
Document document = mergeFieldAndRegion(textByte, contractE, option, null);

2、 填充各种域变量

@Override
public Document mergeFieldAndRegion(byte[] fileBytes, ContractE contract, MergeOption option, ContractAttachmentE contractAttachment) {

    Objects.requireNonNull(fileBytes);
    Objects.requireNonNull(contract);
    // 1. 域变量文档初始化
    MergeDocument mergeDocument = null;
    try (InputStream fis = new ByteArrayInputStream(fileBytes)) {
        mergeDocument = MergeDocument.of(fis);
    } catch (Exception e) {
        log.error("文档载入失败", e);
        throw new CommonException("error.contract.document.init");
    }
    // 2。添加普通域变量的值
    addFieldVariables(mergeDocument, contract, option);
    // 3。 添加表格域变量的值
    addRegionVariables(mergeDocument, contract, option);
    // 4。设置lovCallBack,处理lov的meaning替换问题, emptyHandler非空时,会作为lov的补充逻辑处理
    LovFieldMergingCallback lovHandler = null;
    if (Objects.isNull(option.getEmptyHandler())) {
        lovHandler = new LovFieldMergingCallback(lovAdapter);
    } else {
        lovHandler = new LovFieldMergingCallback(lovAdapter, new EmptyMergingCallback(option.getEmptyHandler()));
    }
    mergeDocument.getMailMerge().setFieldMergingCallback(lovHandler);
    // 5。开始填充
    try {
        mergeDocument.merge();
    } catch (Exception e) {
        log.error("域变量填充错误", e);
        throw new CommonException("error.contract.document.merge");
    }
    // 6。填充结果判断
    judgeResult(mergeDocument, option, contract, contractAttachment);
    return mergeDocument.getDocument();
}

// 保存为pdf 之后,word文档(docx)格式的行间距就会变大

 PdfSaveOptions options = new PdfSaveOptions();
 options.setExportDocumentStructure(true);
 document.save(outputStream, options);

原文件格式
image.png (69.1 KB)

保存为pdf之后的格式(行间距变大)
image.png (47.7 KB)

@zhangxiong

很遗憾,我们无法执行您的代码。 图像也没有清晰的内容。 .为确保及时准确的响应,请在此处附上以下资源进行测试:

  • 您输入的 Word 文档。
  • 请附上显示不良行为的输出文件。
  • 请附上显示所需行为的预期输出文件。
  • 请附上输出文档有问题部分的屏幕截图。
  • 请创建一个简单的应用程序(没有编译错误的源代码),以帮助我们在我们端重现您的问题并将其附在此处进行测试。

一旦您准备好这些信息,我们将开始调查您的问题并为您提供更多信息。 谢谢你的配合。

PS:要附上这些资源,请压缩并上传它们。

请问下 subst.png 和 works.png 在哪里可以看到呢?

@zhangxiong

我们已经为您的案例创建了此线程。 请关注此线程以进行进一步操作。 请分享您的要求以及问题的详细信息。 然后,我们将提供有关您的查询的更多信息。