欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

【JAVA基础】java之pdf 2,

来源: javaer 分享于  点击 8972 次 点评:243

【JAVA基础】java之pdf 2,


 由于看到之前的关于java pdf的博客浏览量比较高,相信很多人都在解决如果处理pdf的问题,这些问题我也曾经处理过。这里简单分享一下。

之前讲过如何读取pdf的内容,这里就不再介绍了,这里主要解决的问题:

1.怎么给pdf添加文字,自定义位置。

2.怎么处理pdf 移动、分割、旋转等等。(这个是个难题,我也是想了很多方法才解决的)

这里我给个不错的例子,涵盖了大部分的知识点:这个例子把一张pdf旋转并且向上移动一点距离,在底部加入了一部分文字。

先看我们要做啥:

原图:

(图片已丢失)

处理后:

(图片已丢失)

代码:

public class PDFBpost1 extends PdfPageEventHelper{
/** 需要旋转,位移引用的PDF文件路径 */
    private static final String TEMPLATE
        = "genborderelpdf.pdf";
    /** 生成的PDF文件路径 */
    private static final String RESULT
        = "genborderelpdf_result.pdf";
    /** 导入的页面模版 */
    private static PdfImportedPage page;
public static void main(String[] args) throws Exception {
Document document = new Document(PageSize.A5, 36, 36, 72, 36);
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT));
    document.open();
    /** 运单文件 **/
        PdfReader reader = new PdfReader(TEMPLATE);
        PdfContentByte canvas = writer.getDirectContent();
    page = writer.getImportedPage(reader, 2); // Reader object, 页码
    canvas.addTemplate(page, 0f, -1f, 1f, 0f, -410, 625);//旋转并且往上移动 ,这里的参数 可以自己慢慢试着玩下就知道怎么弄了    
    
    /** 中文地址解决方案(还在进行中) **/
    //BaseFont bfChinese=BaseFont.createFont( "STSong-Light",   "UniGB-UCS2-H",   BaseFont.NOT_EMBEDDED);
    BaseFont bfChinese = BaseFont.createFont("STZHONGS.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
    Font ChineseFont = new Font(bfChinese, 12, Font.NORMAL);
    ColumnText.showTextAligned(writer.getDirectContentUnder(), Element.ALIGN_LEFT, new Phrase("中文地址:上海市", ChineseFont), 30, 52, 0);
    ColumnText.showTextAligned(writer.getDirectContentUnder(), Element.ALIGN_LEFT, new Phrase("收件人:呵呵呵呵呵呵呵呵呵呵", ChineseFont), 30, 37, 0);
    ColumnText.showTextAligned(writer.getDirectContentUnder(), Element.ALIGN_LEFT, new Phrase("邮编:654321 电话:12345678901 ABCDEFG", ChineseFont), 30, 22, 0);
    
    System.out.println("Done.");
        document.close();

}
}


484很神奇!

对了依赖jar包,我这里是用maven构建的,如果你是ant,自己找jar包吧


  <dependencies>
   <dependency>
  <groupId>com.lowagie</groupId>
  <artifactId>itext</artifactId>
  <version>[1.02b,2.1.7]</version>
  </dependency> 
  <dependency>
   <groupId>com.itextpdf</groupId>
   <artifactId>itext-asian</artifactId>
   <version>5.2.0</version>
</dependency>
<dependency>
<groupId>pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>0.7.3</version>
</dependency>

<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>2.0.0</version>
</dependency> 

<dependency>
<groupId>org.fontbox</groupId>
<artifactId>fontbox</artifactId>
<version>0.1.0</version>
</dependency>
  </dependencies>




相关文章

    暂无相关文章
相关栏目:

用户点评