Как установить вертикальное выравнивание текста с itextpdf в Android?

Как можно установить текст по вертикали, начиная с bottom to top?

Это динамически генерируемые тексты. Поэтому я решил поместить каждый текст в теги в таблице.

Это не работает:

for (int j = 0; j < cur.getCount(); j++)
{
VerticalText vt = new VerticalText(writer.getDirectContent());
//vt.setVerticalLayout(390, 570, 540, 12, 30);

vt.addText(new Phrase(location));
vt.go();
vt.setAlignment(Element.ALIGN_RIGHT);

verticalLoc = vt.toString();

verticalLoc += "<td align='left' width='28%'><div style='font-size:8px;-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);" +
        "-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);'>"+ verticalLoc+ "</div></td>";
}

Стиль, используемый здесь для вертикального выравнивания, не работает для itextpdf.

ОБНОВИТЬ:

Хорошо, я нашел одну статью и пытаюсь с ее помощью реализовать текст статьи.

Но как связать это с моим кодом выше?

ОБНОВИТЬ:

Further as a point of note-

Мой HTML содержит некоторые элементы, которые я заменяю позже, используя программу. Такие элементы обозначаются в скобках внутри HTML-тегов, таких как <td>{VERTICALTEXT}</td>, Затем в программе я заменяю это на карту как map.put("VERTICALTEXT", verticalLoc);, Тогда его html = html.replace("{" + e.getKey() + "}", value); заменить и получить необходимый HTML.

ОБНОВИТЬ:

Как я это делаю

private static String FILE = Environment.getExternalStorageDirectory() + File.separator;
static PdfWriter writer;
HTMLWorker htmlWorker = new HTMLWorker(document);
Document document = new Document();
document.setMargins(2f, 2f, 2f, 2f);
writer = PdfWriter.getInstance(document, new FileOutputStream(FILE));
document.open();

PdfDestination pdfDest = new PdfDestination(PdfDestination.FIT, 0,
                    document.getPageSize().getHeight(), 0.5f);

PdfAction action = PdfAction.gotoLocalPage(1, pdfDest, writer);

writer.setOpenAction(action);

verticalLoc += "<td align='left' width='28%'><div style='font-size:8px;-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);" +"-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);'>"+ location+ "</div></td>";

InputStream is = getAssets().open("My_Report.html");

int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);

map.put("VERTICALTEXT", verticalLoc);
map.put("STATE", getvalue("State", "Information", ""));
map.put("TIMEZONE", getvalue("Time_Zone", "Information", ""));

String htmlStr = getHTMLReport(new String(buffer), map);

htmlWorker.parse(new StringReader(htmlStr));

PdfContentByte cb = writer.getDirectContent();
BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA,
BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
cb.saveState();
cb.beginText();
cb.moveText(x, y);
cb.setFontAndSize(bf, 12);
cb.showText(text);
cb.endText();
cb.restoreState();
document.newPage();

document.close();

openPdfIntent(FILE);

Могу ли я использовать Canvas для поворота текста и передачи карты дальше для отображения?

Пожалуйста, помогите, поскольку я новичок в Android Canvas и itextpdf.

Спасибо!

0 ответов

Другие вопросы по тегам