Post by Sun_Seiyaio ho scritto acrobat, non acrobat reader....
è un dettaglio ma acrobat può scriver i pdf...
è vero...
anche se sono in pochi ad avere la licenza di acrobat....costa un
botto....
cmq se vuoi questo è il codice per leggere i pdf...
package com.federico.pdfreader;
import java.io.*;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import org.jpedal.PdfDecoder;
import org.jpedal.exception.PdfException;
import org.jpedal.exception.PdfSecurityException;
import org.jpedal.grouping.PdfGroupingAlgorithms;
import org.jpedal.objects.PdfPageData;
import org.jpedal.utils.LogWriter;
import org.jpedal.utils.Strip;
public class EstrattoreTesto extends Thread {
private String filename;
private int wordsExtracted;
private PdfDecoder decodePdf;
private String outputDir;
private Pdfreader frame;
public EstrattoreTesto(String filename,pdfreader frame) {
this.filename=filename;
this.frame=frame;
}
public void estrai() {
this.start();
}
public void run() {
PdfDecoder.useTextExtraction();
outputDir ="c:\\pdfreader\\";
try {
decodePdf = new PdfDecoder(false);
decodePdf.setExtractionMode(1);
decodePdf.init(true);
PdfGroupingAlgorithms.useUnrotatedCoords = false;
System.out.println("Apertura file :" + filename);
decodePdf.openPdfFile(filename);
}
catch(Exception ex) {
System.out.println(ex.toString());
}
if(decodePdf.isEncrypted() && !
decodePdf.isPasswordSupplied() && !decodePdf.isExtractionAllowed()) {
System.out.println("Impossibile eseguire
l'estrazione per politiche di sicurezza sul file");
}
else {
boolean flag = true;
int j = decodePdf.getPageCount();
try {
for(int k = ((flag) ? 1 : 0); k < j + 1; k++)
{
decodePdf.decodePage(k);
PdfGroupingAlgorithms pdfgroupingalgorithms =
decodePdf.getGroupingObject();
PdfPageData pdfpagedata =
decodePdf.getPdfPageData();
int l = pdfpagedata.getMediaBoxX(k);
int i1 = pdfpagedata.getMediaBoxWidth(k) + l;
int j1 = pdfpagedata.getMediaBoxX(k);
int k1 = pdfpagedata.getMediaBoxHeight(k) -
j1;
System.out.println("Estrazione pagina "+k);
// JFrame f=new JFrame();
// JTextField tp=new JTextField("Estrazione
pagina "+k);
// f.add(tp);
// f.setVisible(true);
Vector vector = null;
try {
vector =
pdfgroupingalgorithms.extractTextAsWordlist(l, k1, i1, j1, k, false,
true, "&:=()!;.,\\/\"\"''");
}
catch(PdfException ex)
{
decodePdf.closePdfFile();
System.err.println("Eccezione = " + ex );
}
if(vector == null) {
System.out.println("Testo non trovato");
}
else {
File file = new File(outputDir);
if(!file.exists())
file.mkdirs();
int l1 = vector.size() / 5;
wordsExtracted = wordsExtracted + l1;
OutputStreamWriter outputstreamwriter =
new OutputStreamWriter(new FileOutputStream(outputDir + "pagina-" + k
+ ".doc"), "UTF-8");
String s2;
int i2;
int j2;
int k2;
int l2;
for(Iterator iterator = vector.iterator();
iterator.hasNext(); outputstreamwriter.write(s2+" ")) {
s2 = (String)iterator.next();
s2 = Strip.convertToText(s2);
i2 =
(int)Float.parseFloat((String)iterator.next());
j2 =
(int)Float.parseFloat((String)iterator.next());
k2 =
(int)Float.parseFloat((String)iterator.next());
l2 =
(int)Float.parseFloat((String)iterator.next());
}
outputstreamwriter.close();
}
decodePdf.flushObjectValues(false);
}
}
catch(Exception ex)
{
decodePdf.closePdfFile();
System.err.println("Eccezione: " + ex);
ex.printStackTrace();
}
decodePdf.flushObjectValues(true);
System.out.println("Testo letto");
}
decodePdf.closePdfFile();
decodePdf = null;
JOptionPane.showMessageDialog(frame,"Estrazione
effettuata");
}
}
questa classe usa altre classi del mio progetto...
cmq è lei che si occupa della lettura del file pdf...
estrapola ciò che ti serve...
e in bocca al lupo
Linus