zoukankan      html  css  js  c++  java
  • 如何使用iText制作中文PDF

    1. 下载itextpdf.jar

    基础包:http://jaist.dl.sourceforge.net/project/itext/iText/iText5.5.2/itext-5.5.2.zip

    附加包:http://cznic.dl.sourceforge.net/project/itext/extrajars/extrajars-2.3.zip

    我们只下载基础包就可以

    2. 创建工作文件夹

    daniel@daniel-mint ~/itext $ ls
    daniel.java  fonts  itextpdf-5.5.2.jar  run.sh
    

      

    其中fonts是一个目录,用来存放我们用到的字体文件。

    daniel@daniel-mint ~/itext $ cat run.sh 
    javac -cp .:itextpdf-5.5.2.jar $1.java
    java -cp .:itextpdf-5.5.2.jar $1 
    rm $1.class
    

      

    daniel@daniel-mint ~/itext $ cat daniel.java 
    import java.io.FileOutputStream;
    import java.io.IOException;
     
    import com.itextpdf.text.Document;
    import com.itextpdf.text.Font;
    import com.itextpdf.text.PageSize;
    import com.itextpdf.text.DocumentException;
    import com.itextpdf.text.Paragraph;
    import com.itextpdf.text.Chunk;
    import com.itextpdf.text.Rectangle;
    
    import com.itextpdf.text.pdf.PdfWriter;
    import com.itextpdf.text.pdf.BaseFont;
     
    public class daniel 
    {
     
        public static final String RESULT = "daniel.pdf";
     
        public static void main(String[] args)
             throws DocumentException, IOException 
        {
            Document document = new Document(PageSize.A4);
            PdfWriter.getInstance(document, new FileOutputStream(RESULT));
            document.open();
    
    	BaseFont noto_hans_bold  = BaseFont.createFont("./fonts/kaiti.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
    	Font noto_hans_bold_24  = new Font(noto_hans_bold, 24);
    
            Paragraph par1 = new Paragraph(20);
    
    	Chunk chk1 = new Chunk("Daniel King is a software engineer", noto_hans_bold_24);
    	par1.add(chk1);
    
    	Chunk chk2 = new Chunk("u8FD9u4E2Au4EBAu662Fu4E2Au7A0Bu5E8Fu5458u554A", noto_hans_bold_24);
    	par1.add(chk2);
    
    	document.add(par1);
            document.close();
        }
    }
    

      

    3. 可以编写一个shell用来编码Unicode

    首先下载 unicode工具

    sudo apt-get install unicode
    

      

    daniel@daniel-mint ~/itext $ cat tounicode.sh 
    unicode -s $1 | grep 'Uppercase' | sed -re 's/^U.*: U+/\u/g' | awk '{printf("%s", $1);}END{print ""}'
    

      

    daniel@daniel-mint ~/itext $ bash tounicode.sh 这个人是个程序员啊
    u8FD9u4E2Au4EBAu662Fu4E2Au7A0Bu5E8Fu5458u554A
    

      

    4. 执行脚本生成PDF文件

    daniel@daniel-mint ~/itext $ bash run.sh daniel
    daniel@daniel-mint ~/itext $ ls
    daniel.java  daniel.pdf  fonts  itextpdf-5.5.2.jar  run.sh  tounicode.sh
    

      

    5. 添加源码目录

    将itextpdf-5.5.2-sources.jar解压到src目录下

    然后创建ctags文件,这样就可以在源码中方便来回浏览了。

    daniel@daniel-mint ~/itext $ ls
    daniel.java  daniel.pdf  fonts  itextpdf-5.5.2.jar  run.sh  src  tags  tounicode.sh
    

      

  • 相关阅读:
    Linux Shell 用法
    gdb调试用法
    grep 用法总结
    Cmake用法
    Win64/Linux 上PyMouse安装
    两道拓扑排序的问题
    hiho一下第76周《Suzhou Adventure》
    这类问题需要利用二进制的特殊性
    这种题应该诸位处理
    两道人数多,课程少,query多的题
  • 原文地址:https://www.cnblogs.com/long123king/p/3945358.html
Copyright © 2011-2022 走看看