如何在ITextpdf中的图像上书写文本?

时间:2018-10-04 07:21:06

标签: java itext

我正在用Java开发iTextPdf。

我要在图像上写文本绝对位置。像这样:

enter image description here

在本教程中,我尝试使用showTextAligned中的DrawContext来布置文本,但是我无法控制字体。

请告诉我如何在所需位置以文本上所需的字体颜色和大小显示多个文本。

2 个答案:

答案 0 :(得分:1)

您可以在生成的pdf上使用iText PDFstamper。
有关更多详细信息,请参阅以下内容:
Changing the font color and size when using FontSelector https://developers.itextpdf.com/question/how-add-watermark-page-opaque-image

import java.io.FileOutputStream;

import com.itextpdf.text.Element;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.ColumnText;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;


class PDFStamperExample
{
    public static void main(String[] args)
    {
        try
        {
            PdfReader pdfReader = new PdfReader("HelloWorld.pdf");
            PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream("HelloWorldModified.pdf"));
            PdfContentByte canvas = pdfStamper.getOverContent(1);
            ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase("Hello people!"), 250, 750, 0);
            pdfStamper.close();
            pdfReader.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

答案 1 :(得分:0)

首先,可以尝试如下将图像序列设置为true

writer.setStrictImageSequence(true);

此外,我们可以看到您为看到问题而编写的一些代码吗? 干杯!