【问题标题】:Itext Paragraph alignment issue in AndroidAndroid中的Itext段落对齐问题
【发布时间】:2017-05-29 15:17:09
【问题描述】:

我正在使用 android 中的 itext 库创建 PDF 输出文件,但段落没有居中对齐,而类似的代码是 Java 桌面应用程序使用居中对齐创建输出。

我也使用 Element.ALIGN_CENTER 和 Paragraph.ALIGN_CENTER 进行了检查,但在 android 中没有成功。

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(" "));
    }
}

在android中输出PDF

Java 桌面应用程序代码

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);

在 Java 桌面中输出 PDF

字体(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)

请不要建议使用表格。

【问题讨论】:

    标签: java android pdf-generation itext


    【解决方案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 或更早版本),您会注意到我们在 Paragraphobject(单段落)和 Div 对象(即可以包含多个Paragraph 和其他对象)。

    【讨论】:

    • 您好 Bruno Lowagie,感谢您的帮助,但我在 android 和桌面应用程序中使用相同的 iText 版本 (5.5.4)。 我为 android 和桌面应用程序创建了单独的应用程序,它解决了我的问题。 由于某种原因,我无法更新代码以使用最新的 itext,所以我使用表格来居中对齐。
    猜你喜欢
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多