我有一个包含静态文本的报告,该报告位于2列和2页,带有样式文本(一些单词必须为粗体,斜体,带下划线),必须以Arial字体导出为PDF格式。
问题:列的最后一行/两行消失(虽然它们有空间可供打印)。我无法发布文本信息,因为它是一份合法的官方文件。
我尝试过: 1.将Arial字体设置为导出器的字体映射:
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, _stream);
FontKey keyArial = new FontKey("Arial", false, false);
PdfFont fontArial = new PdfFont("Helvetica","Cp1252",false);
FontKey keyArialBold = new FontKey("Arial", true, false);
PdfFont fontArialBold = new PdfFont("Helvetica-Bold","Cp1252",false);
Map fontMap = new HashMap();
fontMap.put(keyArial,fontArial);
fontMap.put(keyArialBold,fontArialBold);
exporter.setParameter(JRExporterParameter.FONT_MAP,fontMap);
,这样可以正确显示样式文本(粗体,斜体和下划线)。
,但这没有做任何事......
,没有可见效果
,没效果
,行仍然缺失
以下是该报告的规范:
我使用iReport 3.6.1兼容3.1.4。
该报告适用于使用java 1.4的项目
页面格式:A4纵向,(尺寸以像素为单位)顶部10,底部10,左侧20,右侧20,列2,顶部宽度275,空间5
我有两个重叠的居中标题(文本字段),跨越2列,在表达式上打印参数。
我有两个组,每个页面只有一个标题带。每个标题带都有两个重叠的文本字段,这些字段在相同参数上具有相同的Print When Expression。第二个乐队以专栏开头开始。字段伸展到乐队的中间,拉伸类型=相对于乐队高度,打印时细节溢出=真,拉伸溢出=真。字段中的文本几乎覆盖了两个页面的容量 - 它们填充两个页面上的两列(在第二页末尾有回车符,第x / x页有最后一行)。我用了#34; \ n&#34;为样式文本添加回车符和<style isBold=\"true\" isUnderline=\"true\" isItalic=\"true\"></style>
(当然,Markup =字段上的样式设置)。
报告以IE v 11.0.9600.17914导出。我机器上安装的Acrobat Reader是版本XI。
答案 0 :(得分:0)
当文本字段的行显示在页面的末尾时,似乎存在一些与文本字段相关的问题。 如果允许,请尝试更改字体大小。
类似问题: http://community.jaspersoft.com/jasperreports-library/issues/2874-0 http://community.jaspersoft.com/questions/844276/text-field-missing-last-line-mingliu-and-font-size-less-10
答案 1 :(得分:0)
我相信这是一个错误,我遇到了类似的问题。 尝试在静态文本的最后行后添加换行符(“\\ n”或其他适用于您的行)。这有助于我的情况。
答案 2 :(得分:0)
在两列报告中,使用Jasper版本6.1.1时,我遇到了完全相同的问题。最初,我只是通过在HTML格式的文本末尾插入<br/>
来解决该问题。它适用于第二列,但不适用于第一列(我花了更长的时间才意识到它也缺少一行!)。
我尝试创建字体扩展名,但没有解决。 然后我注意到我使用的是“ 比例”行距,大小为0.7:
<textElement textAlignment="Center" markup="none">
<font size="10" isBold="true"/>
<paragraph lineSpacing="Proportional" lineSpacingSize="0.7"/>
</textElement>
删除<paragraph>
元素可以解决问题,我的报告现在在两列中显示所有行。
重要提示:根据业务需要,我无法缩小文字范围。我坚信这是Jasper PDF生成器中的错误。