【JAVA基础】java之pdf 2,
分享于 点击 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>
相关文章
- 暂无相关文章
用户点评