标签: pdfbox

获取java.lang.NoClassDefFoundError:org/pdfbox/pdfparser /

下面是我正在使用的代码,我提供了一个pdf文件和一个文本文件作为命令行的输入.

import org.pdfbox.cos.COSDocument;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.pdmodel.PDDocumentInformation;
import org.pdfbox.util.PDFTextStripper;

import java.io.File;
import java.io.FileInputStream;
import java.io.PrintWriter;

public class PDFTextParser {

    PDFParser parser;
    String parsedText;
    PDFTextStripper pdfStripper;
    PDDocument pdDoc;
    COSDocument cosDoc;
    PDDocumentInformation pdDocInfo;

    // PDFTextParser Constructor 
    public PDFTextParser() {
    }

    // Extract text from PDF Document
    String pdftoText(String fileName) {

        System.out.println("Parsing text from PDF file " + fileName + "....");
        File f = new File(fileName);

        if (!f.isFile()) {
            System.out.println("File " + fileName + " does not exist.");
            return null;
        } …
Run Code Online (Sandbox Code Playgroud)

java pdfbox

14
推荐指数
1
解决办法
3万
查看次数

PDFBox:如何使用指定的打印机打印pdf?

我想使用PDFBox打印 iText创建的PDF文件.我已经使用PDDocument类及其方法print()成功地尝试了这个.您可以在此处找到文档:http://pdfbox.apache.org/apidocs/.

(我正在使用此代码:)

public static void printPDF(String fileName)
        throws IOException, PrinterException {
    PDDocument doc = PDDocument.load(fileName);
    doc.print();
}
Run Code Online (Sandbox Code Playgroud)

方法print()效果很好,但有一个问题:当我需要打印多个文件时,该方法要求我为每个文件选择打印机.

有没有办法如何只设置一次打印机?

对于打印机选择,我可以使用此代码,例如:

public static PrintService choosePrinter() {
    PrinterJob printJob = PrinterJob.getPrinterJob();
    if(printJob.printDialog()) {
        return printJob.getPrintService();          
    }
    else {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢


解:

public static PrintService choosePrinter() {
    PrinterJob printJob = PrinterJob.getPrinterJob();
    if(printJob.printDialog()) {
        return printJob.getPrintService();          
    }
    else {
        return null;
    }
}

public static void printPDF(String fileName, PrintService printer)
        throws IOException, PrinterException …
Run Code Online (Sandbox Code Playgroud)

java printing pdf pdfbox

14
推荐指数
1
解决办法
3万
查看次数

如何使用PDFBox从HTML创建PDF文件?

我正在尝试从HTML内容创建PDF.

public byte[] generatePdf(final XhtmlPDFGenerationRequest request) {

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    PDDocument document = new PDDocument();
    InputStream stream = new ByteArrayInputStream(request.getContent()
            .getBytes());

    PDStream pdstream = new PDStream(document, stream);
    document.save(baos);
    document.close();
    return this.toByteArray(baos);

}
Run Code Online (Sandbox Code Playgroud)

当我拿这个byte[]并保存到文件时,该文件是空白的.我PDStream用来将输入流嵌入到文档中

来自http://pdfbox.apache.org/apidocs/

public PDStream(PDDocument doc,
                InputStream str)
         throws IOException
Run Code Online (Sandbox Code Playgroud)

从输入流中读取所有数据并将其嵌入到文档中,这将关闭InputStream.

java pdf pdfbox

13
推荐指数
2
解决办法
5万
查看次数

使用PDFBox动态创建多页面文档

我正在尝试从Java ResultSet创建PDF报告.如果报告只有一页,我在这里没问题.问题来自报告可能长达一到十页的事实.现在,我有这个来创建一个单页文档:

PDDocument document = new PDDocument();
PDPage page = new PDPage(PDPage.PAGE_SIZE_LETTER);
document.addPage(page);
PDPageContentStream content = new PDPageContentStream(document,page);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如何在需要时动态创建页面.是否有一个面向对象的答案盯着我的脸,我只是看不到它?

java pdf pdfbox

13
推荐指数
2
解决办法
2万
查看次数

从PDF复制+粘贴文本导致垃圾

我正在写硕士论文 - NLP系统.我有一个组件 - 提取器.

它从PDF文件中提取纯文本.有一些PDF文件无法正确提取.Extractor(PDFBox库)返回如下字符串:

"┤xDn║if|d├gDF"Ti&cD╬lhdFÁhis~n╗xdf«"d┤ffih»h"

要么

"10a61a91a22a25a3a27a17a23a20a8a13a14a61a25a17"

我正在检查导致此提取问题的每个文件,并且所有这些文件的文本也无法从PDF Reader(Adobe Reader和FoxIt阅读器)进行复制粘贴.在这个阅读器中查看它们已启用,但在选择其内容并复制到剪贴板后,我得到相同的错误文本(如上所述 - 非语义正确的字符串或数字和字母串).

谁能帮帮我???

pdf pdfbox

12
推荐指数
3
解决办法
4万
查看次数

使用PDFBox将UTF-8编码的字符串写入PDF

我无法使用PDFBox将unicode字符写入PDF.下面是一些生成垃圾字符而不是输出"š"的示例代码.我可以添加什么来获得对UTF-8字符串的支持?

PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
PDPageContentStream contentStream = new PDPageContentStream(document, page);

PDType1Font font = PDType1Font.HELVETICA;
contentStream.setFont(font, 12);
contentStream.beginText();
contentStream.moveTextPositionByAmount(100, 400);
contentStream.drawString("š");
contentStream.endText();
contentStream.close();
document.save("test.pdf");
document.close();
Run Code Online (Sandbox Code Playgroud)

java pdf unicode utf-8 pdfbox

12
推荐指数
1
解决办法
2万
查看次数

使用Java从PDF中提取图像

我需要仅从PDF中提取条形码(使用矩形),而不是将整个PDF转换为图像.

图像格式可以是jpg/png.

java pdf image itext pdfbox

12
推荐指数
3
解决办法
2万
查看次数

PDFBox在单词中添加空格

当我尝试从我的PDF文件中提取文本时,它似乎在随机插入单词之间插入空格.

我在本页下载部分的以下示例文件中使用了pdfbox-app-1.6.0.jar(最新版本):http: //www.sheffield.gov.uk/roads/children/parents/6-11/pedestrian -训练

我已经尝试了几个其他PDF文件,它似乎在几个页面上做同样的事情.

我做以下事情:

java -jar pdfbox-app-1.6.0.jar ExtractText -force -console~/Desktop/ped training pdf.pdf

在下载的文件中,您将看到以下空格错误地插入到控制台上的结果中:"•如果儿童能够安全地走到学校,这可以减少拥堵."

"•为以后的生活发展良好的习惯."

"www.sheff ield.gov.uk"

"提前考虑!,这是基于"

等等

正如你所看到的,上面的几个单词之间有空格,我无法理解.

我在ubuntu上运行Sun的JDK 1.6.

我已经在几个不同的PDF文件上尝试了这个,并试图在论坛上搜索解决方案,有类似的错误,但似乎都已解决.

任何帮助或如果其他人有相同的问题请评论.这对于正确索引内容以进行搜索造成了很大的问题.

lucene solr pdfbox apache-tika

12
推荐指数
2
解决办法
3422
查看次数

PDF表格提取

我有(相同)数据保存为GIF图像文件和PDF文件,我想将其解析为HTML或XML.这些数据实际上是我大学食堂的菜单.这意味着有一个新版本的文件必须每周解析!通常,这些文件包含一些页眉和页脚文本,以及一个充满其他数据的表.我已经阅读了有关stackoverflow的一些帖子,我也开始尝试将表数据解析为HTML/XML:

PDF

  • PDFBox || iText(Java)
  • Google文档导入
  • PDF2HTML || PDF2Table

GIF

  • 正方体-OCR

通过使用PDFBox解析PDF文件,我得到了最好的结果,但仍然(因为菜单每周更改),它不够可靠.我收到的HTML有时包含更多,有时更少的"段落"(<p>),因此我无法对数据进行足够的解析.

这就是为什么我想知道是否有其他方法可以做到这一点?

pdf extraction pdfbox

12
推荐指数
4
解决办法
2万
查看次数

如何使用pdfbox在Java中签署pdf

我正在尝试使用pdfbox库签署pdf.我现在卡住了,真的需要帮助.

这是我的代码:

private static void signPdf(PDDocument document) throws Exception 
{
    PDSignature sig = new PDSignature();
    sig.setFilter(COSName.ADOBE_PPKLITE);
    sig.setSubFilter(COSName.ADBE_PKCS7_DETACHED);
    sig.setByteRange(new int[] {'a','a','a','a'});
    sig.setContents(new byte[]{(byte) 23, (byte) 23, (byte) 23, (byte) 23});

    SignatureOptions options = new SignatureOptions();

    document.addSignature(sig, new SignatureInterface() {
        public byte[] sign(InputStream content)
                throws SignatureException, IOException       {        
             //this should be made MD5 checksum?           
            return new byte[]{(byte) 'a', (byte) 'a', (byte) 'a', (byte) 'a'};
        }
    }, options);
}
Run Code Online (Sandbox Code Playgroud)

然后我保存我的pdf,但是:1)我注意到从未调用过sign方法2)我应该在哪里附加certyficate?在签名方法?

PDF格式:

/Type /Sig
/Filter /Adobe.PPKLite
/SubFilter /adbe.pkcs7.sha1
/Contents <0000000000. a lot of zeros..000> …
Run Code Online (Sandbox Code Playgroud)

pdf sign certificate pdfbox pkcs#7

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

pdfbox ×10

pdf ×8

java ×6

apache-tika ×1

certificate ×1

extraction ×1

image ×1

itext ×1

lucene ×1

pkcs#7 ×1

printing ×1

sign ×1

solr ×1

unicode ×1

utf-8 ×1