0

I am using xDoc report to generate PDF by giving the docx file as input. everything is fine when I used English docx file, when I used my other language docx file I couldn't get the pdf as readable.

here is my code..

        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);

This is my tamil font docx and gave as a input

enter image description here

The generated output looks like below. enter image description here

Any ideas in this would be appreciated.

DevGo
  • 1,045
  • 1
  • 16
  • 42

0 Answers0