定制一个高端网站,合肥专业的房产网站建设,专门教做衣服的网站,wordpress 发邮件函数pdfbox开发包下载地址#xff1a;http://pdfbox.apache.org/程序实现了PDF文档的创建#xff0c;读入#xff0c;与修改PDF内容并保存。可能有个前提#xff0c;PDF文档不是加密的#xff0c;如果加密怎么办#xff0c;我没研究过#xff01;源代码如下#xff1a;pack…pdfbox开发包下载地址http://pdfbox.apache.org/程序实现了PDF文档的创建读入与修改PDF内容并保存。可能有个前提PDF文档不是加密的如果加密怎么办我没研究过源代码如下package com.gloomyfish.ups.pdf.reader;import java.io.File;import java.io.IOException;import java.io.OutputStream;import java.util.List;import org.apache.pdfbox.cos.COSArray;import org.apache.pdfbox.cos.COSString;import org.apache.pdfbox.exceptions.COSVisitorException;import org.apache.pdfbox.pdfparser.PDFStreamParser;import org.apache.pdfbox.pdfwriter.ContentStreamWriter;import org.apache.pdfbox.pdmodel.PDDocument;import org.apache.pdfbox.pdmodel.PDPage;import org.apache.pdfbox.pdmodel.common.PDStream;import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;import org.apache.pdfbox.pdmodel.font.PDFont;import org.apache.pdfbox.pdmodel.font.PDType1Font;import org.apache.pdfbox.util.PDFOperator;import org.apache.pdfbox.util.PDFTextStripper;/*** http://pdfbox.apache.org/** author fish**/public class PDFReader {public PDFReader(){createHelloPDF();readPDF();editPDF();}public void createHelloPDF() {PDDocument doc null;PDPage page null;try {doc new PDDocument();page new PDPage();doc.addPage(page);PDFont font PDType1Font.HELVETICA_BOLD;PDPageContentStream content new PDPageContentStream(doc, page);content.beginText();content.setFont(font, 12);content.moveTextPositionByAmount(100, 700);content.drawString(Hello);content.endText();content.close();doc.save(D:\\gloomyfish\\pdfwithText.pdf);doc.close();} catch (Exception e) {System.out.println(e);}}public void readPDF(){PDDocument helloDocument;try {helloDocument PDDocument.load(new File(D:\\gloomyfish\\pdfwithText.pdf));PDFTextStripper textStripper new PDFTextStripper();System.out.println(textStripper.getText(helloDocument));helloDocument.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void editPDF() {try {// pdfwithTextPDDocument helloDocument PDDocument.load(new File(D:\\gloomyfish\\pdfwithText.pdf));// PDDocument helloDocument PDDocument.load(new File(D:\\gloomyfish\\hello.pdf));// int pageCount helloDocument.getNumberOfPages();PDPage firstPage (PDPage)helloDocument.getDocumentCatalog().getAllPages().get(0);// PDPageContentStream content new PDPageContentStream(helloDocument, firstPage);PDStream contents firstPage.getContents();PDFStreamParser parser new PDFStreamParser(contents.getStream());parser.parse();List tokens parser.getTokens();for (int j 0; j tokens.size(); j){Object next tokens.get(j);if (next instanceof PDFOperator){PDFOperator op (PDFOperator) next;// Tj and TJ are the two operators that display strings in a PDFif (op.getOperation().equals(Tj)){// Tj takes one operator and that is the string// to display so lets update that operatorCOSString previous (COSString) tokens.get(j - 1);String string previous.getString();string string.replaceFirst(Hello, Hello World, fish);//Word you want to change. Currently this code changes word Solr to Solr123previous.reset();previous.append(string.getBytes(ISO-8859-1));}else if (op.getOperation().equals(TJ)){COSArray previous (COSArray) tokens.get(j - 1);for (int k 0; k previous.size(); k){Object arrElement previous.getObject(k);if (arrElement instanceof COSString){COSString cosString (COSString) arrElement;String string cosString.getString();string string.replaceFirst(Hello, Hello World, fish);// Currently this code changes word Solr to Solr123cosString.reset();cosString.append(string.getBytes(ISO-8859-1));}}}}}// now that the tokens are updated we will replace the page content stream.PDStream updatedStream new PDStream(helloDocument);OutputStream out updatedStream.createOutputStream();ContentStreamWriter tokenWriter new ContentStreamWriter(out);tokenWriter.writeTokens(tokens);firstPage.setContents(updatedStream);helloDocument.save(D:\\gloomyfish\\helloworld.pdf); //Output file namehelloDocument.close();//PDFTextStripper textStripper new PDFTextStripper();//System.out.println(textStripper.getText(helloDocument));//helloDocument.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (COSVisitorException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String[] args) {new PDFReader();}}