diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 94fc96f..a0b6e27 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -31,8 +31,8 @@ dependencies { compile 'com.typesafe.akka:akka-actor_2.12:2.5.20' compile 'com.typesafe.akka:akka-slf4j_2.12:2.5.20' compile 'net.sf.barcode4j:barcode4j:2.1' - compile 'net.sf.jasperreports:jasperreports-fonts:6.14.0' - compile 'net.sf.jasperreports:jasperreports:6.14.0' + compile 'net.sf.jasperreports:jasperreports-fonts:6.21.5' + compile 'net.sf.jasperreports:jasperreports:6.21.5' compile 'net.sourceforge.barbecue:barbecue:1.5-beta1' compile 'org.apache.xmlgraphics:batik-bridge:1.10' compile 'org.apache.xmlgraphics:batik-codec:1.10' diff --git a/buildSrc/src/main/scala/com/riege/jasperservice/backend/PDFProducer.scala b/buildSrc/src/main/scala/com/riege/jasperservice/backend/PDFProducer.scala index f2753a4..530ed5e 100644 --- a/buildSrc/src/main/scala/com/riege/jasperservice/backend/PDFProducer.scala +++ b/buildSrc/src/main/scala/com/riege/jasperservice/backend/PDFProducer.scala @@ -5,29 +5,25 @@ package com.riege.jasperservice.backend -import java.io.BufferedOutputStream -import java.net.{URL, URLClassLoader} -import java.util - -import scala.util.control.NonFatal - import akka.actor.{Actor, ActorLogging, Props, Status} - +import better.files.{File, _} +import com.lowagie.text.pdf.PdfWriter import com.riege.jasperservice.FileUtils import com.riege.jasperservice.backend.FormsLoader.PROPERTY_FORM_DIR import com.riege.jasperservice.functions.JasperServiceFunctions import com.riege.jasperservice.model.{PDFDocument, PDFRawData, Simulations} - -import better.files.{File, _} -import com.lowagie.text.DocumentException -import com.lowagie.text.pdf.PdfWriter import net.sf.jasperreports.engine.data.JRMapCollectionDataSource import net.sf.jasperreports.engine.export.JRPdfExporter -import net.sf.jasperreports.engine.{JRParameter, JRPrintText, JasperFillManager, JasperPrint, JasperReport} +import net.sf.jasperreports.engine.{JRParameter, JasperFillManager, JasperPrint, JasperReport} import net.sf.jasperreports.export.`type`.PdfaConformanceEnum import net.sf.jasperreports.export.{SimpleExporterInput, SimpleOutputStreamExporterOutput, SimplePdfExporterConfiguration} import org.apache.batik.ext.awt.image.spi.ImageTagRegistry +import java.io.BufferedOutputStream +import java.net.{URL, URLClassLoader} +import java.util +import scala.util.control.NonFatal + object PDFProducer { val PDF_PERMISSIONS: Int = PdfWriter.ALLOW_PRINTING | @@ -74,7 +70,7 @@ class PDFProducer( val ctx = data.context val formLoader = new FormsLoader(ctx, formsStore) val form = formLoader.getForm(data.formName, Option(ctx.locale)) - val exporter = getJRExporter(data) + val exporter = new JRPdfExporter val printable = createPrintable(data, formLoader, form) val ec = new SimplePdfExporterConfiguration if (data.pdfa) { @@ -131,25 +127,6 @@ class PDFProducer( } } - private def getJRExporter(data: PDFRawData): JRPdfExporter = { - if (data.context.isCMRWaybill) { - // CMR printing requires special handling. - new JRPdfExporter() { - - @throws[DocumentException] - override def exportText(text: JRPrintText): Unit = { - if (text.getFontName.contains("Liberation Mono")) { - pdfContentByte.setHorizontalScaling(118.0f) - } - super.exportText(text) - } - - } - } else { - new JRPdfExporter - } - } - private def createPrintable( data: PDFRawData, formLoader: FormsLoader, diff --git a/buildSrc/src/main/scala/com/riege/jasperservice/model/DocumentContext.scala b/buildSrc/src/main/scala/com/riege/jasperservice/model/DocumentContext.scala index b62cdd6..a63f39c 100644 --- a/buildSrc/src/main/scala/com/riege/jasperservice/model/DocumentContext.scala +++ b/buildSrc/src/main/scala/com/riege/jasperservice/model/DocumentContext.scala @@ -1,12 +1,11 @@ /* - * Copyright (c) 2022 Riege Software International. All rights reserved. + * Copyright (c) 2017 Riege Software International. All rights reserved. * Use is subject to license terms. */ package com.riege.jasperservice.model -import java.io.File -import java.util.{Locale, StringJoiner} +import java.util.Locale object DocumentContext { @@ -92,24 +91,4 @@ final case class DocumentContext( ) { def isCMRWaybill: Boolean = mimeType.startsWith("x-scope/fwd-cmrWaybill-page") - - def toCatchMessage(scopeURL: Option[String], formFile: Option[File]): String = - new StringJoiner("\n") - .add("h2. Environment") - .add(s"|| Scope Domain | $domain |") - .add(s"|| Scope URL | ${scopeURL.getOrElse(systemID)} |") - .add(s"|| Scope Version | $version |") - .add(s"|| Organization | $organizationCode {{($organizationOID)}} |") - .add(s"|| Legal Entity | $legalEntityCode {{($legalEntityOID)}} |") - .add(s"|| Branch | $branchCode {{($branchOID)}} |") - .add(s"|| Country | $countryCode {{($countryOID)}} |") - .add(s"|| Locale | $locale |") - .add(s"|| User | $userID |") - .add("") - .add("h2. Printout") - .add(s"|| Entity OID | {{$entityOID}} |") - .add(s"|| MIME Type | $mimeTypeDescription {{($mimeType)}} |") - .add(s"|| Form File | {{${formFile.map(_.getAbsolutePath).getOrElse("unknown")}}} |") - .toString - }