Ho bisogno di qualche dritta per convertire un file pdf in un file txt.
Avete qualche suggerimento?
Ho bisogno di qualche dritta per convertire un file pdf in un file txt.
Avete qualche suggerimento?
Scusami Ivan7 potresti specificare in quale contesto di serve questa conversione
Si hai ragione...
Io sto sviluppando un'applicazione che mi permette, attraverso le librerie di Open Office, di convertire i file presenti in una directory in formato txt.
Ora io sono riuscito a fare questa conversione per tutti i tipi di file (doc, xls, rtf...) ma non riesco a fare la conversione di un pdf.
Questa è la parte di codice che converte i file:
import com.sun.star.*;
public static void convert (File file, XComponent component, String dirFinale)
throws Exception{
XStorable xStorable = (XStorable)
UnoRuntime.queryInterface(XStorable.class, component);
String fileName = file.getName();
StringTokenizer st = new StringTokenizer(fileName,".");
File file2 = new File(dirFinale+st.nextToken());
String estensione = st.nextToken();
File fileFinale = new File(file2 +"."+estensione+".txt");
// Set properties for conversions
PropertyValue[] conversionProperties ;
if(estensione.equalsIgnoreCase("xls")){
conversionProperties = new PropertyValue[3];
conversionProperties[0] = new PropertyValue();
conversionProperties[0].Name = "Overwrite";
conversionProperties[0].Value = new Boolean(true);
conversionProperties[1] = new PropertyValue();
conversionProperties[1].Name = "FilterName";
conversionProperties[1].Value = "Text - txt - csv (StarCalc)";
conversionProperties[2] = new PropertyValue();
conversionProperties[2].Name = "FilterOptions";
conversionProperties[2].Value = "44,34,ANSI,1";
}else{
conversionProperties = new PropertyValue[2];
conversionProperties[0] = new PropertyValue();
conversionProperties[0].Name = "Overwrite";
conversionProperties[0].Value = new Boolean(true);
conversionProperties[1] = new PropertyValue();
conversionProperties[1].Name = "FilterName";
conversionProperties[1].Value = "Text (encoded)";
}
// Convert
try {
xStorable.storeToURL(createUNOFileURL(fileFinale),
conversionProperties);
} catch (IOException e) {
e.printStackTrace();
}
}
Mi dispiace ma non posso esserti di aiuto.
io ho usato questo pacchetto http://www.jpedal.org/
Grazie a tutti lo stesso.
Ho risolto scaricando il pacchetto PDFBox, attraverso il quale riesci ad estrarre il testo contenuto in un pdf e salvarlo in una variabile.
Poi ho creato un file di testo e gli ho passato come contenuto la mia variabile.
Ciao Mi daresti una mano
io provo a estrerre il ytesto ma ho la seguente ecezione!!!!
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.pdfparser.PDFParser;
import java.io.*;
import org.pdfbox.util.PDFTextStripper;
import java.util.Date;
public class Main {
/** Creates a new instance of Main */
public Main() {
}
public static void main(String[] args) {
PdfExtracter p=new PdfExtracter();
String t;
try {
t=p.GetTextFromPdf("C:\\Users\\Peppe\\Desktop\\pro va.pdf");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
class PdfExtracter {
public PdfExtracter() {
}
public String GetTextFromPdf(String filename) throws Exception
{
String text = "";
InputStream in=new FileInputStream(filename);
StringWriter out=new StringWriter();
PDFTextStripper stripper = new PDFTextStripper();
PDFParser parser = new PDFParser(in);
parser.parse();
PDDocument document = parser.getPDDocument();
stripper.writeText(document,out);
text=out.toString();
System.out.println(text);
return text;
/*PDDocument pdfdocument = null;
FileInputStream is = new FileInputStream(filename);
PDFParser parser = new PDFParser( is );
parser.parse();
pdfdocument = parser.getPDDocument();
ByteArrayOutputStream out = new ByteArrayOutputStream();
OutputStreamWriter writer = new OutputStreamWriter( out );
PDFTextStripper stripper = new PDFTextStripper();
stripper.writeText(pdfdocument.getDocument(), writer);
writer.close();
byte[] contents = out.toByteArray();
String ts = new String(contents);
System.out.println("the string length is"+contents.length+"\n");
return ts;*/
}
}
errore:
Exception in thread "main" java.lang.NoClassDefFoundError: org/fontbox/afm/AFMParser
at org.pdfbox.pdmodel.font.PDFont.getAFM(PDFont.java: 350)
at org.pdfbox.pdmodel.font.PDFont.getAverageFontWidth FromAFMFile(PDFont.java:313)
at org.pdfbox.pdmodel.font.PDSimpleFont.getAverageFon tWidth(PDSimpleFont.java:231)
at org.pdfbox.util.PDFStreamEngine.showString(PDFStre amEngine.java:276)
at org.pdfbox.util.operator.ShowTextGlyph.process(Sho wTextGlyph.java:80)
at org.pdfbox.util.PDFStreamEngine.processOperator(PD FStreamEngine.java:452)
at org.pdfbox.util.PDFStreamEngine.processSubStream(P DFStreamEngine.java:215)
at org.pdfbox.util.PDFStreamEngine.processStream(PDFS treamEngine.java:174)
at org.pdfbox.util.PDFTextStripper.processPage(PDFTex tStripper.java:336)
at org.pdfbox.util.PDFTextStripper.processPages(PDFTe xtStripper.java:259)
at org.pdfbox.util.PDFTextStripper.writeText(PDFTextS tripper.java:216)
at PdfExtracter.GetTextFromPdf(Main.java:40)
at Main.main(Main.java:18)
Java Result: 1
Ciao, ho avuto il tuo stesso problema, io devo estrarre il testo di un pdf (200 pagine o più) per salvarlo in un database, o simili. Mi potresti dire come hai fatto? mi dai qualche consiglio o magari se vuoi mi dai uno stralcio di codice della parte riguardatane l'estrazione.Originariamente inviato da Ivan7
Grazie a tutti lo stesso.
Ho risolto scaricando il pacchetto PDFBox, attraverso il quale riesci ad estrarre il testo contenuto in un pdf e salvarlo in una variabile.
Poi ho creato un file di testo e gli ho passato come contenuto la mia variabile.
In oltre vorrei sapere se hai usato solo PDFBox.
La discussione è vecchia di anni ed è stata già risollevata.Originariamente inviato da Vixer
Ciao, ho avuto il tuo stesso problema
Se hai un problema specifico, apri una discussione dedicata rispettando le norme indicate nel Regolamento di quest'area.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...