我正在使用iText 2.1.7,並且正在嘗試爲我的文檔繪製一個簡單的矩形。下面的代碼塊按預期工作,繪製一個矩形,覆蓋整個頁面,不包括頁邊距。iText:PdfContentByte.rectangle(Rectangle)不像預期的那樣行爲
Document document = new Document(PageSize.A4.rotate());
PdfWriter writer = PdfWriter.getInstance(document, outputStream);
document.open();
PdfContentByte canvas = writer.getDirectContent();
Rectangle pageDimensions = writer.getPageSize();
canvas.saveState();
canvas.rectangle(
pageDimensions.getLeft(marginLeft),
pageDimensions.getBottom(marginBottom),
pageDimensions.getRight(marginRight),
pageDimensions.getTop(marginTop));
canvas.setColorStroke(Color.BLACK);
canvas.stroke();
canvas.restoreState();
document.close();
但是,如果我改變的小幅這樣我定義PdfContentByte外的矩形,帆布代碼塊,然後我的代碼生成一個空白頁。
...
Rectangle marginBox = new Rectangle(
pageDimensions.getLeft(marginLeft),
pageDimensions.getBottom(marginBottom),
pageDimensions.getRight(marginRight),
pageDimensions.getTop(marginTop));
canvas.saveState();
canvas.rectangle(marginBox);
canvas.setColorStroke(Color.BLACK);
canvas.stroke();
canvas.restoreState();
...
這是不的PdfContentByte.rectangle(Rectangle)
方法的使用目的?理想情況下,我想定義Rectangles(以及它們的邊框顏色和寬度),以與directContent緊密結合的方式進行定義,並且可以在稍後將它們添加到directContent中。
謝謝Lowagie先生,感謝您花時間回答我的問題。那'rect.setBorder(Rectangle.BOX);'行是我試圖讓它工作的所有東西中缺少的組件。 – Set