我使用xDoc报告通过提供docx文件作为输入来生成PDF。当我使用英语docx文件时,一切都很好,当我使用我的其他语言docx文件时,我无法将pdf视为可读。
这是我的代码..
File fil = new File(
"/home/madurauser/analyzer/LOS/DocxProjectWithVelocity1.docx");
FileInputStream in = new FileInputStream(fil);
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(
in, TemplateEngineKind.Velocity);
FieldsMetadata metadata = new FieldsMetadata();
metadata.addFieldAsList("developers.Inst");
metadata.addFieldAsList("developers.MBalance");
metadata.addFieldAsList("developers.MDemand");
metadata.addFieldAsList("developers.MInterest");
metadata.addFieldAsList("developers.MPrincipal");
metadata.addFieldAsList("developers.GBalance");
metadata.addFieldAsList("developers.GDemand");
metadata.addFieldAsList("developers.GInterest");
metadata.addFieldAsList("developers.GPrincipal");
metadata.addFieldAsList("developers.Members");
metadata.addFieldAsList("developers.Month");
report.setFieldsMetadata(metadata);
IContext context = report.createContext();
List<Developer> developers = new ArrayList<Developer>();
List<LoanRepaymentSchedule> repay = this.loanService
.getLoanRepaymentScheduleById(groupLoan.getLoanId()
.longValue());
LoanRepaymentSchedule rep = repay.get(repay.size() - 1);
Project project = new Project(lt, loan.getGroupName(),
lastFiveDigitsAccNo, groupDto.getVillageName(),
groupDto.getCluster(), groupDto.getClusterCentre(),
groupDto.getRegion(), intLoanAmount, loan.getLoanAccNo(),
Long.valueOf(loan.getLoanInstallments()),
loan.getGroupId(), decIntRate, loan.getAnimator(),
loan.getRep1(), loan.getRep2(), noOfDays, brokenPeriod,
sanctionDate, lastFiveDigitsAccNo, strSancDate,
rep.getMemberCount());
context.put("project", project);
for (Iterator iterator = repay.iterator(); iterator.hasNext();) {
LoanRepaymentSchedule loanRepaymentSchedule = (LoanRepaymentSchedule) iterator
.next();
String month;
Integer year = loanRepaymentSchedule.getYear();
Integer formattedDate = year % 100;
developers.add(new Developer(intgBal, intgDem, intgInt,
intgPri, intmBal, intmDem, intmInt, intmPri, month,
loanRepaymentSchedule.getMemberCount(),
loanRepaymentSchedule.getMemberCount(),
loanRepaymentSchedule.getSerialNo()));
context.put("developers", developers);
}
// OutputStream out = new FileOutputStream(new File(conv+".pdf"));
OutputStream out = new FileOutputStream(new File(files + "_" + groupID
+ ".pdf"));
Options options = Options.getTo(ConverterTypeTo.PDF).via(
ConverterTypeVia.XWPF);
report.convert(context, options, out);
这是我的泰米尔语字体docx并作为输入
生成的输出如下所示。
任何想法都将受到赞赏。