使用aspose pdf替换功能,长文字不换行

使用的是aspose pdf for Java 23.9试用版 在文档替换的时候,将 ${合同单位} 替换为:中国某技术有限公司上海分公司中国某技术有限公司上海分公司上海分公司。替换的文字超出文本范围不会自动换行,请问怎么解决?
转换前:劳动合同书(2024电子劳动合同模板) (2).pdf (164.5 KB)

转换后:Out.pdf (465.2 KB)
转换代码是用的这个示例Replace Text in PDF|Aspose.PDF for Java

@SalesDhorde

我们已在内部问题跟踪系统中打开以下新票证,并将根据 Free Support Policies 中提到的条款提供修复。

问题 ID:PDFJAVA-43440

如果您需要优先支持,以及直接联系我们的付费支持管理团队,您可以获取 Paid Support Services

@SalesDhorde

应更新代码,添加有关右边框末尾的配置,以根据所需的右边距和 ReplaceAdjustment 的类型换行:

TextReplaceOptions opt = new TextReplaceOptions();
        opt.setReplaceAdjustmentAction(TextReplaceOptions.ReplaceAdjustment.WholeWordsHyphenation);
        opt.setRightAdjustment(72.0);
        textFragmentAbsorber.setTextReplaceOptions(opt);

完整代码:

Document pdfDocument = new Document(dataDir + "劳动合同书(2024电子劳动合同模板) (2).pdf");

TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("{合同单位}");
TextReplaceOptions opt = new TextReplaceOptions();
opt.setReplaceAdjustmentAction(TextReplaceOptions.ReplaceAdjustment.WholeWordsHyphenation);
opt.setRightAdjustment(72.0);
textFragmentAbsorber.setTextReplaceOptions(opt);

// Accept the absorber for all pages of the document
pdfDocument.getPages().accept(textFragmentAbsorber);

// Get the extracted text fragments into a collection
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Loop through the fragments
for (TextFragment textFragment : textFragmentCollection) {
    textFragment.getRectangle();
    textFragment.setInLineParagraph(true);
    // Update text and other properties
    try {
        textFragment.setText("中国某技术有限公司上海分公司中国某技术有限 司上海分公司上海分公司");
    } catch (Exception e) {
        System.out.println("错误替换文本 : " + e.getMessage());
    }
}

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

out_24_7__WholeWordsHyphenation_72.pdf (346.6 KB)