用itext定制图片背景并输出中文

这篇博客主要介绍了如何使用iText库在PDF中添加背景图片,并且提到了在处理中文字符时遇到的问题,暗示作者计划在后续解决这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景图片搞定了,但是中文还有问题,明天来解决

public static void main(String[] args) throws Exception {

        // TODO Auto-generated method stub
        String TEXT    = "These are the protagonists in 'Hero', a movie by Zhang Yimou:/n"
        + "/u7121/u540d (Nameless), /u6b98/u528d (Broken Sword), "
        + "/u98db/u96ea (Flying Snow), /u5982/u6708 (Moon), "
        + "/u79e6/u738b (the King), and /u9577/u7a7a (Sky)." +
        "华夏公众共和国万岁劳动公众是光辉的,岁月峥嵘,百舸争流" ;
        
        Document tDoc = new Document(PageSize.A4, 50, 50, 50, 50); //创建文档
        String mFileFullPath="/home/grid/taobao/files/test1.pdf";
        String mImgPath="/home/grid/taobao/files/";
        PdfWriter tWriter = PdfWriter.getInstance(tDoc, new FileOutputStream(mFileFullPath.toString())); //创建写入流  
        tWriter.setEncryption(null,"1".getBytes(), PdfWriter.ALLOW_SCREENREADERS|PdfWriter.ALLOW_PRINTING,PdfWriter.STANDARD_ENCRYPTION_128); //加密  
        tDoc.open();  //打开文档  
        Image tImgCover = Image.getInstance(mImgPath+"background.jpg");   
        /* 设置图片的位置 */  
        tImgCover.setAbsolutePosition(0, 0);  
        /* 设置图片的大小 */  
        tImgCover.scaleAbsolute(595, 842);  
        tDoc.add(tImgCover);             //加载图片
        
        tDoc.addTitle("马文涛");
        //BaseFont bfChinese = BaseFont.createFont("STSongStd-Light","UniGB-UCS2-H",false);
        //BaseFont bfChinese = BaseFont.createFont("STSongStd-Light",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
        //Font fontChinese = new Font(bfChinese,16,Font.NORMAL,BaseColor.RED);
        //tDoc.add(new Paragraph("Hello 马文涛!",fontChinese));
        
        FontSelector selector = new FontSelector();
        selector.addFont(FontFactory.getFont(FontFactory.TIMES_ROMAN, 12));

        selector.addFont(FontFactory.getFont("STSongStd-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED));
        tDoc.add(selector.process("hello 马文涛"));
        tDoc.add(selector.process(TEXT));
        
        tDoc.add(new Paragraph("Hello no chinese!"));
        tDoc.close();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值