Return-Path: X-Original-To: apmail-pdfbox-commits-archive@www.apache.org Delivered-To: apmail-pdfbox-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8347018580 for ; Fri, 6 Nov 2015 00:26:04 +0000 (UTC) Received: (qmail 43255 invoked by uid 500); 6 Nov 2015 00:26:04 -0000 Delivered-To: apmail-pdfbox-commits-archive@pdfbox.apache.org Received: (qmail 43232 invoked by uid 500); 6 Nov 2015 00:26:04 -0000 Mailing-List: contact commits-help@pdfbox.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@pdfbox.apache.org Delivered-To: mailing list commits@pdfbox.apache.org Received: (qmail 43223 invoked by uid 99); 6 Nov 2015 00:26:04 -0000 Received: from Unknown (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Nov 2015 00:26:04 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id E16C11A2353 for ; Fri, 6 Nov 2015 00:26:03 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.79 X-Spam-Level: * X-Spam-Status: No, score=1.79 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, T_RP_MATCHES_RCVD=-0.01] autolearn=disabled Received: from mx1-us-west.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id kxU68niL0iGe for ; Fri, 6 Nov 2015 00:26:03 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-us-west.apache.org (ASF Mail Server at mx1-us-west.apache.org) with ESMTP id 0CF2022F1C for ; Fri, 6 Nov 2015 00:26:03 +0000 (UTC) Received: from svn01-us-west.apache.org (svn.apache.org [10.41.0.6]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 8A938E022D for ; Fri, 6 Nov 2015 00:26:02 +0000 (UTC) Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 5E76E3A0C76 for ; Fri, 6 Nov 2015 00:26:02 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1712887 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing: PDFPageable.java PDFPrintable.java Date: Fri, 06 Nov 2015 00:26:02 -0000 To: commits@pdfbox.apache.org From: jahewson@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20151106002602.5E76E3A0C76@svn01-us-west.apache.org> Author: jahewson Date: Fri Nov 6 00:26:02 2015 New Revision: 1712887 URL: http://svn.apache.org/viewvc?rev=1712887&view=rev Log: PDFBOX-2930: printing support for rotated documents Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPageable.java pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPrintable.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPageable.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPageable.java?rev=1712887&r1=1712886&r2=1712887&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPageable.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPageable.java Fri Nov 6 00:26:02 2015 @@ -104,7 +104,7 @@ public final class PDFPageable extends B public PageFormat getPageFormat(int pageIndex) { PDPage page = document.getPage(pageIndex); - PDRectangle mediaBox = page.getMediaBox(); + PDRectangle mediaBox = PDFPrintable.getRotatedMediaBox(page); PDRectangle cropBox = PDFPrintable.getRotatedCropBox(page); // Java does not seem to understand landscape paper sizes, i.e. where width > height, it Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPrintable.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPrintable.java?rev=1712887&r1=1712886&r2=1712887&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPrintable.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPrintable.java Fri Nov 6 00:26:02 2015 @@ -210,4 +210,25 @@ public final class PDFPrintable implemen return cropBox; } } + + /** + * This will find the MediaBox with rotation applied, for this page by looking up the hierarchy + * until it finds them. + * + * @return The MediaBox at this level in the hierarchy. + */ + static PDRectangle getRotatedMediaBox(PDPage page) + { + PDRectangle mediaBox = page.getMediaBox(); + int rotationAngle = page.getRotation(); + if (rotationAngle == 90 || rotationAngle == 270) + { + return new PDRectangle(mediaBox.getLowerLeftY(), mediaBox.getLowerLeftX(), + mediaBox.getHeight(), mediaBox.getWidth()); + } + else + { + return mediaBox; + } + } }