cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2003-03-05 Thread pietsch
pietsch 2003/03/05 10:58:16

  Modified:.Tag: fop-0_20_2-maintain build.xml
   src/org/apache/fop/apps Tag: fop-0_20_2-maintain
CommandLineOptions.java
   src/org/apache/fop/pdf Tag: fop-0_20_2-maintain
PDFDocument.java PDFXObject.java
   src/org/apache/fop/render/pdf Tag: fop-0_20_2-maintain
PDFRenderer.java
  Added:   src/java-1.3/org/apache/fop/pdf Tag: fop-0_20_2-maintain
PDFEncryption.java
   src/java-1.4/org/apache/fop/pdf Tag: fop-0_20_2-maintain
PDFEncryption.java
  Log:
  Added PDF encryption.
  Submitted by: Patrick C. Lankswert [EMAIL PROTECTED]
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.44.2.38 +10 -3 xml-fop/build.xml
  
  Index: build.xml
  ===
  RCS file: /home/cvs/xml-fop/build.xml,v
  retrieving revision 1.44.2.37
  retrieving revision 1.44.2.38
  diff -u -r1.44.2.37 -r1.44.2.38
  --- build.xml 18 Feb 2003 12:27:34 -  1.44.2.37
  +++ build.xml 5 Mar 2003 18:58:14 -   1.44.2.38
  @@ -189,7 +189,7 @@
   tstamp/
   property name=Name value=Fop/
   property name=name value=fop/
  -property name=version value=0.20.5rc2/
  +property name=version value=0.20.5rc3/
   filter  token=version value=${version}/
   property name=year value=1999-2003/
   
  @@ -302,11 +302,17 @@
 target name=init-filters-jdk13 depends=init-avail unless=jdk14.present
   echo message=JDK 1.3 or earlier present./
   copy file=src/codegen/jdk13.filter toFile=build/src/codegen/filter/
  +copy todir=build/src
  +  fileset dir=src/java-1.3/
  +/copy
 /target
   
 target name=init-filters-jdk14 depends=init-avail if=jdk14.present
   echo message=JDK 1.4 present./
   copy file=src/codegen/jdk14.filter toFile=build/src/codegen/filter/
  +copy todir=build/src
  +  fileset dir=src/java-1.4/
  +/copy
 /target
   
   
  @@ -371,8 +377,9 @@
 target name=prepare-src depends=prepare, prepare-jimi, prepare-jai, 
prepare-trax
   !-- copy src files --
   copy todir=${build.src} filtering=yes
  -  fileset dir=${src.dir} 
  -
excludes=**/${jimi},**/${jai},**/${tiff},**/${xsltransform},**/${trax},**/apps/TraxInputHandler.java/
  +  fileset dir=${src.dir}
  +includes=**/*.java
  +
excludes=java-*/**,**/${jimi},**/${jai},**/${tiff},**/${xsltransform},**/${trax},**/apps/TraxInputHandler.java/
 filterset
   filter token=XSLFO-STD value=${xslfo.std}/
   filter token=XSLFO-STDID value=${xslfo.std.id}/
  
  
  
  No   revision
  
  
  No   revision
  
  
  1.1.2.1   +156 -0xml-fop/src/java-1.3/org/apache/fop/pdf/Attic/PDFEncryption.java
  
  
  
  
  No   revision
  
  
  No   revision
  
  
  1.1.2.1   +421 -0xml-fop/src/java-1.4/org/apache/fop/pdf/Attic/PDFEncryption.java
  
  
  
  
  No   revision
  
  
  No   revision
  
  
  1.14.2.10 +95 -30xml-fop/src/org/apache/fop/apps/CommandLineOptions.java
  
  Index: CommandLineOptions.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/apps/CommandLineOptions.java,v
  retrieving revision 1.14.2.9
  retrieving revision 1.14.2.10
  diff -u -r1.14.2.9 -r1.14.2.10
  --- CommandLineOptions.java   25 Feb 2003 10:18:31 -  1.14.2.9
  +++ CommandLineOptions.java   5 Mar 2003 18:58:15 -   1.14.2.10
  @@ -147,6 +147,26 @@
   
   }
   
  +private boolean pdfEncryptionAvailable = false;
  +private boolean pdfEncryptionChecked = false;
  +private boolean encryptionAvailable() {
  +if (!pdfEncryptionChecked) {
  +try {
  +Class c = Class.forName(javax.crypto.Cipher);
  +pdfEncryptionAvailable
  += org.apache.fop.pdf.PDFEncryption.encryptionAvailable();
  +}
  +catch(ClassNotFoundException e) {
  +pdfEncryptionAvailable = false;
  +}
  +pdfEncryptionChecked = true;
  +if (!pdfEncryptionAvailable) {
  +log.warn(PDF encryption not available.);
  +}
  +}
  +return pdfEncryptionAvailable;
  +}
  +
   /**
* parses the commandline arguments
* @return true if parse was successful and procesing can continue, false if 
processing should stop
  @@ -219,6 +239,44 @@
   outfile = new File(args[i + 1]);
   i++;
   }
  +} else if (args[i].equals(-o)) {
  +if ((i + 1 == args.length) || (args[i + 1].charAt(0) == '-')) {
  +

cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2003-02-16 Thread jeremias
jeremias2003/02/16 04:42:11

  Modified:src/org/apache/fop/render/pdf Tag: fop-0_20_2-maintain
PDFRenderer.java
  Log:
  Fixed some sources of wrong operand type error in Acrobat Reader.
  They were caused by rounding bugs, mostly experienced with SVG files coming from 
OpenOffice.
  The PDF contained matrices like 0 0 0 0 0 0 cm when the values really shouldn't be 
zero.
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.91.2.12 +7 -7  xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.91.2.11
  retrieving revision 1.91.2.12
  diff -u -r1.91.2.11 -r1.91.2.12
  --- PDFRenderer.java  7 Feb 2003 00:10:46 -   1.91.2.11
  +++ PDFRenderer.java  16 Feb 2003 12:42:10 -  1.91.2.12
  @@ -550,12 +550,12 @@
   if (!at.isIdentity()) {
   double[] vals = new double[6];
   at.getMatrix(vals);
  -currentStream.add(PDFNumber.doubleOut(vals[0]) +  
  -+ PDFNumber.doubleOut(vals[1]) +  
  -+ PDFNumber.doubleOut(vals[2]) +  
  -+ PDFNumber.doubleOut(vals[3]) +  
  -+ PDFNumber.doubleOut(vals[4]) +  
  -+ PDFNumber.doubleOut(vals[5]) +  cm\n);
  +currentStream.add(PDFNumber.doubleOut(vals[0], 8) +  
  ++ PDFNumber.doubleOut(vals[1], 8) +  
  ++ PDFNumber.doubleOut(vals[2], 8) +  
  ++ PDFNumber.doubleOut(vals[3], 8) +  
  ++ PDFNumber.doubleOut(vals[4], 8) +  
  ++ PDFNumber.doubleOut(vals[5], 8) +  cm\n);
   }
   
   PDFGraphics2D graphics = new PDFGraphics2D(true, fs, pdfDoc,
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2003-01-27 Thread jeremias
jeremias2003/01/27 01:20:09

  Modified:src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  Make graphics state save/restore and text object begin/end into methods so code 
similarities between PS and PDF wil become more apparent.
  
  Revision  ChangesPath
  1.135 +64 -40xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.134
  retrieving revision 1.135
  diff -u -r1.134 -r1.135
  --- PDFRenderer.java  8 Jan 2003 14:02:47 -   1.134
  +++ PDFRenderer.java  27 Jan 2003 09:20:09 -  1.135
  @@ -318,7 +318,27 @@
   renderOutline(outline.getSubData(i), pdfOutline);
   }
   }
  -
  +
  +/** Saves the graphics state of the rendering engine. */
  +protected void saveGraphicsState() {
  +currentStream.add(q\n);
  +}
  +
  +/** Restores the last graphics state of the rendering engine. */
  +protected void restoreGraphicsState() {
  +currentStream.add(Q\n);
  +}
  +
  +/** Indicates the beginning of a text object. */
  +protected void beginTextObject() {
  +currentStream.add(BT\n);
  +}
  +
  +/** Indicates the end of a text object. */
  +protected void endTextObject() {
  +currentStream.add(ET\n);
  +}
  +
   /**
* Start the next page sequence.
* For the pdf renderer there is no concept of page sequences
  @@ -415,16 +435,16 @@
   currentState.setTransform(
 new AffineTransform(CTMHelper.toPDFArray(ctm)));
   
  -currentStream.add(q\n);
  +saveGraphicsState();
   // multiply with current CTM
   currentStream.add(CTMHelper.toPDFString(ctm) +  cm\n);
   // Set clip?
  -currentStream.add(BT\n);
  +beginTextObject();
   }
   
   protected void endVParea() {
  -currentStream.add(ET\n);
  -currentStream.add(Q\n);
  +endTextObject();
  +restoreGraphicsState();
   currentState.pop();
   }
   
  @@ -441,8 +461,10 @@
   Rectangle2D viewArea = region.getViewArea();
   float width = (float)(viewArea.getWidth() / 1000f);
   float height = (float)(viewArea.getHeight() / 1000f);
  +/*
   Trait.Background back;
   back = (Trait.Background)region.getTrait(Trait.BACKGROUND);
  +*/
   drawBackAndBorders(region, startx, starty, width, height);
   }
   
  @@ -481,8 +503,8 @@
   if(back != null) {
   started = true;
   closeText();
  -currentStream.add(ET\n);
  -//currentStream.add(q\n);
  +endTextObject();
  +//saveGraphicsState();
   
   if (back.color != null) {
   updateColor(back.color, true, null);
  @@ -516,8 +538,8 @@
   if(!started) {
   started = true;
   closeText();
  -currentStream.add(ET\n);
  -//currentStream.add(q\n);
  +endTextObject();
  +//saveGraphicsState();
   }
   
   float bwidth = bps.width / 1000f;
  @@ -533,8 +555,8 @@
   if(!started) {
   started = true;
   closeText();
  -currentStream.add(ET\n);
  -//currentStream.add(q\n);
  +endTextObject();
  +//saveGraphicsState();
   }
   
   float bwidth = bps.width / 1000f;
  @@ -551,8 +573,8 @@
   if(!started) {
   started = true;
   closeText();
  -currentStream.add(ET\n);
  -//currentStream.add(q\n);
  +endTextObject();
  +//saveGraphicsState();
   }
   
   float bwidth = bps.width / 1000f;
  @@ -569,8 +591,8 @@
   if(!started) {
   started = true;
   closeText();
  -currentStream.add(ET\n);
  -//currentStream.add(q\n);
  +endTextObject();
  +//saveGraphicsState();
   }
   
   float bwidth = bps.width / 1000f;
  @@ -579,8 +601,8 @@
   drawLine(sx - bwidth / 2, starty, sx - bwidth / 2, endy);
   }
   if(started) {
  -//currentStream.add(Q\n);
  -currentStream.add(BT\n);
  +//restoreGraphicsState();
  +beginTextObject();
   // font last set out of scope in text section
   currentFontName = ;
   }
  @@ -616,10 +638,10 @@
   currentBPPosition = 0;
   
   closeText();
  -currentStream.add(ET\n);
  +

cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2003-01-08 Thread chrisg
chrisg  2003/01/08 17:25:41

  Modified:src/org/apache/fop/render/pdf Tag: fop-0_20_2-maintain
PDFRenderer.java
  Log:
  (possible) fix for linux alpha jre (bug #13586)
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.91.2.10 +2 -2  xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.91.2.9
  retrieving revision 1.91.2.10
  diff -u -r1.91.2.9 -r1.91.2.10
  --- PDFRenderer.java  8 Nov 2002 10:25:28 -   1.91.2.9
  +++ PDFRenderer.java  9 Jan 2003 01:25:41 -   1.91.2.10
  @@ -88,7 +88,7 @@
   
   PDFColor currentColor;
   
  -float currentLetterSpacing = Float.NaN;
  +float currentLetterSpacing = Float.MAX_VALUE;
   
   /**
* true if a TJ command is left to be written
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2002-12-18 Thread keiron
keiron  2002/12/18 06:50:35

  Modified:src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  clear data when stopping renderer
  
  Revision  ChangesPath
  1.133 +13 -3 xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.132
  retrieving revision 1.133
  diff -u -r1.132 -r1.133
  --- PDFRenderer.java  29 Nov 2002 23:18:57 -  1.132
  +++ PDFRenderer.java  18 Dec 2002 14:50:35 -  1.133
  @@ -145,8 +145,6 @@
   // drawing state
   protected PDFState currentState = null;
   
  -protected PDFColor currentFillColor = new PDFColor(255, 255, 255);
  -protected PDFColor currentStrokeColor = new PDFColor(0, 0, 0);
   protected String currentFontName = ;
   protected int currentFontSize = 0;
   protected int pageHeight;
  @@ -266,6 +264,18 @@
   
   this.pdfDoc = null;
   ostream = null;
  +
  +pages = null;
  +
  +pageReferences.clear();
  +pvReferences.clear();
  +pdfResources = null;
  +currentStream = null;
  +currentContext = null;
  +currentPage = null;
  +currentState = null;
  +currentFontName = ;
  +wordAreaPDF = new StringBuffer();
   }
   
   public boolean supportsOutOfOrder() {
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2002-11-22 Thread keiron
keiron  2002/11/22 03:49:26

  Modified:src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  some minor optimisation: only close text or update colour when necessary
  
  Revision  ChangesPath
  1.131 +49 -34xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.130
  retrieving revision 1.131
  diff -u -r1.130 -r1.131
  --- PDFRenderer.java  20 Nov 2002 07:51:35 -  1.130
  +++ PDFRenderer.java  22 Nov 2002 11:49:26 -  1.131
  @@ -64,6 +64,7 @@
   // Java
   import java.io.IOException;
   import java.io.OutputStream;
  +import java.awt.Color;
   import java.awt.geom.Rectangle2D;
   import java.awt.geom.AffineTransform;
   import java.util.HashMap;
  @@ -144,7 +145,8 @@
   // drawing state
   protected PDFState currentState = null;
   
  -protected PDFColor currentColor;
  +protected PDFColor currentFillColor = new PDFColor(255, 255, 255);
  +protected PDFColor currentStrokeColor = new PDFColor(0, 0, 0);
   protected String currentFontName = ;
   protected int currentFontSize = 0;
   protected int pageHeight;
  @@ -464,15 +466,14 @@
   protected void drawBackAndBorders(Area block, float startx, float starty, float 
width, float height) {
   // draw background then border
   
  -closeText();
  -
   boolean started = false;
   Trait.Background back;
   back = (Trait.Background)block.getTrait(Trait.BACKGROUND);
   if(back != null) {
   started = true;
  +closeText();
   currentStream.add(ET\n);
  -currentStream.add(q\n);
  +//currentStream.add(q\n);
   
   if (back.color != null) {
   updateColor(back.color, true, null);
  @@ -505,14 +506,16 @@
   
   if(!started) {
   started = true;
  +closeText();
   currentStream.add(ET\n);
  -currentStream.add(q\n);
  +//currentStream.add(q\n);
   }
   
  +float bwidth = bps.width / 1000f;
   updateColor(bps.color, false, null);
  -currentStream.add(bps.width / 1000f +  w\n);
  +currentStream.add(bwidth +  w\n);
   
  -drawLine(startx, starty, endx, starty);
  +drawLine(startx, starty + bwidth / 2, endx, starty + bwidth / 2);
   }
   bps = (BorderProps)block.getTrait(Trait.BORDER_START);
   if(bps != null) {
  @@ -520,14 +523,16 @@
   
   if(!started) {
   started = true;
  +closeText();
   currentStream.add(ET\n);
  -currentStream.add(q\n);
  +//currentStream.add(q\n);
   }
   
  +float bwidth = bps.width / 1000f;
   updateColor(bps.color, false, null);
  -currentStream.add(bps.width / 1000f +  w\n);
  +currentStream.add(bwidth +  w\n);
   
  -drawLine(startx, starty, startx, endy);
  +drawLine(startx + bwidth / 2, starty, startx + bwidth / 2, endy);
   }
   bps = (BorderProps)block.getTrait(Trait.BORDER_AFTER);
   if(bps != null) {
  @@ -536,14 +541,16 @@
   
   if(!started) {
   started = true;
  +closeText();
   currentStream.add(ET\n);
  -currentStream.add(q\n);
  +//currentStream.add(q\n);
   }
   
  +float bwidth = bps.width / 1000f;
   updateColor(bps.color, false, null);
  -currentStream.add(bps.width / 1000f +  w\n);
  +currentStream.add(bwidth +  w\n);
   
  -drawLine(startx, sy, endx, sy);
  +drawLine(startx, sy - bwidth / 2, endx, sy - bwidth / 2);
   }
   bps = (BorderProps)block.getTrait(Trait.BORDER_END);
   if(bps != null) {
  @@ -552,16 +559,18 @@
   
   if(!started) {
   started = true;
  +closeText();
   currentStream.add(ET\n);
  -currentStream.add(q\n);
  +//currentStream.add(q\n);
   }
   
  +float bwidth = bps.width / 1000f;
   updateColor(bps.color, false, null);
  -currentStream.add(bps.width / 1000f +  w\n);
  -drawLine(sx, starty, sx, endy);
  +currentStream.add(bwidth +  w\n);
  +drawLine(sx - bwidth / 2, starty, sx - bwidth / 2, endy);
   }
   if(started) {
  -currentStream.add(Q\n);
  +//currentStream.add(Q\n);
   currentStream.add(BT\n);
   // font last set out of scope in text section
   

cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2002-11-19 Thread keiron
keiron  2002/11/19 23:51:35

  Modified:src/org/apache/fop/pdf PDFDocument.java PDFInfo.java
   src/org/apache/fop/render AbstractRenderer.java
Renderer.java
   src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  enable setting creator
  
  Revision  ChangesPath
  1.58  +10 -1 xml-fop/src/org/apache/fop/pdf/PDFDocument.java
  
  Index: PDFDocument.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/pdf/PDFDocument.java,v
  retrieving revision 1.57
  retrieving revision 1.58
  diff -u -r1.57 -r1.58
  --- PDFDocument.java  11 Nov 2002 08:50:50 -  1.57
  +++ PDFDocument.java  20 Nov 2002 07:51:34 -  1.58
  @@ -193,6 +193,15 @@
   }
   
   /**
  + * set the creator of the document
  + *
  + * @param creator string indicating application creating the document
  + */
  +public void setCreator(String creator) {
  +this.info.setCreator(creator);
  +}
  +
  +/**
* Set the filter map to use for filters in this document.
*
* @param map the map of filter lists for each stream type
  
  
  
  1.10  +14 -1 xml-fop/src/org/apache/fop/pdf/PDFInfo.java
  
  Index: PDFInfo.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/pdf/PDFInfo.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- PDFInfo.java  25 Oct 2002 09:29:46 -  1.9
  +++ PDFInfo.java  20 Nov 2002 07:51:35 -  1.10
  @@ -47,6 +47,15 @@
   this.producer = producer;
   }
   
  +/**
  + * set the creator string
  + *
  + * @param creator the document creator
  + */
  +public void setCreator(String creator) {
  +this.creator = creator;
  +}
  +
   public void setTitle(String t) {
   this.title = t;
   }
  @@ -82,6 +91,10 @@
   }
   if (keywords != null) {
   p += /Keywords ( + this.keywords + )\n;
  +}
  +
  +if (creator != null) {
  +p += /Creator ( + this.creator + )\n;
   }
   
   p += /Producer ( + this.producer + )\n;
  
  
  
  1.29  +8 -1  xml-fop/src/org/apache/fop/render/AbstractRenderer.java
  
  Index: AbstractRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/AbstractRenderer.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- AbstractRenderer.java 6 Nov 2002 15:36:29 -   1.28
  +++ AbstractRenderer.java 20 Nov 2002 07:51:35 -  1.29
  @@ -95,6 +95,13 @@
*/
   protected int containingIPPosition = 0;
   
  +/** @see org.apache.fop.render.Renderer */
  +public void setProducer(String producer) {
  +}
  +
  +/** @see org.apache.fop.render.Renderer */
  +public void setCreator(String creator) {
  +}
   
   /** @see org.apache.fop.render.Renderer */
   public void setUserAgent(FOUserAgent agent) {
  
  
  
  1.29  +15 -1 xml-fop/src/org/apache/fop/render/Renderer.java
  
  Index: Renderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/Renderer.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- Renderer.java 9 Sep 2002 10:54:52 -   1.28
  +++ Renderer.java 20 Nov 2002 07:51:35 -  1.29
  @@ -47,6 +47,9 @@
   
   /**
* Initiates the rendering phase.
  + * This must only be called once for a rendering. If
  + * stopRenderer is called then this may be called again
  + * for a new document rendering.
*
* @param outputStream The OutputStream to use for output
* @exception IOException  If an I/O error occurs
  @@ -56,6 +59,8 @@
   
   /**
* Signals the end of the rendering phase.
  + * The renderer should reset to an initial state and dispose of
  + * any resources for the completed rendering.
*
* @exception IOException  If an I/O error occurs
*/
  @@ -91,6 +96,15 @@
*  embedded in the generated file.
*/
   void setProducer(String producer);
  +
  +/**
  + * Set the creator of the document to be rendered. If this method
  + * isn't called the renderer uses a default.
  + * Note: Not all renderers support this feature.
  + *
  + * @param creator  The name of the document creator
  + */
  +void setCreator(String creator);
   
   /**
* Reports if out of order rendering is supported. p
  
  
  
  1.130 +16 -4 xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  

cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2002-11-06 Thread keiron
keiron  2002/11/06 07:36:29

  Modified:src/org/apache/fop/fo/pagination Region.java RegionBody.java
   src/org/apache/fop/layoutmgr AbstractLayoutManager.java
   src/org/apache/fop/render AbstractRenderer.java
   src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  background and borders for regions
  
  Revision  ChangesPath
  1.13  +33 -14xml-fop/src/org/apache/fop/fo/pagination/Region.java
  
  Index: Region.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/pagination/Region.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- Region.java   25 Oct 2002 09:29:43 -  1.12
  +++ Region.java   6 Nov 2002 15:36:28 -   1.13
  @@ -22,6 +22,7 @@
   import org.apache.fop.area.CTM;
   import org.apache.fop.area.RegionViewport;
   import org.apache.fop.area.RegionReference;
  +import org.apache.fop.layoutmgr.AbstractLayoutManager;
   
   import org.xml.sax.Attributes;
   
  @@ -82,9 +83,29 @@
   Rectangle2D absRegionRect = pageCTM.transform(relRegionRect);
   // Get the region viewport rectangle in absolute coords by
   // transforming it using the page CTM
  -return new RegionViewport(absRegionRect);
  +RegionViewport rv = new RegionViewport(absRegionRect);
  +setRegionViewportTraits(rv);
  +return rv;
   }
   
  +/**
  + * Set the region viewport traits.
  + * The viewport has the border, background and
  + * clipping overflow traits.
  + *
  + * @param r the region viewport
  + */
  +protected void setRegionViewportTraits(RegionViewport r) {
  +// Common Border, Padding, and Background Properties
  +BorderAndPadding bap = propMgr.getBorderAndPadding();
  +BackgroundProps bProps = propMgr.getBackgroundProps();
  +AbstractLayoutManager.addBorders(r, bap);
  +AbstractLayoutManager.addBackground(r, bProps);
  +
  +// this.properties.get(clip);
  +// this.properties.get(display-align);
  +this.overflow = this.properties.get(overflow).getEnum();
  +}
   
   protected abstract Rectangle getViewportRectangle(FODimension pageRefRect);
   
  @@ -96,23 +117,21 @@
*/
   public RegionReference makeRegionReferenceArea(Rectangle2D absRegVPRect) {
   RegionReference r = new RegionReference(getRegionAreaClass());
  -setRegionTraits(r, absRegVPRect);
  +setRegionPosition(r, absRegVPRect);
   return r;
   }
   
  -protected void setRegionTraits(RegionReference r, Rectangle2D absRegVPRect) {
  -// Common Border, Padding, and Background Properties
  -BorderAndPadding bap = propMgr.getBorderAndPadding();
  -BackgroundProps bProps = propMgr.getBackgroundProps();
  -/*backgroundColor = properties.get(background-color).getColorType();*/
  -
  -// this.properties.get(clip);
  -// this.properties.get(display-align);
  -this.overflow = this.properties.get(overflow).getEnum();
  +/**
  + * Set the region position inside the region viewport.
  + * This sets the trasnform that is used to place the contents of
  + * the region.
  + *
  + * @param r the region reference area
  + * @param absRegVPRect the rectangle to place the region contents
  + */
  +protected void setRegionPosition(RegionReference r, Rectangle2D absRegVPRect) {
   FODimension reldims = new FODimension(0,0);
   r.setCTM(propMgr.getCTMandRelDims(absRegVPRect, reldims));
  -
  -//r.setBackground(bProps);
   }
   
   /**
  
  
  
  1.19  +2 -9  xml-fop/src/org/apache/fop/fo/pagination/RegionBody.java
  
  Index: RegionBody.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/pagination/RegionBody.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- RegionBody.java   7 Aug 2002 16:54:57 -   1.18
  +++ RegionBody.java   6 Nov 2002 15:36:28 -   1.19
  @@ -65,17 +65,10 @@
   return ((prop != null)? prop.getLength().mvalue() : 0);
   }
   
  -protected void setRegionTraits(RegionReference r, Rectangle2D absRegVPRect) {
  -super.setRegionTraits(r, absRegVPRect);
  -
  -// r.setBackgroundColor(backgroundColor);
  -}
  -
   protected String getDefaultRegionName() {
   return xsl-region-body;
   }
   
  -
   public String getRegionClass() {
   return Region.BODY;
   }
  @@ -90,7 +83,7 @@
   public RegionReference makeRegionReferenceArea(Rectangle2D absRegVPRect) {
   // Should set some column stuff here I think, or put it elsewhere
   BodyRegion body = new BodyRegion();
  -setRegionTraits(body, absRegVPRect);
  +setRegionPosition(body, 

cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2002-11-05 Thread keiron
keiron  2002/11/05 03:09:55

  Modified:src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  handle unresolved pdf bookmark
  fix for font not set after drawing borders
  
  Revision  ChangesPath
  1.127 +17 -13xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.126
  retrieving revision 1.127
  diff -u -r1.126 -r1.127
  --- PDFRenderer.java  3 Nov 2002 16:24:22 -   1.126
  +++ PDFRenderer.java  5 Nov 2002 11:09:55 -   1.127
  @@ -275,17 +275,19 @@
   PDFOutline outlineRoot = pdfDoc.getOutlineRoot();
   PDFOutline pdfOutline = null;
   PageViewport pv = outline.getPage();
  -Rectangle2D bounds = pv.getViewArea();
  -double h = bounds.getHeight();
  -float yoffset = (float)h / 1000f;
  -String intDest = (String)pageReferences.get(pv.getKey());
  -if (parentOutline == null) {
  -pdfOutline = pdfDoc.makeOutline(outlineRoot,
  -outline.getLabel(), intDest, yoffset);
  -} else {
  -PDFOutline pdfParentOutline = parentOutline;
  -pdfOutline = pdfDoc.makeOutline(pdfParentOutline,
  -outline.getLabel(), intDest, yoffset);
  +if(pv != null) {
  +Rectangle2D bounds = pv.getViewArea();
  +double h = bounds.getHeight();
  +float yoffset = (float)h / 1000f;
  +String intDest = (String)pageReferences.get(pv.getKey());
  +if (parentOutline == null) {
  +pdfOutline = pdfDoc.makeOutline(outlineRoot,
  +outline.getLabel(), intDest, yoffset);
  +} else {
  +PDFOutline pdfParentOutline = parentOutline;
  +pdfOutline = pdfDoc.makeOutline(pdfParentOutline,
  +outline.getLabel(), intDest, yoffset);
  +}
   }
   
   for (int i = 0; i  outline.getCount(); i++) {
  @@ -418,7 +420,7 @@
* This draws the background and border traits for an area given
* the position.
*
  - * @param block the area to get teh traits from
  + * @param block the area to get the traits from
* @param startx the start x position
* @param starty the start y position
* @param width the width of the area
  @@ -526,6 +528,8 @@
   if(started) {
   currentStream.add(Q\n);
   currentStream.add(BT\n);
  +// font last set out of scope in text section
  +currentFontName = ;
   }
   }
   
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2002-09-18 Thread keiron

keiron  2002/09/18 07:12:42

  Modified:src/org/apache/fop/render AbstractRenderer.java
   src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  updated for area tree and prepare for block border and back
  
  Revision  ChangesPath
  1.25  +24 -6 xml-fop/src/org/apache/fop/render/AbstractRenderer.java
  
  Index: AbstractRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/AbstractRenderer.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- AbstractRenderer.java 13 Sep 2002 08:21:55 -  1.24
  +++ AbstractRenderer.java 18 Sep 2002 14:12:42 -  1.25
  @@ -278,7 +278,7 @@
* @param bf  The before float area
*/
   protected void renderBeforeFloat(BeforeFloat bf) {
  -List blocks = bf.getBlocks();
  +List blocks = bf.getChildAreas();
   if (blocks != null) {
   renderBlocks(blocks);
   Block sep = bf.getSeparator();
  @@ -294,7 +294,7 @@
* @param footnote  The footnote
*/
   protected void renderFootnote(Footnote footnote) {
  -List blocks = footnote.getBlocks();
  +List blocks = footnote.getChildAreas();
   if (blocks != null) {
   Block sep = footnote.getSeparator();
   if (sep != null) {
  @@ -343,7 +343,7 @@
*/
   protected void renderFlow(Flow flow) {
   // the normal flow reference area contains stacked blocks
  -List blocks = flow.getBlocks();
  +List blocks = flow.getChildAreas();
   renderBlocks(blocks);
   
   }
  @@ -356,6 +356,7 @@
   protected void renderBlock(Block block) {
   List children = block.getChildAreas();
   if (children == null) {
  +handleBlockTraits(block);
   // simply move position
   currentBPPosition += block.getHeight();
   } else if (block instanceof BlockViewport) {
  @@ -366,8 +367,10 @@
   int saveBP = currentBPPosition;
   
   if (block.getPositioning() == Block.ABSOLUTE) {
  -currentIPPosition += block.getXOffset();
  -currentBPPosition += block.getYOffset();
  +currentIPPosition = containingIPPosition + block.getXOffset();
  +currentBPPosition = containingBPPosition + block.getYOffset();
  +
  +handleBlockTraits(block);
   
   renderBlocks(children);
   
  @@ -378,6 +381,8 @@
   currentIPPosition += block.getXOffset();
   currentBPPosition += block.getYOffset();
   
  +handleBlockTraits(block);
  +
   renderBlocks(children);
   
   // stacked and relative blocks effect stacking
  @@ -388,6 +393,18 @@
   }
   
   /**
  + * Handle block traits.
  + * This method is called when the correct ip and bp posiiton is
  + * set. This should be overridden to draw border and background
  + * traits for the block area.
  + *
  + * @param block the block area
  + */
  +protected void handleBlockTraits(Block block) {
  +// draw border and background
  +}
  +
  +/**
* Renders a block viewport.
*
* @param bvThe block viewport
  @@ -405,6 +422,7 @@
   currentBPPosition = 0;
   
   startVParea(ctm);
  +handleBlockTraits(bv);
   renderBlocks(children);
   endVParea();
   
  
  
  
  1.124 +49 -14xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.123
  retrieving revision 1.124
  diff -u -r1.123 -r1.124
  --- PDFRenderer.java  13 Sep 2002 08:21:55 -  1.123
  +++ PDFRenderer.java  18 Sep 2002 14:12:42 -  1.124
  @@ -17,7 +17,6 @@
   import org.apache.fop.apps.FOPException;
   import org.apache.fop.apps.Version;
   import org.apache.fop.fo.properties.RuleStyle;
  -//import org.apache.fop.datatypes.*;
   import org.apache.fop.pdf.PDFStream;
   import org.apache.fop.pdf.PDFDocument; 
   import org.apache.fop.pdf.PDFInfo;
  @@ -50,6 +49,7 @@
   import org.apache.fop.area.inline.InlineParent;
   import org.apache.fop.layout.FontState;
   import org.apache.fop.layout.FontMetric;
  +import org.apache.fop.traits.BorderProps;
   
   import org.w3c.dom.Document;
   
  @@ -117,47 +117,47 @@
   /**
* the current stream to add PDF commands to
*/
  -PDFStream currentStream;
  +protected PDFStream currentStream;
   
   /**
* the current annotation list to add annotations to
*/
  -PDFAnnotList currentAnnotList;
  +protected PDFAnnotList currentAnnotList;
   
   

cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2002-08-19 Thread keiron

keiron  2002/08/19 04:54:53

  Modified:src/org/apache/fop/image AbstractFopImage.java EPSImage.java
JpegImage.java XMLImage.java
   src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  load original data properly
  
  Revision  ChangesPath
  1.12  +11 -1 xml-fop/src/org/apache/fop/image/AbstractFopImage.java
  
  Index: AbstractFopImage.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/image/AbstractFopImage.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- AbstractFopImage.java 2 Aug 2002 08:47:02 -   1.11
  +++ AbstractFopImage.java 19 Aug 2002 11:54:52 -  1.12
  @@ -126,6 +126,12 @@
   loaded = loaded | BITMAP;
   }
   }
  +if(((type  ORIGINAL_DATA) != 0)  ((loaded  ORIGINAL_DATA) == 0)) {
  +success = success  loadOriginalData(ua);
  +if(success) {
  +loaded = loaded | ORIGINAL_DATA;
  +}
  +}
   return success;
   }
   
  @@ -134,6 +140,10 @@
   }
   
   protected boolean loadBitmap(FOUserAgent ua) {
  +return false;
  +}
  +
  +protected boolean loadOriginalData(FOUserAgent ua) {
   return false;
   }
   
  
  
  
  1.7   +2 -1  xml-fop/src/org/apache/fop/image/EPSImage.java
  
  Index: EPSImage.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/image/EPSImage.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- EPSImage.java 27 Jun 2002 11:45:54 -  1.6
  +++ EPSImage.java 19 Aug 2002 11:54:53 -  1.7
  @@ -71,6 +71,7 @@
   bbox[2] = (int) epsData.bbox[2];
   bbox[3] = (int) epsData.bbox[3];
   
  +loaded = loaded | ORIGINAL_DATA;
   }
   }
   
  
  
  
  1.6   +2 -2  xml-fop/src/org/apache/fop/image/JpegImage.java
  
  Index: JpegImage.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/image/JpegImage.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- JpegImage.java27 Jun 2002 11:45:54 -  1.5
  +++ JpegImage.java19 Aug 2002 11:54:53 -  1.6
  @@ -39,7 +39,7 @@
   super(href, imgReader);
   }
   
  -protected boolean loadBitmap(FOUserAgent ua) {
  +protected boolean loadOriginalData(FOUserAgent ua) {
   ByteArrayOutputStream baos = new ByteArrayOutputStream();
   ByteArrayOutputStream iccStream = new ByteArrayOutputStream();
   InputStream inStream;
  
  
  
  1.2   +2 -1  xml-fop/src/org/apache/fop/image/XMLImage.java
  
  Index: XMLImage.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/image/XMLImage.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XMLImage.java 8 Mar 2002 11:00:19 -   1.1
  +++ XMLImage.java 19 Aug 2002 11:54:53 -  1.2
  @@ -29,6 +29,7 @@
   super(href, imgInfo);
   if(imgInfo.data instanceof Document) {
   doc = (Document)imgInfo.data;
  +loaded = loaded | ORIGINAL_DATA;
   }
   ns = imgInfo.str;
   }
  
  
  
  1.115 +2 -2  xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.114
  retrieving revision 1.115
  diff -u -r1.114 -r1.115
  --- PDFRenderer.java  19 Aug 2002 09:57:47 -  1.114
  +++ PDFRenderer.java  19 Aug 2002 11:54:53 -  1.115
  @@ -516,7 +516,7 @@
   FopPDFImage pdfimage = new FopPDFImage(fopimage, url);
   int xobj = pdfDoc.addImage(null, pdfimage).getXNumber();
   fact.releaseImage(url, userAgent);
  -} else if (image/jpg.equals(mime)) {
  +} else if (image/jpeg.equals(mime)) {
   if (!fopimage.load(FopImage.ORIGINAL_DATA, userAgent)) {
   return;
   }
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2002-08-19 Thread J.Pietschmann

[EMAIL PROTECTED] wrote:
protected void renderRegion(RegionReference region) {
...
   +currentFontName = ;

Wouldn't it be better to do this each time after
writing a BT to the PDF output? (In  startVParea(),
renderViewport() and renderLeader()).

J.Pietschmann


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2002-06-26 Thread jeremias

jeremias2002/06/26 13:36:53

  Modified:src/org/apache/fop/render/pdf Tag: fop-0_20_2-maintain
PDFRenderer.java
  Log:
  Fix: Allow for fractional font sizes
  Submitted by: Björn Lütkemeier
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.91.2.5  +2 -2  xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.91.2.4
  retrieving revision 1.91.2.5
  diff -u -r1.91.2.4 -r1.91.2.5
  --- PDFRenderer.java  7 Jun 2002 20:12:35 -   1.91.2.4
  +++ PDFRenderer.java  26 Jun 2002 20:36:52 -  1.91.2.5
  @@ -622,7 +622,7 @@
   
   this.currentFontName = name;
   this.currentFontSize = size;
  -pdf = pdf.append(/ + name +   + (size / 1000) +  Tf\n);
  +pdf = pdf.append(/ + name +   + ((float)size / 1000) +  Tf\n);
   }
   
   //Do letter spacing (must be outside of [..] TJ)
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2002-06-07 Thread jeremias

jeremias2002/06/07 13:12:35

  Modified:src/org/apache/fop/render/pdf Tag: fop-0_20_2-maintain
PDFRenderer.java
  Log:
  Removed Tc that were inserted in [...] TJ commands. (Bug 9054)
  Instead, fixed letter-spacing.
  Completed javadocs
  Pretty-print using JRefactory (I hope I got the settings right. Otherwise, please 
tell me.)
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.91.2.4  +324 -276  xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.91.2.3
  retrieving revision 1.91.2.4
  diff -u -r1.91.2.3 -r1.91.2.4
  --- PDFRenderer.java  8 May 2002 15:18:48 -   1.91.2.3
  +++ PDFRenderer.java  7 Jun 2002 20:12:35 -   1.91.2.4
  @@ -1,10 +1,9 @@
   /*
  - * $Id: PDFRenderer.java,v 1.91.2.3 2002/05/08 15:18:48 chrisg Exp $
  + * $Id: PDFRenderer.java,v 1.91.2.4 2002/06/07 20:12:35 jeremias Exp $
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/
  -
   package org.apache.fop.render.pdf;
   
   // FOP
  @@ -49,16 +48,17 @@
   import java.awt.Dimension;
   
   /**
  - * Renderer that renders areas to PDF
  + * p
  + *
  + * Renderer that renders areas to PDF./p p
*
  - * Modified by Mark Lillywhite, [EMAIL PROTECTED] to use the
  - * new Renderer interface. The PDF renderer is by far the trickiest
  - * renderer and the best supported by FOP. It also required some
  - * reworking in the way that Pages, Catalogs and the Root object
  - * were written to the stream. The output document should now still
  - * be a 100% compatible PDF document, but hte order of the document
  - * writing is significantly different. See also the changes
  - * to PDFPage, PDFPages and PDFRoot.
  + * Modified by Mark Lillywhite, [EMAIL PROTECTED] to use the new Renderer
  + * interface. The PDF renderer is by far the trickiest renderer and the best
  + * supported by FOP. It also required some reworking in the way that Pages,
  + * Catalogs and the Root object were written to the stream. The output document
  + * should now still be a 100% compatible PDF document, but the order of the
  + * document writing is significantly different. See also the changes to
  + * PDFPage, PDFPages and PDFRoot./p
*/
   public class PDFRenderer extends PrintRenderer {
   
  @@ -89,25 +89,27 @@
   
   PDFColor currentColor;
   
  +float currentLetterSpacing = Float.NaN;
  +
   /**
* true if a TJ command is left to be written
*/
   boolean textOpen = false;
   
   /**
  - * the previous Y coordinate of the last word written.
  - * Used to decide if we can draw the next word on the same line.
  + * the previous Y coordinate of the last word written. Used to decide if we
  + * can draw the next word on the same line.
*/
   int prevWordY = 0;
   
   /**
  - * the previous X coordinate of the last word written.
  - * used to calculate how much space between two words
  + * the previous X coordinate of the last word written. used to calculate
  + * how much space between two words
*/
   int prevWordX = 0;
   
   /**
  - * The  width of the previous word. Used to calculate space between
  + * The width of the previous word. Used to calculate space between
*/
   int prevWordWidth = 0;
   
  @@ -132,6 +134,8 @@
   
   /**
* set up renderer options
  + *
  + * @param options  Options for the renderer
*/
   public void setOptions(Hashtable options) {
   this.options = options;
  @@ -140,19 +144,31 @@
   /**
* set the PDF document's producer
*
  - * @param producer string indicating application producing PDF
  + * @param producer  string indicating application producing PDF
*/
   public void setProducer(String producer) {
   this.pdfDoc.setProducer(producer);
   }
   
  +/**
  + * Starts the renderer
  + *
  + * @param stream   OutputStream to be written to
  + * @exception IOException  In case of an IO problem
  + */
   public void startRenderer(OutputStream stream)
  -throws IOException {
  +throws IOException {
   pdfDoc.outputHeader(stream);
   }
   
  +/**
  + * Called when the renderer has finished its work
  + *
  + * @param stream   OutputStream to be written to
  + * @exception IOException  In cas of an IO problem
  + */
   public void stopRenderer(OutputStream stream)
  -throws IOException {
  +throws IOException {
   renderRootExtensions(extensions);
   

cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2002-02-23 Thread klease

klease  02/02/23 08:48:59

  Modified:src/org/apache/fop/render AbstractRenderer.java
   src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  Take CTM into account for PDF rendering (small test)
  
  Revision  ChangesPath
  1.11  +12 -3 xml-fop/src/org/apache/fop/render/AbstractRenderer.java
  
  Index: AbstractRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/AbstractRenderer.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- AbstractRenderer.java 8 Jan 2002 09:52:17 -   1.10
  +++ AbstractRenderer.java 23 Feb 2002 16:48:59 -  1.11
  @@ -1,5 +1,5 @@
   /*
  - * $Id: AbstractRenderer.java,v 1.10 2002/01/08 09:52:17 keiron Exp $
  + * $Id: AbstractRenderer.java,v 1.11 2002/02/23 16:48:59 klease Exp $
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
  @@ -134,18 +134,27 @@
   protected void renderRegionViewport(RegionViewport port) {
   if (port != null) {
   Rectangle2D view = port.getViewArea();
  -currentBPPosition = (int) (view.getY() / 1000);
  -currentIPPosition = (int) (view.getX() / 1000);
  + // The CTM will transform coordinates relative to
  + // this region-reference area into page coords, so
  + // set origin for the region to 0,0.
  +currentBPPosition = 0; // (int) (view.getY() / 1000);
  +currentIPPosition = 0; // (int) (view.getX() / 1000);
   currentBlockIPPosition = currentIPPosition;
   
   RegionReference region = port.getRegion();
  + startVParea(region.getCTM());
   if (region.getRegionClass() == Region.BODY) {
   renderBodyRegion((BodyRegion) region);
   } else {
   renderRegion(region);
   }
  + endVParea();
   }
   }
  +
  +protected void startVParea(CTM ctm) { }
  +
  +protected void endVParea() { }
   
   protected void renderRegion(RegionReference region) {
   List blocks = region.getBlocks();
  
  
  
  1.97  +36 -5 xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.96
  retrieving revision 1.97
  diff -u -r1.96 -r1.97
  --- PDFRenderer.java  11 Feb 2002 09:45:39 -  1.96
  +++ PDFRenderer.java  23 Feb 2002 16:48:59 -  1.97
  @@ -1,5 +1,5 @@
   /*
  - * $Id: PDFRenderer.java,v 1.96 2002/02/11 09:45:39 keiron Exp $
  + * $Id: PDFRenderer.java,v 1.97 2002/02/23 16:48:59 klease Exp $
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
  @@ -204,18 +204,48 @@
   pageReferences.put(page, currentPage.referencePDF());
   }
   currentStream = this.pdfDoc.makeStream();
  -currentStream.add(BT\n);
  + // Transform origin at top left to origin at bottom left
  + currentStream.add(1 0 0 -1 0  +
  +   (int) Math.round(pageHeight / 1000) +  cm\n);
  +//currentStream.add(BT\n);
   
   Page p = page.getPage();
   renderPageAreas(p);
   
  -currentStream.add(ET\n);
  +//currentStream.add(ET\n);
   
   currentPage.setContents(currentStream);
   this.pdfDoc.addPage(currentPage);
   this.pdfDoc.output(ostream);
   }
   
  +
  +protected void startVParea(CTM ctm) {
  + // Set the given CTM in the graphics state
  + currentStream.add(q\n);
  + // multiply with current CTM
  + currentStream.add(ctm.toPDFctm() +  cm\n);
  + // Set clip?
  +}
  +
  +protected void endVParea() {
  + currentStream.add(Q\n);
  +}
  +
  +protected void renderRegion(RegionReference region) {
  + // Draw a rectangle so we can see it!
  + // x=0,y=0,w=ipd,h=bpd
  + currentStream.add(BT\n);
  + super.renderRegion(region);
  + currentStream.add(ET\n);
  +}
  +
  +
  +protected void renderLineArea(LineArea line) {
  + super.renderLineArea(line);
  + closeText();
  +}
  +
   public void renderCharacter(Character ch) {
   
   super.renderCharacter(ch);
  @@ -248,7 +278,8 @@
   updateColor(true, pdf);
   
   int rx = currentBlockIPPosition;
  -int bl = pageHeight - currentBPPosition;
  +// int bl = pageHeight - currentBPPosition;
  +int bl = currentBPPosition;
   
   // Set letterSpacing
   //float ls = 

cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2001-09-17 Thread keiron

keiron  01/09/17 04:04:50

  Modified:src/org/apache/fop/render AbstractRenderer.java
PrintRenderer.java
   src/org/apache/fop/render/awt AWTRenderer.java
   src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  put a few common methods in the abstract renderer
  
  Revision  ChangesPath
  1.2   +80 -4 xml-fop/src/org/apache/fop/render/AbstractRenderer.java
  
  Index: AbstractRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/AbstractRenderer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractRenderer.java 2001/08/21 06:18:55 1.1
  +++ AbstractRenderer.java 2001/09/17 11:04:49 1.2
  @@ -1,8 +1,8 @@
   /*
  - * $Id: AbstractRenderer.java,v 1.1 2001/08/21 06:18:55 keiron Exp $
  + * $Id: AbstractRenderer.java,v 1.2 2001/09/17 11:04:49 keiron Exp $
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
  - * LICENSE file included with these sources.
  + * LICENSE file included with these sources.
*/
   
   package org.apache.fop.render;
  @@ -18,8 +18,6 @@
   import org.apache.fop.datatypes.*;
   import org.apache.fop.render.pdf.FontSetup;
   
  -import org.apache.fop.svg.SVGArea;
  -
   import org.apache.log.Logger;
   
   // Java
  @@ -34,8 +32,86 @@
   public abstract class AbstractRenderer implements Renderer {
   protected Logger log;
   
  +/**
  + * the current vertical position in millipoints from bottom
  + */
  +protected int currentYPosition = 0;
  +
  +/**
  + * the current horizontal position in millipoints from left
  + */
  +protected int currentXPosition = 0;
  +
  +/**
  + * the horizontal position of the current area container
  + */
  +protected int currentAreaContainerXPosition = 0;
  +
   public void setLogger(Logger logger) {
   log = logger;
   }
   
  +public void renderSpanArea(SpanArea area) {
  +Enumeration e = area.getChildren().elements();
  +while (e.hasMoreElements()) {
  +org.apache.fop.layout.Box b =
  +(org.apache.fop.layout.Box)e.nextElement();
  +b.render(this);// column areas
  +}
  +
  +}
  +
  +protected abstract void doFrame(Area area);
  +
  +/**
  + * render block area
  + *
  + * @param area the block area to render
  + */
  +public void renderBlockArea(BlockArea area) {
  +// KLease: Temporary test to fix block positioning
  +// Offset ypos by padding and border widths
  +this.currentYPosition -= (area.getPaddingTop()
  +  + area.getBorderTopWidth());
  +doFrame(area);
  +Enumeration e = area.getChildren().elements();
  +while (e.hasMoreElements()) {
  +Box b = (Box)e.nextElement();
  +b.render(this);
  +}
  +this.currentYPosition -= (area.getPaddingBottom()
  +  + area.getBorderBottomWidth());
  +}
  +
  +/**
  + * render line area
  + *
  + * @param area area to render
  + */
  +public void renderLineArea(LineArea area) {
  +int rx = this.currentAreaContainerXPosition + area.getStartIndent();
  +int ry = this.currentYPosition;
  +int w = area.getContentWidth();
  +int h = area.getHeight();
  +
  +this.currentYPosition -= area.getPlacementOffset();
  +this.currentXPosition = rx;
  +
  +int bl = this.currentYPosition;
  +
  +Enumeration e = area.getChildren().elements();
  +while (e.hasMoreElements()) {
  +Box b = (Box)e.nextElement();
  +if (b instanceof InlineArea) {
  +InlineArea ia = (InlineArea)b;
  +this.currentYPosition = ry - ia.getYOffset();
  +} else {
  +this.currentYPosition = ry - area.getPlacementOffset();
  +}
  +b.render(this);
  +}
  +
  +this.currentYPosition = ry - h;
  +this.currentXPosition = rx;
  +}
   }
  
  
  
  1.12  +16 -63xml-fop/src/org/apache/fop/render/PrintRenderer.java
  
  Index: PrintRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/PrintRenderer.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- PrintRenderer.java2001/08/21 06:18:55 1.11
  +++ PrintRenderer.java2001/09/17 11:04:49 1.12
  @@ -1,5 +1,5 @@
   /*
  - * $Id: PrintRenderer.java,v 1.11 2001/08/21 06:18:55 keiron Exp $
  + * $Id: PrintRenderer.java,v 1.12 2001/09/17 11:04:49 keiron Exp $
* Copyright (C) 2001 The Apache Software Foundation. All rights 

cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2001-08-22 Thread keiron

keiron  01/08/22 23:14:33

  Modified:src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  made the pdf renderer reusable (eg. how cocoon uses it)
  prevents it creating invalid documents
  frees up memory
  
  Revision  ChangesPath
  1.86  +10 -1 xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.85
  retrieving revision 1.86
  diff -u -r1.85 -r1.86
  --- PDFRenderer.java  2001/08/21 08:26:11 1.85
  +++ PDFRenderer.java  2001/08/23 06:14:33 1.86
  @@ -1,5 +1,5 @@
   /*
  - * $Id: PDFRenderer.java,v 1.85 2001/08/21 08:26:11 keiron Exp $
  + * $Id: PDFRenderer.java,v 1.86 2001/08/23 06:14:33 keiron Exp $
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
  @@ -157,6 +157,15 @@
   renderRootExtensions(extensions);
   FontSetup.addToResources(this.pdfDoc, fontInfo);
   pdfDoc.outputTrailer(stream);
  +
  +// this frees up memory and makes the renderer reusable
  +this.pdfDoc = new PDFDocument();
  +this.pdfResources = null;
  +extensions = null;
  +currentStream = null;
  +currentAnnotList = null;
  +currentPage = null;
  +currentColor = null;
   }
   
   /**
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2001-08-21 Thread keiron

keiron  01/08/21 01:26:11

  Modified:src/org/apache/fop/apps StreamRenderer.java
   src/org/apache/fop/extensions Outline.java
   src/org/apache/fop/fo FOTreeBuilder.java
   src/org/apache/fop/fo/pagination Root.java
   src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  put back bookmark extension - not complete
  
  Revision  ChangesPath
  1.5   +18 -0 xml-fop/src/org/apache/fop/apps/StreamRenderer.java
  
  Index: StreamRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/apps/StreamRenderer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- StreamRenderer.java   2001/08/20 11:19:22 1.4
  +++ StreamRenderer.java   2001/08/21 08:26:11 1.5
  @@ -82,6 +82,11 @@
   */
   private IDReferences idReferences = new IDReferences();
   
  +/**
  + * The list of extensions.
  + */
  +private Vector extensions = new Vector();
  +
   private Logger log;
   
   public StreamRenderer(OutputStream outputStream, Renderer renderer) {
  @@ -97,6 +102,10 @@
   return idReferences;
   }
   
  +public void addExtension(ExtensionObj ext) {
  +extensions.addElement(ext);
  +}
  +
   public void startRenderer()
   throws SAXException {
   pageCount = 0;
  @@ -168,6 +177,15 @@
   throws SAXException {
   AreaTree a = new AreaTree(this);
   a.setFontInfo(fontInfo);
  +
  +for(Enumeration e = extensions.elements(); e.hasMoreElements(); ) {
  +ExtensionObj ext = (ExtensionObj)e.nextElement();
  +try {
  +ext.format(a);
  +} catch (FOPException fope) {
  +throw new SAXException(fope);
  +}
  +}
   
   try {
   pageSequence.format(a);
  
  
  
  1.4   +3 -4  xml-fop/src/org/apache/fop/extensions/Outline.java
  
  Index: Outline.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/extensions/Outline.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Outline.java  2001/07/30 20:29:20 1.3
  +++ Outline.java  2001/08/21 08:26:11 1.4
  @@ -1,5 +1,5 @@
   /*
  - * $Id: Outline.java,v 1.3 2001/07/30 20:29:20 tore Exp $
  + * $Id: Outline.java,v 1.4 2001/08/21 08:26:11 keiron Exp $
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
  @@ -11,7 +11,6 @@
   import org.apache.fop.pdf.PDFGoTo;
   import org.apache.fop.pdf.PDFAction;
   import org.apache.fop.datatypes.IDReferences;
  -import org.apache.fop.messaging.MessageHandler;
   
   import java.util.*;
   
  @@ -53,11 +52,11 @@
   _externalDestination =
   this.properties.get(external-destination).getString();
   if (_externalDestination != null !_externalDestination.equals()) {
  -MessageHandler.errorln(WARNING: fox:outline external-destination not 
supported currently.);
  +log.warn(fox:outline external-destination not supported currently.);
   }
   
   if (_internalDestination == null || _internalDestination.equals()) {
  -MessageHandler.errorln(WARNING: fox:outline requires an 
internal-destination.);
  +log.warn(fox:outline requires an internal-destination.);
   }
   
   for (FONode node = getParent(); node != null;
  
  
  
  1.26  +10 -4 xml-fop/src/org/apache/fop/fo/FOTreeBuilder.java
  
  Index: FOTreeBuilder.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/FOTreeBuilder.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- FOTreeBuilder.java2001/08/20 11:19:22 1.25
  +++ FOTreeBuilder.java2001/08/21 08:26:11 1.26
  @@ -1,5 +1,5 @@
   /*
  - * $Id: FOTreeBuilder.java,v 1.25 2001/08/20 11:19:22 keiron Exp $
  + * $Id: FOTreeBuilder.java,v 1.26 2001/08/21 08:26:11 keiron Exp $
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
  @@ -14,6 +14,7 @@
   import org.apache.fop.fo.pagination.Root;
   import org.apache.fop.system.BufferManager;
   import org.apache.fop.fo.pagination.PageSequence;
  +import org.apache.fop.extensions.ExtensionObj;
   
   import org.apache.log.Logger;
   
  @@ -159,8 +160,13 @@
   // [EMAIL PROTECTED] - tell the stream renderer to render
   // this page-sequence
   //
  -if(currentFObj instanceof PageSequence)
  +if(currentFObj instanceof PageSequence) {

cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2001-08-14 Thread gears

gears   01/08/14 10:56:40

  Modified:src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  This fixes A4 letter size printing from Jeremias Maerki.
  
  Revision  ChangesPath
  1.83  +5 -3  xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.82
  retrieving revision 1.83
  diff -u -r1.82 -r1.83
  --- PDFRenderer.java  2001/08/14 14:50:30 1.82
  +++ PDFRenderer.java  2001/08/14 17:56:40 1.83
  @@ -1,5 +1,5 @@
   /*
  - * $Id: PDFRenderer.java,v 1.82 2001/08/14 14:50:30 keiron Exp $
  + * $Id: PDFRenderer.java,v 1.83 2001/08/14 17:56:40 gears Exp $
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
  @@ -736,11 +736,13 @@
   }
   closeText();
   
  +float w = page.getWidth();
  +float h = page.getHeight();
   currentStream.add(ET\n);
   
   currentPage = this.pdfDoc.makePage(this.pdfResources, currentStream,
  -   page.getWidth() / 1000,
  -   page.getHeight() / 1000, page);
  +   Math.round(w / 1000),
  +   Math.round(h / 1000), page);
   
   if (page.hasLinks() || currentAnnotList != null) {
   if(currentAnnotList == null) {
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2001-07-20 Thread klease

klease  01/07/20 13:57:23

  Modified:src/org/apache/fop/render PrintRenderer.java
   src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  Add new addFilledRect method to make it possible to draw filled rectangles without 
any stroke in PDF; in doFrame, use rectangles instead of lines for borders to 
eliminate pixel errors
  
  Revision  ChangesPath
  1.7   +52 -18xml-fop/src/org/apache/fop/render/PrintRenderer.java
  
  Index: PrintRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/PrintRenderer.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- PrintRenderer.java2001/05/17 07:46:12 1.6
  +++ PrintRenderer.java2001/07/20 20:57:22 1.7
  @@ -1,4 +1,4 @@
  -/* $Id: PrintRenderer.java,v 1.6 2001/05/17 07:46:12 keiron Exp $
  +/* $Id: PrintRenderer.java,v 1.7 2001/07/20 20:57:22 klease Exp $
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
  @@ -142,7 +142,7 @@
  PDFPathPaint stroke);
   
   /**
  -   * add a filled rectangle to the current stream
  +   * add a filled and stroked rectangle to the current stream
  *
  * @param x the x position of left edge in millipoints
  * @param y the y position of top edge in millipoints
  @@ -155,6 +155,22 @@
  PDFPathPaint stroke, PDFPathPaint fill);
   
   /**
  +   * Add a filled rectangle to the current stream
  +   * This default implementation calls addRect
  +   * using the same color for fill and border.
  +   *
  +   * @param x the x position of left edge in millipoints
  +   * @param y the y position of top edge in millipoints
  +   * @param w the width in millipoints
  +   * @param h the height in millipoints
  +   * @param fill the fill color/gradient
  +   */
  +protected void addFilledRect(int x, int y, int w, int h,
  +PDFPathPaint fill) {
  + addRect(x,y,w,h,fill,fill);
  +}
  +
  +/**
  * render area container
  *
  * @param area the area container to render
  @@ -174,8 +190,8 @@
   } else if (area.getPosition() == Position.STATIC) {
   this.currentYPosition -=
 area.getPaddingTop() + area.getBorderTopWidth();
  -this.currentAreaContainerXPosition +=
  -  area.getPaddingLeft() + area.getBorderLeftWidth();
  + /* this.currentAreaContainerXPosition +=
  +area.getPaddingLeft() + area.getBorderLeftWidth();*/
   }
   
   this.currentXPosition = this.currentAreaContainerXPosition;
  @@ -274,7 +290,7 @@
   // I'm not sure I should have to check for bg being null
   // but I do
   if ((bg != null)  (bg.alpha() == 0)) {
  -this.addRect(rx, ry, w, -h, new PDFColor(bg), new PDFColor(bg));
  +this.addFilledRect(rx, ry, w, -h, new PDFColor(bg));
   }
   
   //rx = rx - area.getBorderLeftWidth();
  @@ -285,23 +301,41 @@
// Handle line style
// Offset for haft the line width!
BorderAndPadding bp = area.getBorderAndPadding();
  - int left = rx - area.getBorderLeftWidth() / 2;
  - int right = rx + w + area.getBorderRightWidth() / 2;
  - int top = ry + area.getBorderTopWidth() / 2;
  - int bottom = ry - h - area.getBorderBottomWidth() / 2;
  -if (area.getBorderTopWidth() != 0)
  -addLine(left, top, right, top, area.getBorderTopWidth(),
  +//   int left = rx - area.getBorderLeftWidth() / 2;
  +//   int right = rx + w + area.getBorderRightWidth() / 2;
  +//   int top = ry + area.getBorderTopWidth() / 2;
  +//   int bottom = ry - h - area.getBorderBottomWidth() / 2;
  +// if (area.getBorderTopWidth() != 0)
  +// addLine(left, top, right, top, area.getBorderTopWidth(),
  +// new PDFColor(bp.getBorderColor(BorderAndPadding.TOP)));
  +// if (area.getBorderLeftWidth() != 0)
  +// addLine(left, ry + area.getBorderTopWidth(), left, bottom, 
area.getBorderLeftWidth(),
  +// new PDFColor(bp.getBorderColor(BorderAndPadding.LEFT)));
  +// if (area.getBorderRightWidth() != 0)
  +// addLine(right, ry + area.getBorderTopWidth(), right, bottom, 
area.getBorderRightWidth(),
  +// new PDFColor(bp.getBorderColor(BorderAndPadding.RIGHT)));
  +// if (area.getBorderBottomWidth() != 0)
  +// addLine(rx - area.getBorderLeftWidth(), bottom, rx + w + 
area.getBorderRightWidth(), bottom, area.getBorderBottomWidth(),
  +// new PDFColor(bp.getBorderColor(BorderAndPadding.BOTTOM)));
  + // Try using 

cvs commit: xml-fop/src/org/apache/fop/render/pdf PDFRenderer.java

2001-06-25 Thread keiron

keiron  01/06/25 07:15:54

  Modified:src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  workaround for a bug in Acrobat Reader where text may disappear or
  be placed in the wrong position
  
  Revision  ChangesPath
  1.70  +16 -6 xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.69
  retrieving revision 1.70
  diff -u -r1.69 -r1.70
  --- PDFRenderer.java  2001/06/10 17:04:36 1.69
  +++ PDFRenderer.java  2001/06/25 14:15:45 1.70
  @@ -1,4 +1,4 @@
  -/* $Id: PDFRenderer.java,v 1.69 2001/06/10 17:04:36 arved Exp $
  +/* $Id: PDFRenderer.java,v 1.70 2001/06/25 14:15:45 keiron Exp $
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
  @@ -374,7 +374,6 @@
   GraphicsNodeRenderContext rc = getRenderContext();
   BridgeContext ctx = new BridgeContext(userAgent, rc);
   GraphicsNode root;
  -//System.out.println(creating PDFGraphics2D);
   PDFGraphics2D graphics =
 new PDFGraphics2D(true, fs, pdfDoc,
   currentFontName, currentFontSize, currentXPosition,
  @@ -387,7 +386,7 @@
   root.paint(graphics, rc);
   currentStream.add(graphics.getString());
   } catch (Exception e) {
  -e.printStackTrace();
  +MessageHandler.errorln(Error: svg graphic could not be rendered:  + 
e.getMessage());
   }
   
   currentStream.add(Q\n);
  @@ -408,6 +407,7 @@
   true);
   
   TextPainter textPainter = new StrokingTextPainter();
  +//TextPainter textPainter = new PDFTextPainter();
   
   GraphicsNodeRableFactory gnrFactory =
 new ConcreteGraphicsNodeRableFactory();
  @@ -499,9 +499,19 @@
   int space = prevWordX - rx + prevWordWidth;
   float emDiff =
 (float) space / (float) currentFontSize * 1000f;
  -pdf.append(Float.toString(emDiff));
  -pdf.append( );
  -pdf.append(startText);
  +// this prevents a problem in Acrobat Reader where large
  +// numbers cause text to disappear or default to a limit
  +if(emDiff  -33000) {
  +closeText();
  +
  +pdf.append(1 0 0 1  +(rx / 1000f) +   +
  +   (bl / 1000f) +  Tm [ + startText);
  +textOpen = true;
  +} else {
  +pdf.append(Float.toString(emDiff));
  +pdf.append( );
  +pdf.append(startText);
  +}
   }
   prevWordWidth = area.getContentWidth();
   prevWordX = rx;
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]