奇怪的IText 7行为-错误

时间:2019-02-18 10:08:37

标签: java itext7

我正在使用import { Component, OnInit, ViewChild } from '@angular/core'; @Component({ selector: 'app-batchticketvalidation', templateUrl: './batchticketvalidation.component.html', styleUrls: ['./batchticketvalidation.component.css'] }) export class BatchticketvalidationComponent implements OnInit { constructor() { } ngOnInit() { } displayedColumns = ['id', 'ticketnumb', 'actionsColumn']; dataSource: PeriodicElement[] = ELEMENT_DATA; private myDataArray: any; private tempTicketCount: number = 0; deleteTicket(rowid: number){ if (rowid > -1) { this.myDataArray.splice(rowid, 1); } } } export interface PeriodicElement { id: number; ticketnumb: string; actionsColumn: any; } const ELEMENT_DATA: PeriodicElement[] = [ ]; 7.1.1 ITextPdf为项目创建报告。问题在于浏览器内部生成的pdf看起来不错。但是,当我将其另存为pdf并使用pdf阅读器(预览)打开时,它会在div元素中生成边框。波纹管是问题的图像。

也许问题出在Java Library,我用来生成标题。

在浏览器内部生成的PDF: PDF Generated Inside Browser

保存到磁盘后在预览中打开PDF:

PDF Opened In Preview After Saved To Disk

生成标题的代码如下:

PDFCanvas Rectancle

将Vestion更改为7.1.5,但是我仍然得到相同的行为。有什么建议么??过去没有其他人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:1)

请删除此说明:

pdfCanvas.rectangle(rectangle);

这将在内容中创建路径。在定义路径(以及可选的路径剪切指令)之后,必须立即遵循路径绘制指令,请参见。下面的ISO 32000-1中的“图9 –图形对象”的副本。相反,您可以这样做

pdfCanvas.setFontAndSize(FontsAndStyles.getRegularFont(), 10);

即您可以添加一条指令来设置字体和大小,而不是必需的路径绘制指令。

因此,结果页面内容流无效。

现在,PDF查看器通常会尝试从损坏的内容中弄清楚。在您的情况下,他们必须决定:

  • 他们可以简单地忽略路径定义。 (这就是您的浏览器似乎要执行的操作。)
  • 他们可以假定您忘记了绘制指令,而只是绘制路径。 (这就是您的PDF阅读器预览版的功能。)

允许处于不同状态的指令

Figure 9 – Graphics Objects

(ISO 32000-1 Figure 9 – Graphics Objects