jasper-reports - 设置字体不影响输出 excel 文件中单元格的外观
问题描述
我尝试在 xlsx 中给出波斯语文本和数字。我希望数字以阿拉伯语和波斯语显示
如您所见,应用了波斯字体,数字是波斯语但不是 xlsx
如您所见,字体已设置但未应用另一方面,“B Farnaz”字体已安装在 Windows 操作系统中
<?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="rptReport"
pageWidth="842"
pageHeight="595"
orientation="Landscape"
columnWidth="802"
leftMargin="20"
rightMargin="20"
topMargin="20"
bottomMargin="20"
whenNoDataType="AllSectionsNoDetail">
<property name="net.sf.jasperreports.export.xlsx.exclude.origin.band.1" value="pageHeader"/>
<property name="net.sf.jasperreports.export.xlsx.exclude.origin.band.2" value="pageFooter"/>
<property name="net.sf.jasperreports.export.xlsx.exclude.origin.band.3" value="title"/>
<property name="net.sf.jasperreports.crosstab.ignore.width" value="true"/>
<style name="textStyle" hTextAlign="Center" vTextAlign="Middle" fontName="B Farnaz" fontSize="10" pdfFontName= "C:/fonts/nazanin.ttf" pdfEncoding="Identity-H"/>
<parameter name="reportName" class="java.lang.String"/>
<parameter name="currentDate" class="java.lang.String"/>
<parameter name="number" class="java.lang.String"/>
<parameter name="pageName" class="java.lang.String"/>
<parameter name="ofName" class="java.lang.String"/>
<parameter name="logo" class="java.io.InputStream"/>
<field name="count" class="java.lang.Integer"/>
<field name="organizationId" class="java.lang.String"/>
<field name="orgName" class="java.lang.String"/>
<field name="orgCode" class="java.lang.String"/>
<field name="orgTypeName" class="java.lang.String"/>
<field name="positionId" class="java.lang.String"/>
<field name="title" class="java.lang.String"/>
<field name="orgParentName" class="java.lang.String"/>
<title>
<band height="61">
<rectangle>
<reportElement x="0" y="0" width="802" height="60" uuid="e0e43037-9be9-410e-9e49-9f03a811629b"/>
<graphicElement>
<pen lineWidth="0.75"/>
</graphicElement>
</rectangle>
<staticText>
<reportElement x="70" y="13" width="40" height="20" uuid="80c01bc2-7498-4a53-9183-9716832fa86e"/>
<textElement textAlignment="Left">
<font fontName="B Farnaz" size="14" pdfFontName= "C:/Users/m.shadkam/Desktop/PORTAL/portal-server/src/main/resources/report/fonts/nazanin.ttf" pdfEncoding="Identity-H"/>
</textElement>
<text><![CDATA[تاريخ :]]></text>
</staticText>
<staticText>
<reportElement x="70" y="35" width="40" height="20" uuid="df222e3e-0a63-4cff-8b4a-7b7d6cdad5b2"/>
<textElement textAlignment="Left">
<font fontName="B Farnaz" size="14" pdfFontName= "C:/Users/m.shadkam/Desktop/PORTAL/portal-server/src/main/resources/report/fonts/nazanin.ttf" pdfEncoding="Identity-H"/>
</textElement>
<text><![CDATA[شماره :]]></text>
</staticText>
<image hAlign="Right">
<reportElement x="690" y="13" width="110" height="44" uuid="6b166494-6df6-4472-8140-da4f93644616"/>
<imageExpression><![CDATA[$P{logo}]]></imageExpression>
</image>
<textField>
<reportElement x="3" y="35" width="65" height="20" uuid="52b5428c-f329-4d65-be61-51e529269ca7"/>
<textElement textAlignment="Right" verticalAlignment="Middle">
<font fontName="B Farnaz" pdfFontName= "C:/fonts/BNAZANIN.TTF" pdfEncoding="Identity-H"/>
</textElement>
<textFieldExpression><![CDATA[$P{number}]]></textFieldExpression>
</textField>
<textField pattern="">
<reportElement x="0" y="1" width="802" height="35" uuid="c9904a66-50ba-4cee-9fa9-b6b29feec8b0"/>
<textElement textAlignment="Center" verticalAlignment="Top">
<font fontName="B Farnaz" size="14" pdfFontName= "C:/fonts/titr.ttf" pdfEncoding="Identity-H"/>
</textElement>
<textFieldExpression><![CDATA[$P{reportName}]]></textFieldExpression>
</textField>
<textField pattern="">
<reportElement x="3" y="13" width="65" height="20" uuid="fdc85694-ba29-4858-915e-23399415a806"/>
<textElement textAlignment="Right" verticalAlignment="Middle">
<font fontName="B Farnaz" pdfFontName= "C:/fonts/BNAZANIN.TTF" pdfEncoding="Identity-H"/>
</textElement>
<textFieldExpression><![CDATA[$P{currentDate}]]></textFieldExpression>
</textField>
</band>
</title>
<pageHeader>
<band height="20">
<textField>
<reportElement x="739" y="0" width="63" height="20" />
<textElement textAlignment="Right">
<font fontName="B Farnaz" pdfFontName="C:/fonts/BNAZANIN.TTF" pdfEncoding="Identity-H"/>
</textElement>
<textFieldExpression><![CDATA[$P{pageName} + " " + $V{PAGE_NUMBER} + " " + $P{ofName} +" " + $V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
</band>
</pageHeader>
<pageFooter>
<band height="23" splitType="Stretch">
<textField>
<reportElement x="0" y="2" width="802" height="20" uuid="b8f61bae-86d8-4a73-8c23-3484b431a65e"/>
<textElement textAlignment="Center">
<font fontName="B Farnaz" pdfFontName= "C:/fonts/BNAZANIN.TTF" pdfEncoding="Identity-H"/>
</textElement>
<textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
</band>
</pageFooter>
<summary>
<band height = "79">
<crosstab ignoreWidth="true">
<reportElement x="0" y="0" height="79" width="500"/>
<crosstabHeaderCell>
<cellContents backcolor="#F0F8FF" mode="Opaque">
<box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<textField>
<reportElement style="textStyle" x="100" y="0" width="100" height="100" />
<box>
<topPen lineWidth="0.5"/>
<leftPen lineWidth="0.5"/>
<bottomPen lineWidth="0.5"/>
<rightPen lineWidth="0.5"/>
</box>
<textFieldExpression><![CDATA["اداره امور"]]></textFieldExpression>
</textField>
<textField>
<reportElement style="textStyle" x="0" y="0" width="100" height="100" />
<box>
<topPen lineWidth="0.5"/>
<leftPen lineWidth="0.5"/>
<bottomPen lineWidth="0.5"/>
<rightPen lineWidth="0.5"/>
</box>
<textFieldExpression><![CDATA["واحد/کادر"]]></textFieldExpression>
</textField>
</cellContents>
</crosstabHeaderCell>
<rowGroup name="orgName" width="100" totalPosition="End">
<bucket class="java.lang.String">
<bucketExpression><![CDATA[$F{orgName}]]></bucketExpression>
</bucket>
<crosstabRowHeader>
<cellContents backcolor="#F0F8FF" mode="Opaque">
<box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<textField>
<reportElement style="textStyle" x="0" y="0" width="100" height="25" uuid="722e2c03-df3c-4012-aecf-91b7a8bad18d"/>
<textFieldExpression><![CDATA[$V{orgName}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabRowHeader>
<crosstabTotalRowHeader>
<cellContents backcolor="#BFE1FF" mode="Opaque">
<box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<staticText>
<reportElement style="textStyle" x="0" y="0" width="200" height="25" uuid="4e9afca3-c0a3-4182-b3ce-9afb39fd3468"/>
<text><![CDATA[کل]]></text>
</staticText>
</cellContents>
</crosstabTotalRowHeader>
</rowGroup>
<rowGroup name="orgParentName" width="100" totalPosition="End">
<bucket class="java.lang.String">
<bucketExpression><![CDATA[$F{orgParentName}]]></bucketExpression>
</bucket>
<crosstabRowHeader>
<cellContents backcolor="#F0F8FF" mode="Opaque">
<box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<textField>
<reportElement style="textStyle" x="0" y="0" width="100" height="25" uuid="63804c09-f3f6-401f-8598-fa2e35860a8f"/>
<textFieldExpression><![CDATA[$V{orgParentName}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabRowHeader>
<crosstabTotalRowHeader>
<cellContents backcolor="#BFE1FF" mode="Opaque">
<box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
</cellContents>
</crosstabTotalRowHeader>
</rowGroup>
<columnGroup name="title" height="100" totalPosition="End">
<bucket class="java.lang.String">
<bucketExpression><![CDATA[$F{title}]]></bucketExpression>
</bucket>
<crosstabColumnHeader>
<cellContents backcolor="#F0F8FF" mode="Opaque">
<box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<textField>
<reportElement style="textStyle" x="0" y="0" width="25" height="100" uuid="7edd05fd-4252-404d-bb82-54a705040663"/>
<textElement rotation="Left"/>
<textFieldExpression><![CDATA[$V{title}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabColumnHeader>
<crosstabTotalColumnHeader>
<cellContents backcolor="#BFE1FF" mode="Opaque">
<box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<staticText>
<reportElement style="textStyle" x="0" y="0" width="25" height="100" uuid="de037370-9595-4ab0-8d55-ec94159f9ca0"/>
<textElement rotation="Left"/>
<text><![CDATA[کل]]></text>
</staticText>
</cellContents>
</crosstabTotalColumnHeader>
</columnGroup>
<measure name="countMeasure" class="java.lang.Integer" calculation="Sum">
<measureExpression><![CDATA[$F{count}]]></measureExpression>
</measure>
<crosstabCell width="25" height="25">
<cellContents>
<box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<textField>
<reportElement style="textStyle" x="0" y="0" width="25" height="25" uuid="2de587ed-74f0-46c2-8425-5a4e9bd120e6"/>
<textFieldExpression><![CDATA[$V{countMeasure}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabCell>
<crosstabCell height="25" rowTotalGroup="orgName">
<cellContents backcolor="#BFE1FF" mode="Opaque">
<box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<textField>
<reportElement style="textStyle" x="0" y="0" width="25" height="25" uuid="e7dd4c40-847f-4df0-b910-f99566746ecb"/>
<textFieldExpression><![CDATA[$V{countMeasure}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabCell>
<crosstabCell width="25" columnTotalGroup="title">
<cellContents backcolor="#BFE1FF" mode="Opaque">
<box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<textField>
<reportElement style="textStyle" x="0" y="0" width="25" height="25" uuid="2ed6a617-5440-4bee-931e-dc4e16f0539d"/>
<textFieldExpression><![CDATA[$V{countMeasure}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabCell>
<crosstabCell rowTotalGroup="orgName" columnTotalGroup="title">
<cellContents backcolor="#BFE1FF" mode="Opaque">
<box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<textField>
<reportElement style="textStyle" x="0" y="0" width="25" height="25"/>
<textFieldExpression><![CDATA[$V{countMeasure}]]></textFieldExpression>
</textField>
</cellContents>
</crosstabCell>
<crosstabCell height="0" rowTotalGroup="orgParentName">
<cellContents backcolor="#BFE1FF" mode="Opaque">
<box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
</cellContents>
</crosstabCell>
<crosstabCell height="0" rowTotalGroup="orgParentName" columnTotalGroup="title">
<cellContents backcolor="#BFE1FF" mode="Opaque">
<box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
</cellContents>
</crosstabCell>
</crosstab>
</band>
</summary>
</jasperReport>
我在报告中使用了波斯字体,但是这种波斯字体在报告的xlsx版本中没有应用,但在pdf版本中正确应用。
我也使用字体异常来解决这个问题,但它不适用于 excel 版本。
请帮助我正确显示 pdf 等 xlsx 中的文本和数字
解决方案
推荐阅读
- reactjs - Having multiple API calls in one componentDidMount - possible?
- flutter - streambuilder not displaying data in list
- flutter - How can I Focus on 1 textfield only in a cell of a datatable in flutter?
- c# - C# Json - extract a list of values from a JsonArray
- excel - Run time error '429' ActiveX component can't create object error while Scripting.FileSystemObject
- mongodb - How can I connect to an Atlas cluster with the SRV connection string format using ReactiveMongo?
- javascript - Using React router link inside template string does not working
- performance-testing - Load runner Ajax 真正的客户端协议脚本录制问题
- google-cloud-platform - 如何在云功能中串行处理文件?
- html - 根据不断变化的状态变量在反应中显示多个动态输入字段?