Un jar che ho sviluppato genera l'errore:
Exception in thread "main" ExceptionConverter: com.itextpdf.text.exceptions.Inva
lidPdfException: '>' not expected at file pointer 773839
at com.itextpdf.text.pdf.PRTokeniser.throwError(PRTok eniser.java:197)
at com.itextpdf.text.pdf.PRTokeniser.nextToken(PRToke niser.java:336)
at com.itextpdf.text.pdf.PdfContentParser.nextValidTo ken(PdfContentParse
r.java:194)
at com.itextpdf.text.pdf.PdfContentParser.readPRObjec t(PdfContentParser.
java:164)
at com.itextpdf.text.pdf.PdfContentParser.parse(PdfCo ntentParser.java:89
)
at com.itextpdf.text.pdf.parser.PdfContentStreamProce ssor.processContent
(PdfContentStreamProcessor.java:358)
at com.itextpdf.text.pdf.parser.PdfReaderContentParse r.processContent(Pd
fReaderContentParser.java:79)
at code.PDF.getTestoPagina(PDF.java:38)
at code.Gestione.caricaTesto(Gestione.java:32)
at code.Gestione.caricaPDF(Gestione.java:20)
at code.Start.main(Start.java:91)
tale errore parte dalla classe:
L'errore si genera a partire dalla riga evidenziata in blu. Dovrebbe venir lanciato da un pdf quando il testo di una data pagina non è convertibile o estraibile, quindi nel mio caso dovrei restituire " ", come lo risolvo? avete altre migliorie da consigliarmi?codice:import java.io.FileInputStream; import java.io.IOException; import com.itextpdf.text.exceptions.InvalidPdfException; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.parser.PdfReaderContentParser; import com.itextpdf.text.pdf.parser.PdfTextExtractor; import com.itextpdf.text.pdf.parser.SimpleTextExtractionStrategy; public class PDF { private static PdfReader lettore; private String nomeFile; private PdfReaderContentParser parser; private static boolean protetto; public PDF(FileInputStream filePDF, String nome) throws IOException{ nomeFile=pulisciStringa(nome); try{ lettore=new PdfReader(filePDF); parser=new PdfReaderContentParser(lettore); protetto=false; }catch (InvalidPdfException e) { protetto=true; // e.printStackTrace(); // System.out.println(">>>> Il file "+nomeFile+" e' protetto"); } } private String pulisciStringa(String testo) { return testo.replaceAll("'", " ").replaceAll("\\s+", " "); } public String getTestoPagina(int pagina) throws IOException{ try{ parser.processContent(pagina,new SimpleTextExtractionStrategy()); return pulisciStringa(PdfTextExtractor.getTextFromPage(lettore, pagina)); }catch(IllegalArgumentException e){ // System.out.println(">>>> Pagina "+pagina+" con testo protettto"); return " "; } } public int getNumeroPg(){ return lettore.getNumberOfPages(); } public String getNome(){ return nomeFile; } public boolean isProtetto() { return protetto; }

Rispondi quotando