【问题标题】:Draw a rectangle in a PDF document using iText使用 iText 在 PDF 文档中绘制矩形
【发布时间】:2010-11-21 15:44:01
【问题描述】:

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

【问题讨论】:

    标签: java pdf pdf-generation itext


    【解决方案1】:

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

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

    【讨论】:

    • PdfContentByte cb = writer.getDirectContent();
    【解决方案2】:

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

    【讨论】:

    • 仅仅绘制一个表格单元格的想法还不错
    【解决方案3】:
    【解决方案4】:
    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

    【讨论】:

      【解决方案5】:
      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();
         }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-11
        • 2018-08-11
        • 2014-03-24
        • 2014-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多