天道酬勤,学无止境

如何删除使用 JasperReports (jrxml) 生成的 PDF 中不必要的换行?(How to remove unnecessary wrapping in PDF, generated using JasperReports (jrxml)?)

问题

我正在使用 jasper 报告生成我的 PDF 报告。 我在jrxml文件中使用以下textField配置。

<textField isStretchWithOverflow="true" isBlankWhenNull="true">
                    <reportElement uuid="ec0e2f1f-82d6-46fd-ba68-394be7f6b015" positionType="Float" stretchType="RelativeToTallestObject" isPrintRepeatedValues="false" mode="Transparent" x="0" y="0" width="100" height="16" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true"/>
                    <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="0">
                        <pen lineColor="#757575"/>
                        <topPen lineWidth="0.0"/>
                        <leftPen lineWidth="1.0"/>
                        <bottomPen lineWidth="1.0"/>
                        <rightPen lineWidth="0.0"/>
                    </box>
                    <textElement textAlignment="Left" verticalAlignment="Top" markup="none">
                        <font size="11"/>
                        <paragraph lineSpacing="Single"/>
                    </textElement>
                    <textFieldExpression><![CDATA[$F{firstName}]]></textFieldExpression>
                </textField>

导出 PDF 时,它将显示如下屏幕截图所示的记录。 在第一条记录中,第二没有单个字符。 即使它的行为类似于文本换行。 我认为必须有任何解决方案。 如果有人解决了这个问题,请帮助我。
在这里,我提供整个 PDF 文件的链接。

jasper 报告导出的 pdf 文件 screen-sht

回答1

示例 PDF 使用字体 Helvetica(由 PDF 查看器提供),JasperReports 在一般预编译报告时肯定不会使用该字体。

如果像这样使用不同的字体(具有不同的字体规格),输出中的字段可能会变得太大或太小。 因此,我建议明确设置字体,并使用fontNamepdfFontName属性来指示相同的 TTF 字体。 或者,这可以使用 JasperReports 字体扩展更干净地完成。 参见 JasperReports - 字体示例了解详情。

fontNamepdfFontName

例如,假设您在 Windows 环境中工作并拥有适当的权限(否则只需调整路径以指向您的字体副本),您可以像这样使用 Arial:

<textField isStretchWithOverflow="true" isBlankWhenNull="true">
    <reportElement positionType="Float" stretchType="RelativeToTallestObject" isPrintRepeatedValues="false" mode="Transparent" x="0" y="0" width="100" height="16" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="e4335197-b9f6-4d24-9ea0-ef582bcc8393"/>
    <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="0">
        <pen lineColor="#757575"/>
        <topPen lineWidth="1.0"/>
        <leftPen lineWidth="1.0"/>
        <bottomPen lineWidth="1.0"/>
        <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Left" verticalAlignment="Top" markup="none">
        <font fontName="Arial" size="11" pdfFontName="c:\Windows\Fonts\arial.ttf" isPdfEmbedded="true"/>
    </textElement>
    <textFieldExpression><![CDATA[$F{firstName}]]></textFieldExpression>
</textField>

PDF 是 JasperReports 中的一个特例,因为与大多数其他输出格式(使用系统字体)相比,PDF 查看器首先使用每个 PDF 查看器必须提供的标准 14 种字体中的一种或嵌入到相应 PDF 文档中的字体; 因此,PDF 文件的生成略有不同。

字体扩展

更简洁的方法要求您编写一个文件来定义包含所有相关信息的字体系列,例如

<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
    <fontFamily name="Verdana">
        <normal>admin/plugins/ireport/config/fonts/verdana.ttf</normal>
        <bold>admin/plugins/ireport/config/fonts/verdanab.ttf</bold>
        <italic>admin/plugins/ireport/config/fonts/verdanai.ttf</italic>
        <boldItalic>admin/plugins/ireport/config/fonts/verdanaz.ttf</boldItalic>
        <pdfEncoding>Identity-H</pdfEncoding>
        <pdfEmbedded>true</pdfEmbedded>
    </fontFamily>
</fontFamilies>

(从该文件 (verdana*.ttf) 中引用的字体是 Microsoft“TrueType core fonts for the Web”集合的一部分。可以在 eula.html 中找到使用它们的许可协议,目前(截至 2011-04 -01) 可在 http://www.microsoft.com/typography/fontpack/eula.htm 上找到。)

然后,您需要告诉 JasperReports 字体扩展从该文件中检索其信息,如 JasperReports 字体扩展示例中所述,即通过在根包中提供一个jasperreports_extension.properties文件,其中包含

net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory 
net.sf.jasperreports.extension.simple.font.families.dejavu=my_path/fonts.xml 

(指向的 fonts.xml 就是上面提到的文件。)

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何将报告导出到PDF / A-1a,PDF / A-1b?(How can I export report to PDF/A-1a, PDF/A-1b?)
    问题 在jasper-report中生成PDF / A包含许多陷阱,并且在某些版本的jasper-report中不受支持。 这就是为什么我决定通过这种问答uestion-是nswer后,表示要与输出的图形到PDF的简单报告的步骤和库版本/ A 样本数据(usersRep.csv) +----------------+--------+ | User | Rep | +----------------+--------+ | Jon Skeet | 854503 | | Darin Dimitrov | 652133 | | BalusC | 639753 | | Hans Passant | 616871 | | Me | 5640 | +----------------+--------+ 样本jrxml (reputation.jrxml) <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net
  • java中World转PDF
    PDF文档简介 PDF(Portable Document Format的简称,意为“便携式文件格式”)是由Adobe Systems在1993年用于文件交换所发展出的文件格式。 PDF格式的文档的使用有如下好处: 1、跨平台 PDF文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的。不受平台的限制。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件开始使用PDF格式文件。 2、安全性高,不易修改 PDF是一种通用文件格式,不管创建源文档时使用的是哪些应用程序和平台,它均可以保留任何源文档的字体、图像、图形和版面设置。已成为世界上安全可靠地分发和交换电子文档及电子表单的实际标准。 3、阅读性能高,阅读舒适性好。 4、 相比Word格式的文档,PDF文件格式更为正式。 而WORD文档在跨平台使用方面不如PDF方便,而且WORD文档是可以进行编辑修改的,在安全性和可靠性上不如PDF,而且往往很难反映出用其它编辑软件排版的版面信息,使用上有一定的局限性。 所以,现在网站导出PDF也是比较普遍的,我们今天主要的课程就是学习如果导出PDF文件。 Word转PDF 1 场景说明 把Word转成PDF目前最简单的方式就是调用office的方法,本质上就是打开Word后另存为成pdf,通过什么方式来调用呢? 使用
  • JasperReports:如何在jsp页面中调用报告(JasperReports: How to call the report in jsp page)
    问题 我使用iReport 3.7.4 version制作了一份jasper报告,现在我必须使用该报告或在我使用servlet,jsp和struts框架,apache tomcat作为服务器的java应用程序中调用该报告。 我想要一些有关如何调用jasper报告的步骤。 回答1 在iReport中编译报告将编译后的报告放在类路径上加载它JasperReport jasperReport = (JasperReport) JRLoader.loadObject(inputStream); 用数据填充它。 dataSource是您拥有的DataSource实例-例如BeanCollectionDataSource JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, dataSource); 导出它JRPdfExporter exporter = new JRPdfExporter(); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream); exporter.exportReport(); 上面的outputStream可以是response.getOutputStream(
  • Jasper Reports 中的子报表(Subreports in Jasper Reports)
    问题 我有两个表格要打印在同一页上。 这些表的数据将由来自自定义数据源的地图提供。 我需要实现它。 我用谷歌搜索来实现这个任务。 当时我遇到了子报表的概念,但我没有得到太多关于如何实现子报表的信息。 我知道如何创建子报告。 但我不知道如何使用自定义数据源填充子报告。 这是我的问题。 请帮助我实现这一目标。 注意:我尝试实现子报表,但出现错误。 这是我用于编译子报表的代码: JasperPrint print = new JasperPrint(); JRPdfExporter exporter = new JRPdfExporter(); JasperDesign design, design1; JasperReport report, report1; JasperReport jasperReport; JasperDesign jd1; jd1 = JRXmlLoader.load("D:\\sub_report1.jrxml"); jasperReport = JasperCompileManager.compileReport(jd1); Map parameters = new HashMap(); parameters.put("ReportTitle", "Table Report"); parameters.put("DataFile",
  • 将JasperReports与相对路径一起使用(Using JasperReports with a relative path)
    问题 我有一个Web应用程序,客户端已请求查看一些报告。 方法是使用iReport并在屏幕上向他们显示报告。 我已经问过这样的事情。 但是今天我发现报告文件(jrxml)的路径是绝对的。 因此,我必须更改程序,使其接受相对路径。 我一直在尝试执行此操作,但是似乎jrxml或已编译(.jasper)文件都不接受相对路径,既不能编译也不能填充报告。 这就是我到目前为止所得到的: //path is generated as request.getContextPath() + "/jrxmlFiles/" public void generateReport(HttpServletResponse res, ConexionAdmin con, String path) throws Exception{ ServletOutputStream out = null; ByteArrayOutputStream bos = new ByteArrayOutputStream(); JasperDesign jasperDesign = JRXmlLoader.load(path); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); byte[] bytes =
  • 字体无法用于Jasper Reports的JVM(Font is not available to the JVM with Jasper Reports)
    问题 我正在尝试使用DynamicJasper生成报告,但出现以下错误: net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'Arial' is not available to the JVM. msttcorefonts已安装,但是我想JVM没有使用它的任何字体。 我正在使用Ubuntu 10.04。 我怎样才能解决这个问题? 回答1 我尝试安装mscorefonts,但是该软件包已安装且是最新的。 sudo apt-get update sudo apt-get install ttf-mscorefonts-installer 我尝试使用以下方法在文件系统中搜索字体: ls /usr/share/fonts/truetype/msttcorefonts/ 该文件夹仅包含自述文件,以及有关如何安装的正确说明。 cat /usr/share/fonts/truetype/msttcorefonts/README 您需要为此连接互联网: sudo apt-get install --reinstall ttf-mscorefonts-installer 我重新安装了ttf-mscorefonts-installer (如上所示,确保接受EULA!),问题已解决。 回答2
  • cvc-complex-type.3.2.2属性'uuid'不允许出现在元素'jasperreport'中(cvc-complex-type.3.2.2 attribute 'uuid' is not allowed to appear in element 'jasperreport')
    问题 下载了适用于Linux的iReport-4.6.0,并且通过File-> New ...菜单创建新报告时,新报告未显示在预览中,但错误消息cvc-complex-type.3.2.2 attribute 'uuid' is not allowed to appear in element 'jasperreport' 。 即使在选项中选择兼容性4.5.0,也会发生相同的错误消息。 当打开由iReport-4.6.0(Windows)的其他用户生成的报告文件时,也会发生相同的错误消息。 报告文件的架构位于http://jasperreports.sourceforge.net/xsd/jasperreport.xsd ,但该架构文件未提及任何uuid 。 可能是什么问题呢? 回答1 我找到了答案: 我使用notepad ++打开了JRXML文件,并执行了uuid="\w*-\w*-\w*-\w*-\w*"的“搜索和替换uuid="\w*-\w*-\w*-\w*-\w*" ,然后选择了REGULAR EXPRESSION,其中包含空字符串,然后全部该错误标签的出现已被删除。 为我工作。 回答2 在iReport Designer中,可以在选项窗口中将兼容模式更改为所需的版本。 对我来说,如果我与jasperreport 3.5.1兼容,那么当我再次保存报告时
  • Jasper 报告:JRBeanCollectionDataSource 无法解析为类型(Jasper Reports: JRBeanCollectionDataSource cannot be resolved to a type)
    问题 我正在 iReports 中构建图表,当我在 Eclipse 中编译时,出现以下错误: net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. net.sf.jasperreports.engine.JRBeanCollectionDataSource cannot be resolved to a type value = new net.sf.jasperreports.engine.JRBeanCollectionDataSource(((java.lang.String)field_chartData46xAxis.getValue())); //$JR_EXPR_ID=11$ <----------------------------------------------------> 2. net.sf.jasperreports.engine.JRBeanCollectionDataSource cannot be resolved to a type value = new net.sf.jasperreports.engine.JRBeanCollectionDataSource((
  • 使用iReport使用markup =“ html”时,报告以PDF文件格式生成时,文本对齐问题(Text alignment issue with report generated as PDF file when using markup=“html” using iReport)
    问题 我有以下要打印在PDF中的数据, 101 HARRIER WAY<br>OMVILLE<br>BELLSHIRE<br>OM1 1HA<br> 它需要以以下方式显示, 101 HARRIER WAY OMVILLE BELLSHIRE OM1 1HA 但是像下面这样打印吗? 更新: 当我用其他文字代替OMVILLE说 101 HARRIER WAY<br>HELLO WORLD BANGALORE<br>BELLSHIRE<br>OM1 1HA<br> 它运作良好。 我不知道为什么当我给OMVILLE时它OMVILLE 代码: <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="accountStatement" pageWidth=
  • 从JSON对象或JSON字符串创建Jasper Report PDF表单(Create Jasper Report PDF form from JSON Object or JSON String)
    问题 使用JRBeanCollectionDataSource创建Jasper报表(PDF,Excel,Csv)很好。 这意味着.jrxml文件接受pojo的集合作为输入来处理报告。 现在,我一直在尝试使用相同的.jrxml从JSON Object创建jasper报告。 我尝试了以下操作,但pdf报告中的所有值都为空 Resource resource = new ClassPathXmlApplicationContext().getResource("classpath:reports/project.jrxml"); JsonDataSource ds = new JsonDataSource(new File("c:\myjson.json")); jasperDesign = JRXmlLoader.load(resource.getInputStream()); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, ds); JasperExportManager.exportReportToPdfFile
  • 如何在Spring MVC中使用JasperReports?(How to use JasperReports with Spring MVC?)
    问题 我一直在研究将JasperReports(6.0.0)与Spring MVC(4.1.3)结合使用以生成PDF报告。 Spring充斥着与JasperReports集成以生成PDF的“特定于Spring”的方式: 使用JasperReportsPdfView依赖于现已弃用的JasperReport功能使用JasperReportsMultiFormatView 使用JasperReportsViewResolver 我在网上很难找到好的,完整的示例,并想分享我的发现(请参阅下面的答案)。 随意添加与“如何将JasperReports与Spring4集成”相关的其他方法和/或改进? 回答1 根据我的研究,我发现了以下使用方法。 这些方法从最直接的(幼稚的)方法开始,涉及较少的前期复杂性/配置,并逐渐演变为更加抽象的方法,但对Spring的依赖性更大/对Spring的配置更加复杂。 方法1:直接在控制器中使用JasperReports API 只需将内容写出到servlet输出流中即可。 @RequestMapping(value = "helloReport1", method = RequestMethod.GET) @ResponseBody public void getRpt1(HttpServletResponse response) throws
  • JasperReport-换行以在文本字段中显示长文本(JasperReport - wrap text to show long text in textfield)
    问题 我在应用程序中使用jasper report作为报告工具。 我想知道如何通过将reportElement动态扩展到垂直方向(扩展行大小,而不是列宽)来包装长文本。 还是有什么办法可以做到这一点? 我下面的方法是截断长文本“ Some very long name ”。 你能给我一些建议吗? 输出 : import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; import net.sf.jasperreports.engine.design
  • jasperport+studio+vue+springboot 实现pdf预览
    思路:使用studio生成模板,将模板导入java代码,读取模板并设值,返回二进制流或者地址给前端使用blob存储流,然后打开文件。 模板生成工具可以用ireport或者studio 主要的坑ireport只支持jdk1.7一下,建议使用studio,我使用的是ireport,高于jdk1.7的会出现一些题:比如工具闪退,工具无法加入驱动包,导致无法连接到数据库。 ireport是基于jdk开发的,这里也可以直接安装jdk1.7后直接配置irepor的conf 文件 jdkhome=“D:\software\jdk” 连接数据库方式:javabean,jdbc连接 这里介绍javabean的方式连接 详细资料请参考 https://blog.csdn.net/u013516966/article/details/43502593 https://wenku.baidu.com/view/449dfa31a517866fb84ae45c3b3567ec102ddca4.html https://blog.csdn.net/u012369153/article/details/54598473/ studio使用方法同ireport相似 这是jrxml的生成对比 可以看见是结果是一样的。 (一)用ireport5.6模板工具生成pdf报表模板,并保存得到.jasper与
  • 如何编译jrxml以获取jasper?(How do I compile jrxml to get jasper?)
    问题 我有jrxml文件,我想将其编译为.jasper 。 如何编译并获取该jasper文件? 回答1 有三种方法可以将jrxml编译为jasper。 您可以通过iReport设计器上的“编译”按钮(锤形徽标)进行直接编译。 您可以使用ant进行编译,如Ant编译示例中所示。 <target name="compile1"> <mkdir dir="./build/reports"/> <jrc srcdir="./reports" destdir="./build/reports" tempdir="./build/reports" keepjava="true" xmlvalidation="true"> <classpath refid="runClasspath"/> <include name="**/*.jrxml"/> </jrc> </target> 以下是我当前项目的报告编译任务。 Daniel Rikowski的补充: 您还可以使用JasperCompileManager类从Java代码进行编译。 JasperCompileManager.compileReportToFile( "our_jasper_template.jrxml", // the path to the jrxml file to compile "our_compiled_template
  • Springboot+jasperReport+ireport5.6(模板工具)+vue+pdf.js实现pdf文件流在前端预览打印
    (一)用ireport5.6模板工具生成pdf报表模板,并保存得到.jasper与.jrxml两个文件 (二)将这两个文件拷贝到springboot项目的resources目录下 (三)所需要的jar包maven依赖 <!--报表相关--> <dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>6.0.0</version> </dependency> <dependency> <!-- 生成pdf所依赖的包 --> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.11</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-pdfa</artifactId> <version>5.5.11</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId>
  • 将报告导出为PDF时,更改字体(When export a report to PDF change the font)
    问题 我正在使用Jaspersoft Studio 5.2 ,并且使用Courier New字体做了一个报告,当我将其导出为PDF时,它将字体更改为Arial 。 我只使用Studio工具。 当我预览报表时可以,但是在导出时会发生。 我的报告可以用Courier New字体导出怎么办? 我在报表中使用的textField模型: <textField pattern="dd/MM/yyyy HH:mm:ss"> <reportElement uuid="f50b279a-b480-498f-8af7-be7e23c4b80b" x="415" y="11" width="105" height="10"/> <textElement> <font fontName="Courier New" size="8"/> </textElement> <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> </textField> 回答1 您应该使用字体扩展机制。 脚步 在Jaspersoft Studio中创建字体 您应该使用“窗口”->“首选项”对话框创建新字体: 在“字体系列”对话框中,您可以为字体设置ttf文件: 创建报告的样式 您应该借助上下文菜单创建新样式: 之后
  • 如何从jasper报表中导出到Excel中的多个工作表(How to export to multiple sheets in excel from jasper report)
    问题 我正在使用iReport处理包含许多子报表的报表。 从我的应用程序生成报告时,我想在excel文件中另放两张纸。 在互联网上搜索时,我发现有关在报表中创建中断的答案,在子报表“ true”中具有“忽略分页”选项,但对我来说仍然不清楚。 我有什么选择来控制如何以及何时创建新工作表 回答1 在jasper report中,在jrxml和java代码中都有不同的方法来实现新的工作表。 默认行为是为每个页面创建一个新工作表。 我将说明3种最常见的使用方式,但存在相对问题。 忽略分页和中断元素 方法 在jasperReport标记上设置isIgnorePagination="true"并添加 <break> <reportElement x="0" y="0" width="100" height="1" uuid="c5371aa4-2eb4-4ab9-8cae-39f50da3317b"/> </break> 当您需要一张新纸时。 问题:如果您还导出为pdf,报告将不会很漂亮(因为它忽略了分页) 使用jrxml属性 方法为了避免在每个新页面上创建新工作表,请设置属性 net.sf.jasperreports.export.xls.one.page.per.sheet="false" 并且当您希望它在reportElement之前或之后添加新属性来创建新工作表时: net.sf
  • jasperrepots-fonts jar有什么用途,如何使用?(What is the jasperrepots-fonts jar for and how to use it?)
    问题 我正在评估JasperReports的报告生成。 我在Windows和Linux之间的报表可移植性方面遇到一些问题。 我找到了一个(骇客的)解决方案以使其能够跨平台工作。 但是我想知道jasperreports-fonts是什么: <dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports-fonts</artifactId> <version>5.6.1</version> </dependency> 我看到它包含DejaVu Sans字体,但是我不知道如何使用此jar(我在网上找不到任何东西),以及是否可以用一种优雅,简单的方式解决我的跨平台软件问题。 您能告诉我更多有关这个罐子的信息吗? 回答1 在jasper报表(.jrxml文件)中,可以使用几种字体来显示标签/文本。 这些字体可能并不总是在不同的平台/操作系统上可用。 (例如,除非手动安装,否则某些Linux字体在Linux机器上不可用)。 因此,我们将jasper report中使用的字体捆绑到jar中,使它们不管底层平台如何都能工作。 此外,您可以在字体扩展jar中包含自己的(自定义创建的)字体,并将其与jasper报告一起发送。 更多信息在这里。 还有几种配置和使用此jar的方法。 看看这是最简单的方法之一。
  • 导出为pdf时如何正确渲染印地文?(How can I render hindi correctly when exporting to pdf?)
    问题 我正在使用i-report 5.5.0进行jasper报告。 我需要将印地语文本导出为PDF格式,但印地语部分已转换为??????? 。 我已经使用了字体扩展名,但没有帮助: 字体名称:“ lohit Devanagari” 内嵌PDF :已选中 PDF编码:Identity-H 我也尝试过其他印地语字体,但到目前为止没有任何效果。 <textField> <reportElement x="111" y="26" width="100" height="20" uuid="5a471a16-de7b-4f55-9c9f-b01d37938b9f"/> <textElement> <font fontName="Lohit Devanagari" pdfEncoding="Identity-H" isPdfEmbedded="false"/> </textElement> <textFieldExpression><![CDATA[$F{DISTRICT_NAME}]]></textFieldExpression> </textField> 回答1 正确的方法是使用字体扩展。 pdfEncoding="Identity-H"已弃用。 首先清除此清单,以pdf格式呈现字体: 是否支持我的实际.tff (OpenType),并且该字体可以实际呈现字符.tff ?
  • 碧玉文本字段被截断(jasper text field getting truncated)
    问题 我在jasper报告中遇到字体问题,在PDF和PDF预览中,我的一个比较冗长的文本字段(详细信息区域中的最后一个)被截断了,而在内部预览中却截断了。 例如 内部预览: Here is a fake description. It fits perfectly, fitting just in the lines. PDF预览 Here is a fake description. It fits perfectly, fitting just in the 贾斯珀(似乎)正在使用某种算法来计算该字段应该有多高,我的文本勉强适合,然后在生成PDF时,该文本将自动换行并消失在下一行。 我没有使用自定义字体(只是默认的/隐式的“ SansSerif”),也没有使用除粗体/斜体之外的任何自定义样式。 在iReport的PDF Preview和我的代码在Windows和MacOS上生成的PDF中都可以证明这种行为(Linux可能仍然有此问题,但是我的示例文本在Ubuntu上没有表现出这种行为)。 我玩过“拉伸类型”,“位置类型”和“带有溢出的拉伸”,并将此文本字段移到了自己的乐队,但没有一个可以解决此错误(其中一些会导致其他问题)。 我很幸运将字体更改为其他内置字体,但这只是告诉我我的示例不适用于该特定字体,不是我已经修复了该错误。 任何提示将非常感谢。 更新1 我尝试将Jasper