Java 新行中PDF格式的ArrayList

Java 新行中PDF格式的ArrayList,java,spring,pdf,itext,Java,Spring,Pdf,Itext,我想从java发送一些PDF格式的调查,我尝试了不同的方法。我使用带StringBuffer和不带StringBuffer,但总是在一行中看到PDF中的文本 public void writePdf(OutputStream outputStream) throws Exception { Paragraph paragraph = new Paragraph(); Document document = new Document(); PdfWriter.ge

我想从java发送一些PDF格式的调查,我尝试了不同的方法。我使用带StringBuffer和不带StringBuffer,但总是在一行中看到PDF中的文本

    public void writePdf(OutputStream outputStream) throws Exception {

    Paragraph paragraph = new Paragraph();
    Document document = new Document();
    PdfWriter.getInstance(document, outputStream);

    document.open();

    document.addTitle("Survey PDF");

    ArrayList nameArrays = new ArrayList();
    StringBuffer sb = new StringBuffer();
    int i = -1;

    for (String properties : textService.getAnswer()) {

        nameArrays.add(properties);
        i++;
    }
    for (int a= 0; a<=i; a++){
        System.out.println("nameArrays.get(a) -"+nameArrays.get(a));
        sb.append(nameArrays.get(a));

    }
    paragraph.add(sb.toString());
    document.add(paragraph);

    document.close();
}
textService.getAnswer this-ArrayList

你能告诉我如何把课文按顺序分开吗?每一个新句子都是从新的一行开始的? 现在我看到的是这样的:

关于:

nameArrays.add(properties+"\n");
那么:

nameArrays.add(properties+"\n");

您忘记了换行符,\n代码似乎有点过于复杂。 试试这个:

StringBuffer sb = new StringBuffer();

for (String property : textService.getAnswer()) {
    sb.append(property);
    sb.append('\n');
}

您忘记了换行符,\n代码似乎有点过于复杂。 试试这个:

StringBuffer sb = new StringBuffer();

for (String property : textService.getAnswer()) {
    sb.append(property);
    sb.append('\n');
}
您可以通过简单地将\n附加到列表中收集的字符串来修复此问题;但我认为:这在很大程度上取决于您使用的PDF库

你看,换行符或段落在某种程度上与格式有关。将格式信息添加到正在处理的数据中似乎是一个概念问题

意思:您可能想检查您的库是否允许您提供字符串,然后让库为您进行格式化

换句话说:不是给字符串加换行符;您应该检查是否可以继续使用不带换行符的字符串,但是否有方法让PDF库添加换行符是合适的

关于代码质量的旁注:您使用的是原始类型:

最好是

ArrayList<String> names = new ArrayList<>();
[我还更改了名称-将集合的类型放入变量名中没有任何意义!]

您可以通过简单地将\n附加到列表中收集的字符串来解决此问题;但我认为:这在很大程度上取决于您使用的PDF库

你看,换行符或段落在某种程度上与格式有关。将格式信息添加到正在处理的数据中似乎是一个概念问题

意思:您可能想检查您的库是否允许您提供字符串,然后让库为您进行格式化

换句话说:不是给字符串加换行符;您应该检查是否可以继续使用不带换行符的字符串,但是否有方法让PDF库添加换行符是合适的

关于代码质量的旁注:您使用的是原始类型:

最好是

ArrayList<String> names = new ArrayList<>();

[我还更改了名称-将集合类型放入变量名中没有意义!]

此方法用于将数组列表中的值保存到pdf文档中。在mfilePath变量/中,您可以在此处指定文件夹名称。例如

对于mFileName变量,也可以使用name。我给出了创建文档的日期和时间。不要在同一pdf中指定静态名称,否则将覆盖您的值

私人文件 {


此方法用于将数组列表中的值保存到pdf文档中。在mfilePath变量/in中,您可以在此处指定文件夹名称。例如/example/

对于mFileName变量,您也可以使用name。我提供文档创建的日期和时间。不要提供静态名称,否则您的值将在同一pdf中覆盖

私人文件 {


欢迎使用Stack Overflow!请为您的代码添加一些解释,这是此平台上的一个重要部分。我们的指南可能会有所帮助。下面是您的答案,是添加一些文本的链接编辑。谢谢!欢迎使用Stack Overflow!请为您的代码添加一些解释,这是此平台上的一个重要部分。我们的指南可能会有所帮助。下面是您的答案是一个链接编辑添加一些文字。谢谢!