Стиль не остается (включая размер шрифта, вес шрифта, цвет шрифта, …) после выполнения слияния почты

#java #styles #aspose #aspose.words #aspose.pdf

#java #стили #aspose #aspose.words #aspose.pdf

Вопрос:

Я работаю с Aspose и сталкиваюсь с этими проблемами:

Стиль, примененный к полям слияния, все потеряно после слияния: пример

Затем я попробовал другой подход, удалив ключевое слово MERGEFIELD внутри кода поля, примененный стиль сохранился должным образом, но не так на самом деле. Поля слияния, которые были удалены, эти ключевые слова скопились поверх документа (пожалуйста, игнорируйте предупреждение об авторских правах): пример

(У меня нет полного разрешения на встраивание изображений здесь, поэтому, пожалуйста, перейдите по ссылке, которую я прикрепил в этом сообщении)

Это мой код для выполнения процесса слияния почты:

 public static void generateMailMergePdfFromJson(Document template, String json, String outputFilePath) throws ParserConfigurationException, SAXException, IOException, Exception {
    //Remove merge field with empty value and if the row are empty=> remove paragraph
    template.getMailMerge().setCleanupOptions(MailMergeCleanupOptions.REMOVE_UNUSED_FIELDS
            | MailMergeCleanupOptions.REMOVE_EMPTY_PARAGRAPHS
            | MailMergeCleanupOptions.REMOVE_UNUSED_REGIONS
            | MailMergeCleanupOptions.REMOVE_CONTAINING_FIELDS);

    ObjectMapper objectMapper = new ObjectMapper();
    JsonNode jsonNode = objectMapper.readTree(json);

    ArrayNode arrayNode = objectMapper.createArrayNode();
    arrayNode.add(jsonNode);

    JsonNode rootNode = objectMapper.createObjectNode();

    ((ObjectNode) rootNode).set(Dictionary.ROOT_TAG_NAME, arrayNode);

    //To call custom merge data with html code
    template.getMailMerge().setFieldMergingCallback(new HandleMergeFieldInsertHtml());

    // Add main merge field based of main root tag name
    template.accept(new TableTagHandler(Dictionary.ROOT_TAG_NAME));
    // Merge fields
    template.getMailMerge().executeWithRegions(new JsonMailMergeDataSet(new JsonDocument(rootNode, Dictionary.ROOT_TAG_NAME)));

    template.save(outputFilePath, SaveFormat.PDF);
}
  

Любой, кто работал с Aspose, пожалуйста, дайте мне совет по этому поводу.

Комментарии:

1. Похоже, вы столкнулись с этой проблемой со вставленным HTML. Я предлагаю вам использовать второй параметр DocumentBuilder. Метод insertHtml как true. Я работаю с Aspose в качестве евангелиста разработчика.

2. Большое спасибо, ваше предположение верно