JAvaはpdfのいくつかの基本的な処理に対して
2414 ワード
apahce孵化器の1つの項目はpdfboxで、これはpdfを操作して処理するjarパッケージです
実現できる方法は
pdf情報抽出:
pdfコンテンツをtxtドキュメントに抽出しますが、グラフ、フォーマットが失われています.
pdf切り取り
特定のページ番号のpdf、例えばpages=[1,2,3,4,5]を抽出すると、元のpdfの最初の5ページの5つのpdfファイルが出力されます.
pdf接着
いくつかのpdfを新しいpdfにつづる
pdf切り取りとpdf接着はグラフ、フォーマットなどの情報を失わない
必要なjarパッケージを添付します
実現できる方法は
pdf情報抽出:
public void getContent(String file) throws Exception {
PDDocument pdf = PDDocument.load(file);
PDFTextStripper s = new PDFTextStripper();
s.setStartPage(1);
s.setEndPage(10);
String outfile = "1.txt";
Writer out = new OutputStreamWriter(new FileOutputStream(outfile), "utf8");
s.writeText(pdf, out);
}
pdfコンテンツをtxtドキュメントに抽出しますが、グラフ、フォーマットが失われています.
pdf切り取り
@SuppressWarnings("unchecked")
public void getPdf(String file, int[] pages) throws Exception {
Splitter splitter = new Splitter();
PDDocument document = null;
List<PDDocument> documents = null;
document = PDDocument.load(file);
splitter.setSplitAtPage(1);// pdf
documents = splitter.split(document);
for (int i = 0; i < pages.length && pages[i] < documents.size(); i++) {
PDDocument doc = (PDDocument) documents.get(pages[i]);
FileOutputStream output = null;
COSWriter writer = null;
output = new FileOutputStream(pages[i] + ".pdf");//
writer = new COSWriter(output);
writer.write(doc);
doc.close();
}
}
特定のページ番号のpdf、例えばpages=[1,2,3,4,5]を抽出すると、元のpdfの最初の5ページの5つのpdfファイルが出力されます.
pdf接着
public void buildPdf(String[] files) throws Exception {
PDFMergerUtility u = new PDFMergerUtility();
PDDocument out = new PDDocument();
for (int i = 0; i < files.length; i++) {
PDDocument doc = PDDocument.load(files[i]);
u.appendDocument(out, doc);
doc.close();
}
FileOutputStream output = null;
COSWriter writer = null;
output = new FileOutputStream("out.pdf");//
writer = new COSWriter(output);
writer.write(out);
out.close();
}
いくつかのpdfを新しいpdfにつづる
pdf切り取りとpdf接着はグラフ、フォーマットなどの情報を失わない
必要なjarパッケージを添付します