使用变量替换在 docx4j 中插入换行符
Insert line break in docx4j with variable replacement
我有一个包含某些变量的模板,我基本上需要用我的数据库中的信息替换这些变量。
当我只想用一个词替换时很容易,我的问题是当我需要像这样换行时:
这两个有 CPF 的人应该来自我的变量,但这就是我得到的:
这就是我的代码,我试过输入“\n”、“
”和“”,其中 none 成功了,现在我' m 把 "\n" 放在我想换行的地方:
private String criaIdentificacaoAssistenciaSocial(Lote lote) throws IOException {
StringBuilder identificacaoAS = new StringBuilder();
for (Pessoa pessoa : lote.getJsonBeneficiarios()) {
PessoaFisica beneficiario = (PessoaFisica) pessoa;
identificacaoAS.append(beneficiario.getNome()).append(", CPF ").append(beneficiario.getCpf());
identificacaoAS.append("\n");
if (beneficiario.getConjuge() != null) {
identificacaoAS.append(beneficiario.getConjuge().getNome()).append(", CPF ").append(beneficiario.getConjuge().getCpf());
identificacaoAS.append("\n");
}
}
return identificacaoAS.toString();
}
我的 return 值进入我的 mappingDocsVariable,然后我使用以下代码生成 docx 文件:
private File geraDocumento(HashMap<String, String> mappingDocVariables, String nomeDocx) throws Exception {
String inputfilepath = System.getProperty("user.dir") + File.separator
+ "utils" + File.separator + nomeDocx + ".docx";
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(inputfilepath));
MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart();
VariablePrepare.prepare(wordMLPackage);
documentPart.variableReplace(mappingDocVariables);
String tDir = System.getProperty("java.io.tmpdir");
File temp = new File(tDir + nomeDocx + ".docx");
Docx4J.save(wordMLPackage, temp);
temp.deleteOnExit();
return temp;
}
处的 newlineToBreakHack
之前在
回答过
我有一个包含某些变量的模板,我基本上需要用我的数据库中的信息替换这些变量。
当我只想用一个词替换时很容易,我的问题是当我需要像这样换行时:
这两个有 CPF 的人应该来自我的变量,但这就是我得到的:
这就是我的代码,我试过输入“\n”、“
”和“
private String criaIdentificacaoAssistenciaSocial(Lote lote) throws IOException {
StringBuilder identificacaoAS = new StringBuilder();
for (Pessoa pessoa : lote.getJsonBeneficiarios()) {
PessoaFisica beneficiario = (PessoaFisica) pessoa;
identificacaoAS.append(beneficiario.getNome()).append(", CPF ").append(beneficiario.getCpf());
identificacaoAS.append("\n");
if (beneficiario.getConjuge() != null) {
identificacaoAS.append(beneficiario.getConjuge().getNome()).append(", CPF ").append(beneficiario.getConjuge().getCpf());
identificacaoAS.append("\n");
}
}
return identificacaoAS.toString();
}
我的 return 值进入我的 mappingDocsVariable,然后我使用以下代码生成 docx 文件:
private File geraDocumento(HashMap<String, String> mappingDocVariables, String nomeDocx) throws Exception {
String inputfilepath = System.getProperty("user.dir") + File.separator
+ "utils" + File.separator + nomeDocx + ".docx";
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(inputfilepath));
MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart();
VariablePrepare.prepare(wordMLPackage);
documentPart.variableReplace(mappingDocVariables);
String tDir = System.getProperty("java.io.tmpdir");
File temp = new File(tDir + nomeDocx + ".docx");
Docx4J.save(wordMLPackage, temp);
temp.deleteOnExit();
return temp;
}
之前在