How to put Image and Text inside 1 cell in iText A

2019-07-25 14:19发布

问题:

How to put image and text below/above it?

I tried below code but I only can see "Test 1" and "Test 3"

private void createTable(Paragraph paragraph, Document document){
    PdfPTable table = new PdfPTable(2);

    PdfPCell c1 = new PdfPCell(new Phrase("Question"));
    c1.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(c1);

    c1 = new PdfPCell(new Phrase("Answer"));
    c1.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(c1);

    table.setHeaderRows(1);

    HierarchyElement formElement;
    FormController formController = Collect.getInstance().getFormController();
    Image imageAnswer = null;

    for(int i = 0; i < mFormList.size(); i++){
        formElement = mFormList.get(i);

        table.addCell(formElement.getPrimaryText());

        String imageName = getImageNameOfSelectedAnswer(formController, formElement);
        if(imageName != null){
            imageAnswer = Image.getInstance(imageName);
            imageAnswer.scalePercent((float) 0.1);
        }

        PdfPCell cell = new PdfPCell();
        cell.addElement(new Paragraph("Test 1"));
        cell.addElement(new Chunk(imageAnswer, 0, 0, true));
        cell.addElement(new Paragraph("Test 3"));
        table.addCell(cell);
    }

    paragraph.add(table);
    document.add(paragraph);
}

回答1:

You should try this:

PdfPTable table = new PdfPTable(2);  
PdfPCell cell = new PdfPCell();
Paragraph paragraph1 = new Paragraph();
paragraph1.add(textAnswer);
cell.addElement(paragraph1);
cell.addElement(new Paragraph("Test 1"));
cell.addElement(imageAnswer);
cell.addElement(new Paragraph("Test 3"));
table.addCell(cell);

If that doesn't work, please provide a SSCCE that reproduces the problem in Java.



标签: android itext