Flaying sourcer pdf (stream closed)

0

Witam napisałem taki oto kod żeby wygenerowac przykladową stronę pdf i rzuca mi wyjątek :

java.io.IOException: Stream closed
at java.io.BufferedInputStream.getInIfOpen(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at org.xhtmlrenderer.css.parser.Lexer.zzRefill(Lexer.java:1634)
at org.xhtmlrenderer.css.parser.Lexer.yylex(Lexer.java:1865)
at org.xhtmlrenderer.css.parser.CSSParser.next(CSSParser.java:1807)
at org.xhtmlrenderer.css.parser.CSSParser.la(CSSParser.java:1819)
at org.xhtmlrenderer.css.parser.CSSParser.stylesheet(CSSParser.java:159)
at org.xhtmlrenderer.css.parser.CSSParser.parseStylesheet(CSSParser.java:89)
at org.xhtmlrenderer.context.StylesheetFactoryImpl.parse(StylesheetFactoryImpl.java:78)
at org.xhtmlrenderer.context.StylesheetFactoryImpl.parse(StylesheetFactoryImpl.java:95)
at org.xhtmlrenderer.context.StylesheetFactoryImpl.getStylesheet(StylesheetFactoryImpl.java:174)
at org.xhtmlrenderer.context.StyleReference.readAndParseAll(StyleReference.java:123)
at org.xhtmlrenderer.context.StyleReference.setDocumentContext(StyleReference.java:107)
at org.xhtmlrenderer.pdf.ITextRenderer.setDocument(ITextRenderer.java:176)
at org.xhtmlrenderer.pdf.ITextRenderer.setDocument(ITextRenderer.java:143)
at pl.ivmx.warsztaty6.raport.testingPDF.main(testingPDF.java:38)

Mój kod:

 public class testingPDF {

	
	public static void main (String[]args)
	{
		 StringBuffer buf = new StringBuffer();
	        buf.append("<html>");
	        
	       
	        buf.append("<head><link rel='stylesheet' type='text/css' "+
	                "href='contentCss.css' media='print'/></head> <body> <p> HELLO WORLD </p> </body> </html> ");
	        
	       //generate the rest of the HTML
	        
	        // parse our markup into an xml Document
	        try {
	            DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
	            Document doc = (Document) builder.parse(new ByteArrayInputStream(buf.toString().getBytes("UTF-8")));
	            ITextRenderer renderer = new ITextRenderer();
	            renderer.setDocument( doc, null);
	            renderer.layout();
	           File file=new File("FirstPDF.pdf");
	           OutputStream os=new FileOutputStream(file);
	           
	            renderer.createPDF(os);
	            os.close();
	        } catch (Exception ex) {
	            ex.printStackTrace();
	        }
	}
}
0

No i czego oczekujesz? Najwyraźniej źle używasz tej biblioteki i się krzaczy.

0

Wygenerowania pliku pdf teraz znalazlem jeszcze prostszy przyklad:

 String s="";
	       s=s+"<html>";
	        
	       
	      s=s+"<head><link rel='stylesheet' type='text/css' "+
	                "href='contentCss.css' media='print'/></head> <body> <p> HELLO WORLD </p> </body> </html> ";
 try{
	        	File f=new File("TestPDFFFF.pdf");
	        	  OutputStream os=new FileOutputStream(f);
	        	  ITextRenderer renderer=new ITextRenderer();
	        	  renderer.setDocumentFromString(s);
	        	  renderer.layout();
	        	  renderer.createPDF(os);
	        }catch(Exception e)
	        {
	        	e.printStackTrace();
	        }
	         

I znowu stream is closed

1

Błąd wynika najwyraźniej z niepoprawnego inputu. Po prostu parser ITexta oczekuje że cośtam jeszcze będzie w tym stringu a string się kończy.

0

Wywalilem to od nowa i napisalem tak samo od zera:D i działa pewnie jakas literowka ktorej w tym stringu na pierwszy rzut oka nie widac;D dzieki za pomoc:P

1 użytkowników online, w tym zalogowanych: 0, gości: 1