Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用iText在PDF文档中绘制矩形_Java_Pdf_Pdf Generation_Itext - Fatal编程技术网

Java 使用iText在PDF文档中绘制矩形

Java 使用iText在PDF文档中绘制矩形,java,pdf,pdf-generation,itext,Java,Pdf,Pdf Generation,Itext,在iText中有没有办法在PDF文档中绘制矩形?在.NET版本中,我只是创建了一个带边框的表。我知道它不是Java,但下面的代码可能会帮助您 iTextSharp.text.Document document = new iTextSharp.text.Document(PageSize.LETTER, 20, 20, 20, 20); PdfPTable table; PdfPCell cell; // single element w/ border table = new PdfPTab

在iText中有没有办法在PDF文档中绘制矩形?

在.NET版本中,我只是创建了一个带边框的表。我知道它不是Java,但下面的代码可能会帮助您

iTextSharp.text.Document document = new iTextSharp.text.Document(PageSize.LETTER, 20, 20, 20, 20);
PdfPTable table;
PdfPCell cell;

// single element w/ border
table = new PdfPTable(1);
cell = new PdfPCell(new Phrase("BOLD WORDS", FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 11, Font.BOLD)));
cell.BorderWidth = 2;
cell.Padding = 5;
cell.PaddingTop = 3;
cell.HorizontalAlignment = Element.ALIGN_CENTER;
table.AddCell(cell);
table.SetWidthPercentage(new float[1] { 598f }, PageSize.LETTER);
table.HorizontalAlignment = Element.ALIGN_CENTER;
document.Add(table);

这是解决办法。谢谢迪伦·麦克隆

PdfWriter writer = ...;
PdfContentByte cb = writer.getDirectContent();
cb.saveState();
cb.setColorStroke(Color.black);
cb.rectangle(x,y,x1,y1);
cb.stroke();
cb.restoreState();

更完整的示例位于:


从itext的API来看,仅仅绘制一个表单元格的想法并没有那么糟糕
PdfContentByte cb=writer.getDirectContent()
private static void rect(PdfWriter writer) {

   PdfContentByte cb = writer.getDirectContent();
   try {
       cb.setFontAndSize(BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, false), 24);
       cb.rectangle(140f,140f,280f,420f);
       cb.stroke();
   } catch (DocumentException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
   } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
   }
}
private static void rect(PdfWriter writer) {

   PdfContentByte cb = writer.getDirectContent();
   try {
       cb.setFontAndSize(BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, false), 24);
       cb.rectangle(140f,140f,280f,420f);
       cb.stroke();
   } catch (DocumentException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
   } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
   }
}