Преобразование документа odt в pdf с помощью fr.opensagres.xdocreport: переменные остаются пустыми - PullRequest
0 голосов
/ 31 мая 2018

opensagres.xdocreport для преобразования одд документов в PDF в прошлом.Но на этот раз переменные в PDF-документе остаются пустыми, даже несмотря на то, что pojo и контекст имеют всю информацию.Я использую этот код:

private ByteArrayOutputStream makePdf(Object sheet, String file)
{
  final java.util.logging.Logger app = java.util.logging.Logger.getLogger("org.odftoolkit.odfdom.pkg.OdfXMLFactory");
  app.setLevel(java.util.logging.Level.ALL);

  try (InputStream in = DocumentPortImpl.class
        .getResourceAsStream(PATH + file);
        ByteArrayOutputStream out = new ByteArrayOutputStream())
  {
     IXDocReport report = XDocReportRegistry.getRegistry()
           .loadReport(in, TemplateEngineKind.Freemarker);
     IContext context = report.createContext();
     context.put("h", sheet);

     Options options = Options.getFrom(
           fr.opensagres.xdocreport.core.document.DocumentKind.ODT).to(ConverterTypeTo.PDF);

     report.convert(context, options, out);
     return out;
  } catch (IOException | XDocReportException e)
  {
     LOGGER.error("Error producing pdf", e);
     return null;
  }
}

Это лист pojo:

private class HerbarySheetComplete
{
  private String herbary = "";
  private String latinname = "";
  private String author = "";
  private String germanname = "";
  private String book = "";
  private String locality = "";
  private String coordinates = "";
  private String epsg = "";
  private String blur = "";
  private String habitat = "";
  private String person = "";
  private String date = "";
  private String uuid = "";

  public String getHerbary()
  {
     return herbary;
  }

  public void setHerbary(String herbary)
  {
     this.herbary = herbary;
  }

  public String getLatinname()
  {
     return latinname;
  }

  public void setLatinname(String latinname)
  {
     this.latinname = latinname;
  }

  public String getAuthor()
  {
     return author;
  }

  public void setAuthor(String author)
  {
     this.author = author;
  }

  public String getGermanname()
  {
     return germanname;
  }

  public void setGermanname(String germanname)
  {
     this.germanname = germanname;
  }

  public String getBook()
  {
     return book;
  }

  public void setBook(String book)
  {
     this.book = book;
  }

  public String getLocality()
  {
     return locality;
  }

  public void setLocality(String locality)
  {
     this.locality = locality;
  }

  public String getCoordinates()
  {
     return coordinates;
  }

  public void setCoordinates(String coordinates)
  {
     this.coordinates = coordinates;
  }

  public String getEpsg()
  {
     return epsg;
  }

  public void setEpsg(String epsg)
  {
     this.epsg = epsg;
  }

  public String getBlur()
  {
     return blur;
  }

  public void setBlur(String blur)
  {
     this.blur = blur;
  }

  public String getHabitat()
  {
     return habitat;
  }

  public void setHabitat(String habitat)
  {
     this.habitat = habitat;
  }

  public String getPerson()
  {
     return person;
  }

  public void setPerson(String person)
  {
     this.person = person;
  }

  public String getDate()
  {
     return date;
  }

  public void setDate(String date)
  {
     this.date = date;
  }

  public String getUuid()
  {
     return uuid;
  }

  public void setUuid(String uuid)
  {
     this.uuid = uuid;
  }
}

И я ссылаюсь на переменные в документе odt следующим образом:

Herbarium: ${h.herbary!}
Lat. Name: ${h.latinname!} ${h.author!}
Dt. Name:  ${h.germanname!}
Bestimmungsquelle: ${h.book!}
Fundort: ${h.locality!}
Koordinaten: ${h.coordinates!} Länge/Breite
EPSG-Code: ${h.epsg!}, ${h.blur!} Unschärfe
Habitat: ${h.habitat!}
Sammler: ${h.person!}
Funddatum: ${h.date!}
UUID: ${h.uuid!}

У кого-нибудь есть идеи, что может быть не так?Я пытался с версией 1.0.5 и 2.0.1 в качестве зависимости.Единственная информация, которую я получаю, выглядит примерно так:

org.odftoolkit.odfdom.pkg.OdfXMLFactory: атрибут None-ODF создан для loext: contextual-spacing

Я много гуглил, но не смогнайди что нибудь полезное.Заранее спасибо.

1 Ответ

0 голосов
/ 01 июня 2018

Класс HerbarySheetComplete не может быть закрытым, он должен быть открытым !!!

...