Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PDFBox有一半可用_Java_Pdfbox_Eclipse Classpath - Fatal编程技术网

Java 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

我从Apache下载了PDFBOX1.8.6

然后我将它复制到我在Java/Eclipse项目根目录下创建的“res”文件夹中。 然后我右键单击项目,转到属性,然后进入Java构建路径,然后在库中,然后单击添加JAR。。。并添加了它和它的文档

从那时起,在我的代码中,我可以导入(ish)PDFBox

例如,我可以看到:

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
我不确定你想做什么,但我尝试了复制你的步骤

  • 从下载了pdfbox-app-1.8.7.jar
  • 将jar导入到我的项目构建路径。PS:您不需要将javadoc添加到构建路径中。这是一个独立的过程
  • 尝试导入“org.apache.pdfbox.pdmodel.PDDocument;”(键入org.apache.pdfbox.pdmodel,然后按Ctrl+Space以获取类提示)。它正确地显示了
  • 其他软件包也是如此。例如,对于“org.apache.pdfbox.pdmodel.font.PDFont”,您需要键入“org.apache.pdfbox.pdmodel.font.”,然后按Ctrl+Space以获得类提示
  • 我认为您做了一个“import org.apache.pdfbox.pdmodel.*”;因此,它显示了所有包。对于链接3,4,5,从建议列表中选择相应的包,然后按Ctrl+Space以获取该包中的类建议。还要从构建路径中删除javadoc并进行检查

  • 希望这有帮助

    嗨,大卫,长相可能会骗人。。。否则,我将能够访问org.apache.pdfbox.pdmodel.PDDocument。但正如屏幕截图所示,“p”没有显示任何内容,因此这篇文章。你试过了吗?@SuperWoman即使我也找不到类文件
    PDFieldTreeNode
    ,所以我使用了
    2.0.0-SNAPSHOT
    哪个文件,哪个链接?Hello Tilman,给你的印象是你可以右键单击并下载,但你不能(),因为它会生成一个27.3kb的文件。你要左键点击,跟着兔子做