【问题标题】:itext Converting PDF to csvitext 将 PDF 转换为 csv
【发布时间】:2012-08-01 07:26:19
【问题描述】:

我正在尝试使用 itext 框架将 pdf 文件转换为 csv 以导入到 excel 中。

输出是乱码,我认为我缺少有关格式转换的步骤,但是我似乎无法在 itext 站点中找到信息并正在寻求帮助。

当前如下。

package com.pdf.convert;

import java.io.FileOutputStream;
import java.io.IOException;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfWriter;

public class ThirdPDF {

    private static String INPUTFILE = "/location/test.pdf";
    private static String OUTPUTFILE = "/location/test.csv";

    public static void main(String[] args) throws DocumentException,
            IOException {
        Document document = new Document();

        PdfWriter writer = PdfWriter.getInstance(document,
                new FileOutputStream(OUTPUTFILE));
        document.open();
        PdfReader reader = new PdfReader(INPUTFILE);
        int n = reader.getNumberOfPages();
        PdfImportedPage page;
        // Go through all pages
        for (int i = 1; i <= n; i++) {
            // Only page number 2 will be included
            if (i == 2) {
                page = writer.getImportedPage(reader, i);
                Image instance = Image.getInstance(page);
                document.add(instance);
            }
        }
        document.close();
    }
} 

【问题讨论】:

  • iText 是一个用于 PDF 创建和操作的库。它不会转换为其他格式。
  • @AlexisPigeon 我刚刚发现了 PDFBox,好多了

标签: java pdf itext


【解决方案1】:

将 PDF 文件转换为 CSV 文件。 当前目录和文件创建基于 Android 框架。 相应地根据您的框架更改您的路径和目录。

private void convertPDFToCSV(String pdfFilePath) {
        String myfolder = Environment.getExternalStorageDirectory() + "/Mycsv";
        if (createFolder(myfolder)) {
            try {
                Document document = new Document();
                document.open();
                FileOutputStream fos=new FileOutputStream(myfolder + "/MyCSVFile.csv");
                StringBuilder parsedText=new StringBuilder();
                PdfReader reader1 = new PdfReader(pdfFilePath);
                int n = reader1.getNumberOfPages();
                for (int i = 0; i <n ; i++) {
                    parsedText.append(parsedText+PdfTextExtractor.getTextFromPage(reader1, i+1).trim()+"\n") ;
                    //Extracting the content fromx the different pages
                }
                StringReader stReader = new StringReader(parsedText.toString());
                int t;
                while((t=stReader.read())>0)
                    fos.write(t);
                document.close();

            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    private boolean createFolder(String myfolder) {

        File f = new File(myfolder);
        if (!f.exists()) {
            if (!f.mkdir()) {
                return false;
            } else {
                return true;
            }
        }else{
            return true;
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    相关资源
    最近更新 更多