You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by vs...@apache.org on 2009/06/04 01:04:33 UTC
svn commit: r781614 - in /maven/doxia:
doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/itext/
doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/
Author: vsiveton
Date: Wed Jun 3 23:04:33 2009
New Revision: 781614
URL: http://svn.apache.org/viewvc?rev=781614&view=rev
Log:
DOXIA-331: Unable to renderer images on iText module
o added a temp system property for the rendering
Modified:
maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/itext/ITextPdfRenderer.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java
Modified: maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/itext/ITextPdfRenderer.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/itext/ITextPdfRenderer.java?rev=781614&r1=781613&r2=781614&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/itext/ITextPdfRenderer.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/itext/ITextPdfRenderer.java Wed Jun 3 23:04:33 2009
@@ -190,14 +190,23 @@
private void parse( String fullDocPath, SiteModule module, File iTextFile )
throws DocumentRendererException, IOException
{
- Writer writer = WriterFactory.newXmlWriter( iTextFile );
- ITextSink sink = (ITextSink) new ITextSinkFactory().createSink( writer );
+ System.setProperty( "itext.basedir", iTextFile.getParentFile().getAbsolutePath() );
- sink.setClassLoader( new URLClassLoader( new URL[] { iTextFile.getParentFile().toURI().toURL() } ) );
+ try
+ {
+ Writer writer = WriterFactory.newXmlWriter( iTextFile );
+ ITextSink sink = (ITextSink) new ITextSinkFactory().createSink( writer );
+
+ sink.setClassLoader( new URLClassLoader( new URL[] { iTextFile.getParentFile().toURI().toURL() } ) );
- parse( fullDocPath, module.getParserId(), sink );
+ parse( fullDocPath, module.getParserId(), sink );
- sink.close();
+ sink.close();
+ }
+ finally
+ {
+ System.getProperties().remove( "itext.basedir" );
+ }
}
/**
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java?rev=781614&r1=781613&r2=781614&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java Wed Jun 3 23:04:33 2009
@@ -24,6 +24,7 @@
import com.lowagie.text.Image;
import java.awt.Color;
+import java.io.File;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.StringReader;
@@ -1128,29 +1129,48 @@
actionContext.setAction( SinkActionContext.FIGURE_CAPTION );
}
- /** {@inheritDoc} */
+ /**
+ * If the <code>name</code> is a relative link, the internal link will used a System property <code>itext.basedir</code>,
+ * or the class loader.
+ * {@inheritDoc} */
public void figureGraphics( String name )
{
String urlName = null;
+ File nameFile = null;
if ( ( name.toLowerCase( Locale.ENGLISH ).startsWith( "http://" ) )
- || ( name.toLowerCase( Locale.ENGLISH ).startsWith( "https://" ) ) )
+ || ( name.toLowerCase( Locale.ENGLISH ).startsWith( "https://" ) ) )
{
urlName = name;
}
else
{
- if ( getClassLoader() != null )
+ if ( System.getProperty( "itext.basedir" ) != null )
{
- if ( getClassLoader().getResource( name ) != null )
+ try
+ {
+ nameFile = new File( System.getProperty( "itext.basedir" ), name );
+ urlName = nameFile.toURL().toString();
+ }
+ catch ( MalformedURLException e )
{
- urlName = getClassLoader().getResource( name ).toString();
+ getLog().error( "MalformedURLException: " + e.getMessage(), e );
}
}
else
{
- if ( ITextSink.class.getClassLoader().getResource( name ) != null )
+ if ( getClassLoader() != null )
{
- urlName = ITextSink.class.getClassLoader().getResource( name ).toString();
+ if ( getClassLoader().getResource( name ) != null )
+ {
+ urlName = getClassLoader().getResource( name ).toString();
+ }
+ }
+ else
+ {
+ if ( ITextSink.class.getClassLoader().getResource( name ) != null )
+ {
+ urlName = ITextSink.class.getClassLoader().getResource( name ).toString();
+ }
}
}
}
@@ -1165,6 +1185,16 @@
return;
}
+ if ( nameFile != null && !nameFile.exists() )
+ {
+ String msg = "No image '" + nameFile + "' found in your system, check the path.";
+ logMessage( "imageNotFound", msg );
+
+ return;
+ }
+
+ figure();
+
float width = 0;
float height = 0;
try
@@ -1176,15 +1206,15 @@
}
catch ( BadElementException e )
{
- // nop
+ getLog().error( "BadElementException: " + e.getMessage(), e );
}
catch ( MalformedURLException e )
{
- // nop
+ getLog().error( "MalformedURLException: " + e.getMessage(), e );
}
catch ( IOException e )
{
- // nop
+ getLog().error( "IOException: " + e.getMessage(), e );
}
writeAddAttribute( ElementTags.URL, urlName );
@@ -1193,6 +1223,8 @@
writeAddAttribute( ElementTags.PLAINHEIGHT, String.valueOf( height ) );
actionContext.setAction( SinkActionContext.FIGURE_GRAPHICS );
+
+ figure_();
}
// ----------------------------------------------------------------------