You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Jeremias Maerki <de...@jeremias-maerki.ch> on 2009/08/03 08:50:28 UTC

Re: svn commit: r800217 - in /xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf: PDFFactory.java PDFPage.java

The reason for the Gump failure was my forgetting an "svn up" before
committing the prepress patch. But rather than adjust my changes against
the original patch, I've decided to revert Vincent's change to increase
accuracy. While testing I noticed that my "bleeding" backgrounds didn't
match the rectangle that Acrobat displayed. When switching to doubles,
those boundaries match, so I'd rather we operate on the internal
resolution of FOP for specifying page sizes.

On 03.08.2009 08:43:46 jeremias wrote:
> Author: jeremias
> Date: Mon Aug  3 06:43:45 2009
> New Revision: 800217
> 
> URL: http://svn.apache.org/viewvc?rev=800217&view=rev
> Log:
> Reverted rev 798521.
> Reason: Loss of accuracy. PDF is operating at points rather than millipoints. Especially when it comes to prepress features people will want exact sizes in the target PDFs.
> 
> Modified:
>     xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFactory.java
>     xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFPage.java
> 
> Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFactory.java
> URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFactory.java?rev=800217&r1=800216&r2=800217&view=diff
> ==============================================================================
> --- xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFactory.java (original)
> +++ xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFactory.java Mon Aug  3 06:43:45 2009
> @@ -20,7 +20,6 @@
>  package org.apache.fop.pdf;
>  
>  // Java
> -import java.awt.Rectangle;
>  import java.awt.geom.Point2D;
>  import java.awt.geom.Rectangle2D;
>  import java.io.FileNotFoundException;
> @@ -184,8 +183,8 @@
>       * @return the created /Page object
>       */
>      public PDFPage makePage(PDFResources resources, int pageIndex,
> -                            Rectangle mediaBox, Rectangle cropBox,
> -                            Rectangle bleedBox, Rectangle trimBox) {
> +                            Rectangle2D mediaBox, Rectangle2D cropBox,
> +                            Rectangle2D bleedBox, Rectangle2D trimBox) {
>          PDFPage page = new PDFPage(resources, pageIndex, mediaBox, cropBox, bleedBox, trimBox);
>  
>          getDocument().assignObjectNumber(page);
> @@ -207,7 +206,7 @@
>       */
>      public PDFPage makePage(PDFResources resources,
>                              int pageWidth, int pageHeight, int pageIndex) {
> -        Rectangle mediaBox = new Rectangle(0, 0, pageWidth, pageHeight);
> +        Rectangle2D mediaBox = new Rectangle2D.Double(0, 0, pageWidth, pageHeight);
>          return makePage(resources, pageIndex, mediaBox, mediaBox, mediaBox, mediaBox);
>      }
>  
> 
> Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFPage.java
> URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFPage.java?rev=800217&r1=800216&r2=800217&view=diff
> ==============================================================================
> --- xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFPage.java (original)
> +++ xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFPage.java Mon Aug  3 06:43:45 2009
> @@ -19,7 +19,7 @@
>  
>  package org.apache.fop.pdf;
>  
> -import java.awt.Rectangle;
> +import java.awt.geom.Rectangle2D;
>  
>  /**
>   * Class representing a /Page object.
> @@ -45,8 +45,8 @@
>       * @param trimBox the TrimBox. If null, bleedBox is used.
>       */
>      public PDFPage(PDFResources resources, int pageIndex,
> -                   Rectangle mediaBox, Rectangle cropBox,
> -                   Rectangle bleedBox, Rectangle trimBox) {
> +                   Rectangle2D mediaBox, Rectangle2D cropBox,
> +                   Rectangle2D bleedBox, Rectangle2D trimBox) {
>        /* generic creation of object */
>        super(resources);
>  
> @@ -56,8 +56,8 @@
>        this.pageIndex = pageIndex;
>      }
>  
> -    private void setSimplePageSize(Rectangle mediaBox, Rectangle cropBox,
> -                                   Rectangle bleedBox, Rectangle trimBox) {
> +    private void setSimplePageSize(Rectangle2D mediaBox, Rectangle2D cropBox,
> +                                   Rectangle2D bleedBox, Rectangle2D trimBox) {
>          setMediaBox(mediaBox);
>  
>          if (cropBox == null) {
> @@ -76,16 +76,16 @@
>          setTrimBox(trimBox); //Needed for PDF/X
>      }
>  
> -    private PDFArray toPDFArray(Rectangle box) {
> -        return new PDFArray(this, new int[] {
> -                box.x, box.y, box.x + box.width, box.y + box.height});
> +    private PDFArray toPDFArray(Rectangle2D box) {
> +        return new PDFArray(this, new double[] {
> +                box.getX(), box.getY(), box.getMaxX(), box.getMaxY()});
>      }
>  
>      /**
>       * Sets the "MediaBox" entry
>       * @param box the media rectangle
>       */
> -    public void setMediaBox(Rectangle box) {
> +    public void setMediaBox(Rectangle2D box) {
>          put("MediaBox", toPDFArray(box));
>      }
>  
> @@ -93,7 +93,7 @@
>       * Sets the "CropBox" entry
>       * @param box the bleed rectangle
>       */
> -    public void setCropBox(Rectangle box) {
> +    public void setCropBox(Rectangle2D box) {
>          put("CropBox", toPDFArray(box));
>      }
>  
> @@ -101,7 +101,7 @@
>       * Sets the "BleedBox" entry
>       * @param box the bleed rectangle
>       */
> -    public void setBleedBox(Rectangle box) {
> +    public void setBleedBox(Rectangle2D box) {
>          put("BleedBox", toPDFArray(box));
>      }
>  
> @@ -109,7 +109,7 @@
>       * Sets the "TrimBox" entry
>       * @param box the trim rectangle
>       */
> -    public void setTrimBox(Rectangle box) {
> +    public void setTrimBox(Rectangle2D box) {
>          put("TrimBox", toPDFArray(box));
>      }
>  



Jeremias Maerki