From 54a4751b616ab4e8957b97af4088bd725367ea6f Mon Sep 17 00:00:00 2001 From: Jeremias Maerki Date: Mon, 24 Oct 2011 12:44:11 +0000 Subject: [PATCH] Allow to switch to a different page size in mid-document. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1188123 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/embedding/ExampleJava2D2PDF.java | 3 ++- .../apache/fop/svg/PDFDocumentGraphics2D.java | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/examples/embedding/java/embedding/ExampleJava2D2PDF.java b/examples/embedding/java/embedding/ExampleJava2D2PDF.java index ff9807165..907aaeab5 100644 --- a/examples/embedding/java/embedding/ExampleJava2D2PDF.java +++ b/examples/embedding/java/embedding/ExampleJava2D2PDF.java @@ -116,7 +116,8 @@ public class ExampleJava2D2PDF { g2d.setFont(new Font("serif", Font.PLAIN, 36)); g2d.drawString("Hello world!", 140, 180); - g2d.nextPage(); + pageSize = new Dimension(pageSize.height, pageSize.width); + g2d.nextPage(pageSize.width, pageSize.height); //Demonstrate painting rich text String someHTML = "" diff --git a/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java b/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java index f8f14cca2..7ec9d7f2b 100644 --- a/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java +++ b/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java @@ -113,8 +113,8 @@ public class PDFDocumentGraphics2D extends PDFGraphics2D { * @param textAsShapes set this to true so that text will be rendered * using curves and not the font. * @param stream the stream that the final document should be written to. - * @param width the width of the document - * @param height the height of the document + * @param width the width of the document (in points) + * @param height the height of the document (in points) * @throws IOException an io exception if there is a problem * writing to the output stream */ @@ -252,6 +252,19 @@ public class PDFDocumentGraphics2D extends PDFGraphics2D { closePage(); } + /** + * Is called to prepare the PDFDocumentGraphics2D for the next page to be painted. Basically, + * this closes the current page. A new page is prepared as soon as painting starts. + * This method allows to start the new page (and following pages) with a different page size. + * @param width the width of the new page (in points) + * @param height the height of the new page (in points) + */ + public void nextPage(int width, int height) { + this.width = width; + this.height = height; + nextPage(); + } + /** * Closes the current page and adds it to the PDF file. */ -- 2.39.5