Java PDFBox有一半可用
我从Apache下载了PDFBOX1.8.6 然后我将它复制到我在Java/Eclipse项目根目录下创建的“res”文件夹中。 然后我右键单击项目,转到属性,然后进入Java构建路径,然后在库中,然后单击添加JAR。。。并添加了它和它的文档 从那时起,在我的代码中,我可以导入(ish)PDFBox 例如,我可以看到:Java PDFBox有一半可用,java,pdfbox,eclipse-classpath,Java,Pdfbox,Eclipse Classpath,我从Apache下载了PDFBOX1.8.6 然后我将它复制到我在Java/Eclipse项目根目录下创建的“res”文件夹中。 然后我右键单击项目,转到属性,然后进入Java构建路径,然后在库中,然后单击添加JAR。。。并添加了它和它的文档 从那时起,在我的代码中,我可以导入(ish)PDFBox 例如,我可以看到: import org.apache.pdfbox.pdmodel.*; 但是,如果您想做一些有用的事情,您需要更多地导入,通常以以下形式导入: import org.apac
import org.apache.pdfbox.pdmodel.*;
但是,如果您想做一些有用的事情,您需要更多地导入,通常以以下形式导入:
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.font.PDFont;
出于某种奇怪的原因,我看不到这些
有人能帮我解释一下吗?相关软件包都在您的第二个屏幕截图中。您必须首先从显示的列表中选择包;然后按Ctrl-Space可以选择每个包中的类。从你的第二个屏幕截图来看,这一切似乎都很正常。官方来源链接的当前文件不是正确的文件。它的重量是28K,而不是几兆字节。哇,这一次不是我!哈哈哈问题是您已经将javadoc jar和实际jar作为构建库导入 我现在就试着这么做,但我遇到了和你完全一样的问题 从构建路径中删除javadoc。如果要将javadoc连接到pdfbox jar,应该单击真实jar左侧的三角形,选择javadoc location,单击“编辑…”,然后选择“存档中的javadoc”并选择存档
顺便说一下,我可能错了,但是pdfbox-app-1.8.6.jar似乎是用于命令行应用程序的。用于构建您自己的项目的可能是打火机
pdfbox-1.8.6.jar
我现在使用最新的1.8.7,但在将其添加到libs并将jar文件设置为“添加构建路径”并按顺序检查并导出之后。。它给出的错误与
"10-28 13:45:14.510: E/AndroidRuntime(1630): java.lang.NoClassDefFoundError: org.apache.pdfbox.pdmodel.PDDocument"..
实际上我在这上面浪费了5个小时。。。。但后来我发现iText是用于同样的PDF用途的。。运行良好
链接到iText教程
对于您的问题,我必须说您需要更改pdfbox jar文件,并下载许多支持jar的文件,或者您可以尝试下面的代码 这里的代码使用pdfbox和apachetika解析pdf文件并将输出保存到某个位置 您需要以下这些罐子 bcprov-1.45.jar fontbox-1.5.0.jar org.apache.tika.jar org.apache.tika.parsers.jar pdfbox-1.3.1.jar
package readpdf;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.ContentHandler;
public class readpdf {
public static void main(String args[]) throws Exception {
File file = new File("OutputFile");
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
InputStream is = null;
OutputStream o=null;
try {
is = new FileInputStream(InputFile);
ContentHandler contenthandler = new BodyContentHandler();
Metadata metadata = new Metadata();
AutoDetectParser parser = new AutoDetectParser();
parser.parse(is, contenthandler, metadata);
System.out.println(contenthandler.toString());
bw.write(contenthandler.toString());
bw.close();
//String[] a = metadata.names();
/* for(int i = 0;i< a.length-1;i++)
{
System.out.println(a[i]);
}*/
//System.out.println("title = "+metadata.get("title"));
// System.out.println("Author = "+metadata.get("Author"));
// System.out.println("Content-Type = "+metadata.get("Content-Type"));
// System.out.println("Producer = "+metadata.get("producer"));
// System.out.println("Created = "+metadata.get("created"));
// System.out.println("Last-Modified = "+metadata.get("Last-Modified"));
System.out.println("*******************Content of PDF ********************");
System.out.println(contenthandler.toString());
}
catch (Exception e) {
e.printStackTrace();
}
finally {
if (is != null) is.close();
}
}
}
package-readpdf;
导入java.io.BufferedWriter;
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.FileWriter;
导入java.io.InputStream;
导入java.io.OutputStream;
导入org.apache.tika.metadata.metadata;
导入org.apache.tika.parser.AutoDetectParser;
导入org.apache.tika.sax.BodyContentHandler;
导入org.xml.sax.ContentHandler;
公共类readpdf{
公共静态void main(字符串args[])引发异常{
文件文件=新文件(“输出文件”);
//如果文件不存在,则创建它
如果(!file.exists()){
createNewFile();
}
FileWriter fw=新的FileWriter(file.getAbsoluteFile());
BufferedWriter bw=新的BufferedWriter(fw);
InputStream=null;
OutputStream o=null;
试一试{
is=新文件InputStream(InputFile);
ContentHandler ContentHandler=新的BodyContentHandler();
元数据=新元数据();
AutoDetectParser=新的AutoDetectParser();
parser.parse(is、contenthandler、元数据);
System.out.println(contenthandler.toString());
write(contenthandler.toString());
bw.close();
//字符串[]a=metadata.names();
/*for(int i=0;i
我不确定你想做什么,但我尝试了复制你的步骤
希望这有帮助嗨,大卫,长相可能会骗人。。。否则,我将能够访问org.apache.pdfbox.pdmodel.PDDocument。但正如屏幕截图所示,“p”没有显示任何内容,因此这篇文章。你试过了吗?@SuperWoman即使我也找不到类文件
PDFieldTreeNode
,所以我使用了2.0.0-SNAPSHOT
哪个文件,哪个链接?Hello Tilman,给你的印象是你可以右键单击并下载,但你不能(),因为它会生成一个27.3kb的文件。你要左键点击,跟着兔子做