Java 如何使iText 5.1.0中单元格的虚线边框与adobe reader兼容?
我正在使用下面的代码在Java 如何使iText 5.1.0中单元格的虚线边框与adobe reader兼容?,java,itext,Java,Itext,我正在使用下面的代码在itext 5.1.0 虚线单元格事件类 public class DottedCell implements PdfCellEvent { public void cellLayout(PdfPCell cell,Rectangle position,PdfContentByte[] canvas) { PdfContentByte cb=canvas[PdfPTable.LineCanvas]; cb.beginText(); cb.setLi
itext 5.1.0
虚线单元格事件类
public class DottedCell implements PdfCellEvent {
public void cellLayout(PdfPCell cell,Rectangle position,PdfContentByte[] canvas) {
PdfContentByte cb=canvas[PdfPTable.LineCanvas];
cb.beginText();
cb.setLineDash(1.0f,1.0f,2);
cb.stroke();
cb.endText();
}
}
我曾经运行的类
Class PdfExample {
public static final String dest="";//address of destination
public static PdfContentbyte=cb;
public static void main(String args[]) {
Document document new Document(new Rectangle(792f,634f));
PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream(dest));
ByteArrayOutputstream baos=new ByteArrayOutputStream();
document.open();
PdfPTable table =new PdfPTable();
PdfPCell cell=new PdfPCell();
cell.setPhrase("hello pdf");
DottedCell dottedCell=new DottedCell();
cell.setEvent(dottedCell);
table.addCell(cell);
document.add(table);
}
}
在本例中,虚线边框单元格在浏览器和文档查看器中显示得非常完美
但在adobe reader中打开的时间无法正确显示。它显示为:-
//此代码的结果
你似乎把“虚线”和“虚线”混淆了。请澄清:你写“点”是什么意思?你的密码告诉我你的意思是“虚线”。“虚线”也是您的屏幕截图显示的内容(以及其他PDF查看器应该显示的内容)。请澄清Adobe Reader中虚线的错误。问题是Adobe Reader中虚线的显示方式与我的屏幕截图不符。但是我想要这样:-hellopdf------------虚线间距固定,虚线长度固定。虚线图案是虚线图案。无论您如何创建它,查看器都应该相应地可视化它。如果查看器没有正确显示,为什么要责怪创建破折号图案的工具?您将创建一个长度
1
和间隙1
的破折号。定义一个长度为2
的阶段有点奇怪。这意味着您希望您的第一个破折号的长度为-1
(为什么?可能是有原因的,但原因可能是您不理解自己的代码)。我不怪创建破折号图案的工具。但我想知道为什么所有其他观众都能正确地展示我想要的东西。但在AdobeReader中,它并没有显示正确的内容。也许这是AdobeReader中的一个bug。我们有一个符合ISO-32000-1的PDF完整列表,但在Adobe Reader中没有正确显示。这可能是一个缩放因子的问题,但我要问你的主要问题是:为什么要定义一个2的阶段,当破折号的长度和间距只有1时?这应该相当于0的相位,不是吗?看起来你把“虚线”和“虚线”混淆了。请澄清:你写“点”是什么意思?你的密码告诉我你的意思是“虚线”。“虚线”也是您的屏幕截图显示的内容(以及其他PDF查看器应该显示的内容)。请澄清Adobe Reader中虚线的错误。问题是Adobe Reader中虚线的显示方式与我的屏幕截图不符。但是我想要这样:-hellopdf------------虚线间距固定,虚线长度固定。虚线图案是虚线图案。无论您如何创建它,查看器都应该相应地可视化它。如果查看器没有正确显示,为什么要责怪创建破折号图案的工具?您将创建一个长度1
和间隙1
的破折号。定义一个长度为2
的阶段有点奇怪。这意味着您希望您的第一个破折号的长度为-1
(为什么?可能是有原因的,但原因可能是您不理解自己的代码)。我不怪创建破折号图案的工具。但我想知道为什么所有其他观众都能正确地展示我想要的东西。但在AdobeReader中,它并没有显示正确的内容。也许这是AdobeReader中的一个bug。我们有一个符合ISO-32000-1的PDF完整列表,但在Adobe Reader中没有正确显示。这可能是一个缩放因子的问题,但我要问你的主要问题是:为什么要定义一个2的阶段,当破折号的长度和间距只有1时?这应该相当于0的相位,不是吗?