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

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

这是解决方案。 谢谢Dylan McClung。

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

在.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); 

一个更完整的例子是: http : //www.mikesdotnetting.com/Article/88/iTextSharp-Drawing-shapes-and-Graphics

 public static void drawRectangle(PdfContentByte content, float width, float height) { content.saveState(); PdfGState state = new PdfGState(); state.setFillOpacity(0.6f); content.setGState(state); content.setRGBColorFill(0xFF, 0xFF, 0xFF); content.setLineWidth(3); content.rectangle(0, 0, width, height); content.fillStroke(); content.restoreState(); } 

来自itext的API

  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(); } }