有没有办法使用iText确定PDF中字符串的位置/大小?

时间:2015-11-22 11:04:52

标签: java string pdf itext

到目前为止,我已经编写了一些代码,这些代码应该覆盖带有白色矩形的PDF中的文本,该矩形效果很好,但它非常静态。目标是将其设计为更简单的命令行工具。 有没有办法确定PDF(每页上)字符串的位置,字体大小以及从中计算矩形大小/位置的方法? 谷歌搜索了很多,但没有得到令人满意的答案。

使用iText。到目前为止使用的代码发布在下面(打开优化思路)

package evaluate_java;

import java.io.FileOutputStream;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;

public class PDFmodifier {

    public static void main(String[] args)  
    {           
        coverWithRectangle("neu.pdf","output.pdf"); 
    }

    public static void coverWithRectangle(String input, String output)
    {
        try
        {
            PdfReader reader = new PdfReader(input);
            int pages = reader.getNumberOfPages();
            PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(output));

            for(int i=1; i <=pages; i++)
                setContent(stamper, i, 80f, 20f, 300f, 20f, BaseColor.WHITE);

            stamper.close();
            reader.close();
            System.out.println("Success.");
        }
        catch(Exception ex) 
        {
            System.out.print("Failed because: ");
            ex.printStackTrace();
        }
    }

    public static void setContent(PdfStamper stamp, int page,  Float x, Float y, Float width, Float height, BaseColor col)
    {
        PdfContentByte content = stamp.getOverContent(page);
        content.setColorFill(col);
        content.rectangle(x,y,width, height);
        content.fill();
    }
}

0 个答案:

没有答案