標籤:
iText簡介:
iText是著名的開放源碼的網站sourceforge一個項目,是用於產生PDF文檔的一個java類庫。通過iText不僅可以產生PDF或rtf的文檔,而且可以將XML、Html檔案轉化為PDF檔案。 iText的安裝非常方便,下載iText.jar檔案後,只需要在系統的CLASSPATH中加入iText.jar的路徑,在程式中就可以使用iText類庫了。
iText使用版本:5.5.4
方法簡介:根據關鍵字keyword定位出keyword所在頁和具體座標,在keyword所在位置處可以插入圖片文字==
1 import java.io.IOException; 2 import com.itextpdf.awt.geom.Rectangle2D.Float; 3 import com.itextpdf.text.pdf.PdfReader; 4 import com.itextpdf.text.pdf.parser.ImageRenderInfo; 5 import com.itextpdf.text.pdf.parser.PdfReaderContentParser; 6 import com.itextpdf.text.pdf.parser.RenderListener; 7 import com.itextpdf.text.pdf.parser.TextRenderInfo; 8 9 public class Demo10 {11 // 定義關鍵字12 private static String KEY_WORD = "KEYWORD";13 // 定義傳回值14 private static float[] resu = null;15 // 定義返回頁碼16 private static int i = 0;17 18 /*19 * 返回關鍵字所在的座標和頁數 float[0] >> X float[1] >> Y float[2] >> page20 */21 private float[] getKeyWords(String filePath)22 {23 try24 {25 PdfReader pdfReader = new PdfReader(filePath);26 int pageNum = pdfReader.getNumberOfPages();27 PdfReaderContentParser pdfReaderContentParser = new PdfReaderContentParser(28 pdfReader);29 30 // 下標從1開始31 for (i = 1; i < pageNum; i++)32 {33 pdfReaderContentParser.processContent(i, new RenderListener()34 {35 36 @Override37 public void renderText(TextRenderInfo textRenderInfo)38 {39 String text = textRenderInfo.getText();40 if (null != text && text.contains(KEY_WORD))41 {42 Float boundingRectange = textRenderInfo43 .getBaseline().getBoundingRectange();44 resu = new float[3];45 resu[0] = boundingRectange.x;46 resu[1] = boundingRectange.y;47 resu[2] = i;48 }49 }50 51 @Override52 public void renderImage(ImageRenderInfo arg0)53 {54 // TODO Auto-generated method stub55 56 }57 58 @Override59 public void endTextBlock()60 {61 // TODO Auto-generated method stub62 63 }64 65 @Override66 public void beginTextBlock()67 {68 // TODO Auto-generated method stub69 70 }71 });72 }73 } catch (IOException e)74 {75 // TODO Auto-generated catch block76 e.printStackTrace();77 }78 return resu;79 }80 81 }
【定位:PDF檔案定位關鍵字所在座標和頁碼】