2016-09-08 8 views
-5

を使用して空白行を削除しますPDFを作成し、PDF文書に内容を印刷するために使用されるJavaコードは以下のとおりです。下のコードに示すように、印刷された行の間に空白行があります。印刷されたステートメントの後に3つ以上の空白行がある場合は、空白行を1つ書き、その他の空白行を省略してPDFドキュメントに書き込んでください。したがって、空白行が1つまたは2つあればそのまま印刷できますが、それ以上の空白行がある場合は余分な空白行をすべて削除し、Javaコードを使用して空白行を1つ追加してください。私はJavaバージョン5を使用しています。お勧めします。Javaコード

public static void main(String args[]) { 
     Document document = null; 
     FileOutputStream fos = null; 

     try { 
      final String prefix = "test"; 
      final File temporaryPDF = File.createTempFile(prefix, ".pdf"); 
      document = new Document(PageSize.LETTER); 

      fos = new FileOutputStream(temporaryPDF); 

      PdfWriter.getInstance(document, fos); 
      document.open(); 

      Font font = new Font(Font.FontFamily.COURIER, 10); 

      List<String> lines = new ArrayList<String>(); 
      lines.add("This is first line."); 
      lines.add("This is second line."); 
      lines.add(" "); 
      lines.add(" "); 
      lines.add(" "); 
      lines.add(" "); 
      lines.add("This is third printed line."); 
      lines.add(" "); 
      lines.add("This is fourth printed line."); 
      lines.add(" "); 
      lines.add(" "); 
      lines.add(" "); 
      lines.add("#ACC004342-123"); 
      lines.add(" "); 
      lines.add(" "); 
      lines.add(" "); 
      lines.add(" "); 
      lines.add(" "); 
      lines.add(" "); 
      lines.add("More information:"); 
      lines.add("This is fifth printed line."); 
      lines.add("#ACC004342-123"); 
      lines.add(""); 
      lines.add("This is Sixth printed line."); 
      lines.add("Some information goes here."); 

      for (final String line : lines) { 
       document.add(new Paragraph(12, line, font)); 
      } 

      document.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
} 

PS:私は再びこの記事をより明確にするために提起しました。ありがとう。

+2

ええと、空の行を最初に挿入しないでください。どちらかといえば、この質問はまだあまり明確ではありません... – ppeterka

+0

2つ以上の空白行がある場合は、2つの空白行を表示するだけです。 @ppeterka – javaUser

+0

行にwhiltespaceのみが含まれている場合、[String#trim()](https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#trim()で確認できます) ) 'string.trim()。length == 0' – Jhonny007

答えて

0

ここでは、問題を解決するための最小限の答えを示します。私はそれを自分でテストする必要があったので、コードを必要な部分に減らしました。私は使用したクラスにアクセスできませんでした。

ご質問の際に可能な限り質問のコードをminimalとする必要がありますので、再作成する方が簡単です。

public static void main(String args[]) { 
    List<String> lines = new ArrayList<String>(); 
    lines.add("This is first line."); 
    lines.add("This is second line."); 
    lines.add(" "); 
    lines.add(" "); 
    lines.add(" "); 
    lines.add(" "); 
    lines.add("This is third printed line."); 
    lines.add(" "); 
    lines.add("This is fourth printed line."); 
    lines.add(" "); 
    lines.add(" "); 
    lines.add(" "); 
    lines.add("#ACC004342-123"); 
    lines.add(" "); 
    lines.add(" "); 
    lines.add(" "); 
    lines.add(" "); 
    lines.add(" "); 
    lines.add(" "); 
    lines.add("More information:"); 
    lines.add("This is fifth printed line."); 
    lines.add("#ACC004342-123"); 
    lines.add(""); 
    lines.add("This is Sixth printed line."); 
    lines.add("Some information goes here."); 

    //count empty lines 
    int emptyLineCounter = 0; 

    for (final String line : lines) { 
     //when empty line increment counter, else reset counter 
     if(line.trim().length() == 0) 
      emptyLineCounter++; 
     else 
      emptyLineCounter = 0; 

     //when more then 2 empty lines are encountered move ignore line 
     if(emptyLineCounter <= 2) 
      System.out.println(line); //add line to document 
    } 
} 

編集:間違った答えを書いたその他minimal, complete and verifiableコードを提供していないの直接の結果です。