2017-01-14 13 views
0

Я создаю файл PDF-файла с использованием библиотеки itext в android, но Paragraph не выравнивается по центру, в то время как аналогичный код является настольным приложением Java, создает выходные данные с выравниванием по центру.Проблема с выравниванием абзаца в Android

Я также проверил с помощью Element.ALIGN_CENTER и Paragraph.ALIGN_CENTER, но не смог добиться успеха в android.

Android код

Вот мой код в андроиде для создания центрированного выравнивания Абзаца.

Paragraph prefaceX = new Paragraph(); 
prefaceX.setAlignment(Element.ALIGN_CENTER); 
addEmptyLine(preface, 1); 
prefaceX.add(new Paragraph(getString(R.string.report_title), catFont)); 
prefaceX.add(new Paragraph(getString(R.string.disclaimer), smallBoldMM)); 
document.add(prefaceX); 

где addEmptyLine как следовать

private static void addEmptyLine(Paragraph paragraph, int number) { 
    for (int i = 0; i < number; i++) { 
     paragraph.add(new Paragraph(" ")); 
    } 
} 

Вывод PDF в андроида enter image description here

код приложения Java Desktop

Paragraph prefaceX = new Paragraph(); 
prefaceX.setAlignment(Paragraph.ALIGN_CENTER); 
prefaceX.add(new Paragraph("Dummy Text", catFont)); 
prefaceX.add(new Paragraph("* Dummy Details ", smallBoldMM)); 
document.add(prefaceX); 

Вывод PDF в Java Desktop

enter image description here

шрифт (catFont и smallBoldMM) является пользовательским шрифтом и оба такие же, как следовать

private static Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 18, 
Font.BOLD); 
private static Font smallBoldMM = new Font(Font.FontFamily.TIMES_ROMAN, 7, 
     Font.ITALIC) 

Пожалуйста, не предлагает использовать таблицы.

ответ

1

Я думаю, что разница между вашим Android-приложением и вашим настольным приложением - это версия iText, которая используется.

Вы можете получить такое же поведение, используя Paragraph так, как можно было бы ожидать, когда рассказывали об абзаце.

Paragraph prefaceX = new Paragraph(); 
prefaceX.setAlignment(Element.ALIGN_CENTER); 
document.add(prefaceX); 
document.add(Chunk.NEWLINE); 
document.add(new Paragraph(getString(R.string.report_title), catFont)); 
document.add(new Paragraph(getString(R.string.disclaimer), smallBoldMM)); 

Там нет причин, почему вы хотите поместить все различные Paragraph объектов в один большой Paragraph.

Если вы посмотрите на iText 7 (но используете iText 5 или ранее), вы заметите, что мы делаем различие между объектом Paragraph (отдельные абзацы) и объектом Div (который может содержать несколько Paragraph и другие объекты).

+0

Hi Bruno Lowagie, Спасибо за вашу помощь, но я использовал ту же версию iText (5.5.4) как в Android, так и в настольном приложении. ** Я создал отдельное приложение для андроида и настольного приложения, и оно решило мою проблему. ** По какой-то причине я не могу обновить код, чтобы использовать последний текст, поэтому я использую выравнивание по центру. –

 Смежные вопросы

  • Нет связанных вопросов^_^