Then it seems to me netbeans (if it's producing good output ==
assumptionA) is still using something that the command-line isn't.
And given assumptionA, you're java code is correct in terms of FOP and
your configuration isn't for ImageIO. Show your ImageIO related code
and are you sure it's in your app. Use the logger to show a message
when you add your loader. Or list all ImageIO services:
IIORegistry.getServiceProviders()
On 06/13/2011 03:01 PM, Oscar.Flores wrote:
ok well i put the xml in scr of my proyect i see that i still have the same
issues of the image render of any image i dont now if the xml its in place i
put the code down to see if something its missing
15:45:07,827 ERROR [render] Error while processing image:
c:\cfd\nombregp.bmp (i
mage/bmp)
org.apache.xmlgraphics.image.loader.ImageException: Cannot load image (no
suitab
le loader/converter combination available) for c:\cfd\nombregp.bmp
(image/bmp)
at
org.apache.xmlgraphics.image.loader.ImageManager.getImage(ImageManage
import mx.bigdata.sat.cfd.schema.Comprobante;
import mx.bigdata.sat.cfd.CFDv2;
import mx.bigdata.sat.security.KeyLoader;
import org.jdom.*;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
import org.jdom.output.Format;
import org.jdom.transform.JDOMSource;
//Java
import java.io.File;
import java.io.OutputStream;
//JAXP
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Source;
import javax.xml.transform.Result;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.sax.SAXResult;
//FOP
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;
//log4j
import org.apache.log4j.*;
import org.apache.log4j.xml.DOMConfigurator;
public final class Main {
@SuppressWarnings("unchecked")
static Logger logger = Logger.getLogger(Main.class);
public static void main(String[] args) throws Exception {
DOMConfigurator.configure("D:/Mis
documentos/NetBeansProjects/Factura/src/factura/log4j.xml");
logger.info("Entering application.");
try {
File file = new File(args[0]);
Comprobante comp = CFDv2.newComprobante(new
FileInputStream(file));
CFDv2 cfd = new CFDv2(comp);
PrivateKey key = KeyLoader.loadPKCS8PrivateKey(new
FileInputStream(args[1]),(args[2]));
X509Certificate cert = KeyLoader.loadX509Certificate(new
FileInputStream(args[3]));
Comprobante sellado = cfd.sellarComprobante(key, cert);
String cadena = cfd.getCadenaOriginal();
String sello = sellado.getSello();
// Creamos el builder basado en SAX
SAXBuilder builder = new SAXBuilder();
// Construimos el arbol DOM a partir del fichero xml
Document documentJDOM = builder.build(new
FileInputStream(args[0]));
Element raiz = documentJDOM.getRootElement();//toma el nodo raiz
del documento.
raiz.setAttribute("sello", sello);
raiz.setAttribute("certificado", sellado.getCertificado());
//System.out.println(raiz.getAttributeValue("sello"));
//System.out.println(raiz.getAttributeValue("certificado"));
// Recorremos los hijos de la etiqueta raĆz
List<Element> hijosRaiz = raiz.getChildren();
boolean Bandera=false;
for(Element hijo: hijosRaiz)
{
// Obtenemos el nombre y su contenido de tipo texto
String nombre = hijo.getName();
if (nombre.equals("Addenda"))
{ List<Element> subHijo = hijo.getChildren();
for(Element hij: subHijo)
{
hij.setAttribute("CadenaOriginal", cadena);
//System.out.println("CadenaOriginal:
"+hij.getAttributeValue("CadenaOriginal"));
Bandera=true;
break;
}
}
if (Bandera)
{
XMLOutputter out = new
XMLOutputter(Format.getPrettyFormat());
File nuevoXML = new File(args[0]);
try{
FileOutputStream archivoXML= new FileOutputStream
(nuevoXML);
out.output(documentJDOM, archivoXML);
}
catch (Exception
ex){System.out.println(ex.getMessage());}
// Para generar el pdf a partir de un archivo.xsl y un
// archivo.xml
}
}
// configure fopFactory as desired
FopFactory fopFactory = FopFactory.newInstance();
FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
// configure foUserAgent as desired
// Setup output
File pdffile = new File(args[5]);
OutputStream out = new java.io.FileOutputStream(pdffile);
out = new java.io.BufferedOutputStream(out);
try {
// Construct fop with desired output format
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF,
foUserAgent, out);
// Setup XSLT
TransformerFactory factory =
TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new
StreamSource(args[4]));
// Set the value of a in the stylesheet
transformer.setParameter("versionParam", "2.0");
// Setup input for XSLT transformation
Source src = new JDOMSource(documentJDOM);
// Resulting SAX events (the generated FO) must be piped
through to FOP
Result res = new SAXResult(fop.getDefaultHandler());
// Start XSLT transformation and FOP processing
// System.setProperty("java.awt.headless", "true");
transformer.transform(src, res);
} finally {
out.close();
}
System.out.println("Success!");
} catch (Exception e) {
e.printStackTrace(System.err);
System.exit(-1);
}
logger.info("Exiting application.");
}
Rob Sargent-4 wrote:
Try this log4j.xml: Place it at the root of your jar file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="false">
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
</layout>
</appender>
<category name="org">
<priority value="DEBUG"/>
</category>
<category name="org.apache">
<priority value="WARN"/>
</category>
<category name="org.springframework">
<priority value="WARN"/>
</category>
<category name="org.hibernate">
<priority value="DEBUG"/>
</category>
<category name="net">
<priority value="ERROR"/>
</category>
<category name="javax">
<priority value="ERROR"/>
</category>
<category name="java">
<priority value="ERROR"/>
</category>
<category name="sun">
<priority value="ERROR"/>
</category>
<category name="org.jboss">
<priority value="INFO"/>
</category>
<category name="org.jboss.seam">
<priority value="ERROR"/>
</category>
<root>
<appender-ref ref="CONSOLE"/>
</root>
</log4j:configuration>
On 06/13/2011 11:06 AM, Oscar.Flores wrote:
ok i dont thik i have a configuracion file i find the code that i put in
the
other post i think its the basic
Rob Sargent-4 wrote:
Do you have a config file for log4j. Usually it's in a resource tree.
Are you copying that to your deployment? Is your ant script including
the config file in the jar of your application?
On 06/13/2011 10:12 AM, Oscar.Flores wrote:
Ok yeah the log4j its having isuees to find the configuration
log4j:WARN No appenders could be found for logger
(org.apache.fop.util.ContentHandlerFactoryRegistry).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig
for
more info.
i go to the faq guide and it say try loading the class or resource
yourself.
If you can't find it, neither will log4j.
aaa i dont know where to set this
also here its my xlst
http://old.nabble.com/file/p31835645/FacturasOMF.xsl FacturasOMF.xsl
and the fo file that generate the editix
http://old.nabble.com/file/p31835645/Prueba.fo Prueba.fo
Rob Sargent-4 wrote:
The first thing is to really dig into what you did to netbeans to get
it
to work...
I've forgotten what your stylesheet looked like, so maybe if you show
us
again how you're referencing your images we might notice a problem.
It might also help to see the "fo" generated during your
transformation.
Can you grab that just after xslt and just before fop calls.
Are you sure there is no error being logged somewhere when you run
from
the command line? (Where is log4j writing and at what level?)
Oscar.Flores wrote:
You where absolutly rigth i miss a few libraries to add into the jar
file, i
modified the build.xml to add the package and jar that i need, now
the
error
message is not there but still the images dont show in the pdf i
remeber
that i do something in netbeans so they can add to the pdf but i cant
remeber i dont now if there is still a library that is missing or i
am
adding more than it should be
This is what i use :
cfdi-base-0.1.6-SNAPSHOT.jar
guava-r09.jar
guava-r09-gwt.jar
jaxb-impl-2.1.10.jar
avalon-framework-api-4.3.jar
avalon-framework-cvs-20020806.jar
avalon-logkit-2.1.jar
not-yet-commons-ssl-0.3.11.jar
commons-codec-1.5.jar
commons-codec-1.5-sources.jar
log4j-1.2.16.jar
fop.jar
jdom.jar
xmlgraphics-commons-1.4.jar
commons-io-1.3.1.jar
fop-pdf-images-2.0.1.SNAPSHOT.jar
pdfbox-app-1.5.0.jar
fontbox-1.3.1.jar
jempbox-1.3.1.jar
xercesImpl-2.7.1.jar
batik-all-1.7.jar
xml-apis-1.3.04.jar
xml-apis-ext-1.3.04.jar
avalon-framework-4.2.0.jar
xalan-2.7.0.jar
serializer-2.7.0.jar
commons-logging-1.0.4.jar
jai_codec.jar
jai_core.jar
batik-ext.jar
jai_imageio-1.1-sources.jar
Thanks Rob for the help
Rob Sargent-4 wrote:
I suspect running from your jar does not have/use the same classpath
that is in effect while you're in the debugger.
By what mechanism do you generate the jar?
Is it an executable jar or are you running java -classpath
<your-jar-here:other-jars> Main?
Make your IDE (netbeans) display the classpath it uses to run your
app
and compare that with the above.
On 06/09/2011 07:21 PM, Oscar.Flores wrote:
aaa ok well my problem is that when i do the pdf in netbean the pdf
is
fine
with images and evething but when i run the jar file in command it
give
me a
error
GRAVE: Error while processing image: I:\cfd\rfc.jpg (image/jpeg)
org.apache.xmlgraphics.image.loader.ImageException: Cannot load
image (no suitable loader/converter combination available) for
I:\cfd\rfc.jpg
(image/jpeg)
so i dont no what its not working and if i have to add something to
my
code
so the images can load i am soooo desperate what i am doing wrong??
i am sorry for the trouble and if a dont explain my self very good
jejeje
Rob Sargent-4 wrote:
Not at all sure what your problem is. All I can do is show you
what
works for us.
Our source xml looks like this:
<image image-id="381623861" reference-id="ref-220" width="750"
height="750" image-space-id="space-1" position="5"
image-pool-position="31" pos="4"
file="ref_10_1002108221"> <!-- an actual file
(.jpeg
copied the working directory of the transformer -->
<fields />
<caption />
<annotations>
<arrow_positions origHeight="750" origWidth="750" />
</annotations>
</image>
Our xslt looks like this for each image needed.
<xsl:template name="image">
<xsl:param name="img"/> <!-- This is the xml node from the
source
xml
above -->
<xsl:param name="width"/>
<xsl:param name="height" select="$width"/>
<xsl:param name="ignoreHeight">false</xsl:param>
<fo:block>
<fo:external-graphic src="{$img/@file}" height="{$height}"
width="{$width}" content-height="scale-to-fit"
content-width="scale-to-fit"
border="0.5pt solid black" border-collapse="separate">
<xsl:if test="$ignoreHeight != 'true'">
<xsl:attribute name="height">
<xsl:value-of select="$height"/>
</xsl:attribute>
</xsl:if>
</fo:external-graphic>
</fo:block>
</xsl:template>
Our generated fo looks like this:
<fo:table-cell>
<fo:block>
<fo:external-graphic border-collapse="separate" border="0.5pt
solid
black" content-width="scale-to-fit" content-height="scale-to-fit"
width="2.5in" height="2.5in" src="ref_10_1002108221" />
</fo:block>
</fo:table-cell>
And the generated pdfs include the image and are shipped to the
printer.
How does this stack up with what you have?
On 06/09/2011 01:19 PM, Oscar.Flores wrote:
Hi there well i still got the problem but searching IN INTERNET i
find
a
JPEG
renderer output for FOP its here
http://marc.info/?l=fop-user&m=125986752706366&w=2
the cuestion is can i render the image that i want to put in the
pdf,
and
then add to the xsl the render jpeg it will work??
and here explaints how use the render when he say uses fop as
normal
case
what does it mean
what else have to add to the code?? i hope you can help me
Thanks!!
// OutputStream out = what you want
FopFactory fopFactory = FopFactory.newInstance();
RendererFactory rendererFactory = null;
FOUserAgent foUserAgent = null;
rendererFactory =
fopFactory.getRendererFactory();
rendererFactory.addRendererMaker(new
MultiRendererMaker("jpeg"));
foUserAgent = fopFactory.newFOUserAgent();
rendererFactory.createRenderer(foUserAgent,
"image/jpeg");
Fop fop = fopFactory.newFop("image/jpeg",
foUserAgent,
out);
//Use fop as normal case
Rob Sargent-4 wrote:
Since you're now into xmlgraphics, I think you're best bet is
here
<http://xmlgraphics.apache.org/commons/image-loader.html>
On 06/07/2011 10:18 AM, Oscar.Flores wrote:
Hi ok this is for generate images that dont need to be
decompress
later??
and
the result image i put in my xsl ?? then it should work, aaa i
change
to
fop
1.0 and xml communs 1.4 and its the same jejeje dont find the
image
preload
org.apache.fop.fo.flow.ExternalGraphic bind
SEVERE: Image not available: The file format is not supported.
No
ImagePreloader for *.jpg or *.bmp
Rob Sargent-4 wrote:
ImageIO.write(bufferedImage, "JPEG", file);
On 06/07/2011 08:21 AM, Oscar.Flores wrote:
Ok i actually register the handler now what i have to do is
setup
this
handler or not?? and how can i do that, also it seem that the
bmp
its
not
recognice also what can i do?? thanks for the help rob
also i am trying to convert the images to see if it that
helps
Rob Sargent-4 wrote:
On 06/06/2011 02:29 PM, Oscar.Flores wrote:
Hi what can be the difference between execute the program
in
netbeans
(where
it works and print the images and the jar in the console)
Different classes being loaded by Netbeans than the console
app.
Get
Netbeans to show you the full classpath it's using in it's
"%classpath"
variable
also i tried the
imageIO.getImageReadersBySuffix but i cant interpretate the
data
y.y,
its
that or always its true in the boolean variable, and how
can
i
register
the
handler??
Talk to IIORegistry, some thing like
IIORegistry.getDefaultInstance().registerServiceProvider(new
CLibJPEGImageReaderSpi());
IIORegistry.getDefaultInstance().registerServiceProvider(new
CLibJPEGImageWriterSpi());
Note: those are not necessarily the services you have in
your
setup.
Thanks
Rob Sargent-4 wrote:
See the javadoc on IIORegistry. With ImageIO you may have
to
register
your handler(s). What does
ImageIO.getImageReadersBySuffix()
give
you.
For certain jpegs we don't use ImageIO, rather the classes
in
com.sun.image.codec.jpeg:
try {
FileOutputStream fos = new
FileOutputStream(file);
JPEGImageEncoder encoder =
JPEGCodec.createJPEGEncoder(fos);
JPEGEncodeParam param =
encoder.getDefaultJPEGEncodeParam(image.getRaster(),
JPEGDecodeParam.COLOR_ID_CMYK);
param.setQuality(1, false);
encoder.encode(image.getRaster(),
param);
fos.close();
} catch (Throwable t) {
logger.debug(t.getMessage());
}
But generally we use ImageIO
On 06/06/2011 08:29 AM, Oscar.Flores wrote:
Yeah i think i need your help again i tried tu run the
.jar
file
in
the
console it work but without images this it what appears
GRAVE: Error while processing image: I:\cfd\rfc.jpg
(image/jpeg)
org.apache.xmlgraphics.image.loader.ImageException:
Cannot
load
image
(no
suitable loader/converter combination available) for
I:\cfd\rfc.jpg
(image/jpeg)
i tried download the jai-imagio add to the class path
but
it
dont
work
Rob Sargent-4 wrote:
Very odd. I'm having no problems getting images into
pdfs
using
fop-1.0.
On 06/03/2011 11:04 AM, Oscar.Flores wrote:
aaa hey thanks for the help the other day, i resolve
the
problem
changing
the
version of FOP for the 0.95beta instead of the 1.0, it
works
now
it
prints
the image and its good, thanks and we are in touch if
anything
else
fails
jejeje
Rob Sargent-4 wrote:
Nothing in the log from the transformer?
On 06/03/2011 09:47 AM, Oscar.Flores wrote:
hi there i have another problem i hope you can help
me
the
pdf
that
i
create
with foe has no image, it dont show any of them, the
xsl
seems
to
be
rigth i
tested with EditX and the pdf show me the image, what
can
it
be,
i
have
xmlgraphics-commons-1.5svn, fop 1.0, fop-pdf-images
2.0.1
Snapshot
for
the
render of the image but it don work please help!!!
:,(
---------------------------------------------------------------------
To unsubscribe, e-mail:
[email protected]
For additional commands, e-mail:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail:
[email protected]
For additional commands, e-mail:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail:
[email protected]
For additional commands, e-mail:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail:
[email protected]
For additional commands, e-mail:
[email protected]
:-):confused::confused::confused::confused:=)
---------------------------------------------------------------------
To unsubscribe, e-mail:
[email protected]
For additional commands, e-mail:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail:
[email protected]
For additional commands, e-mail:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail:
[email protected]
http://old.nabble.com/file/p31822059/libraries.jpeg
http://old.nabble.com/file/p31822059/libraries.bmp libraries.bmp
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]