【定位:PDF檔案定位關鍵字所在座標和頁碼】

來源:互聯網
上載者:User

標籤:

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檔案定位關鍵字所在座標和頁碼】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.