2017-09-04 12 views
-2

こんにちは私はiTextでjavafxアプリケーションを作っています。テキストを書くためのHTMLエディタがあり、そこからpdfを作成したいと思っています。すべてが動作しますが、HTMLエディタでラップされた本当に長い行がある場合、pdfではラップされません。そのページ外、どのようにラッピングページを設定できますか?ここに私のコードです: IText htmlからpdfへのラッピングライン

が助けてくれてありがとう、私もこのテキストの行間隔を設定したい

PdfWriter writer = null; 
try { 
    writer = new PdfWriter("doc.pdf"); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 

//Initialize PDF document 
PdfDocument pdf = new PdfDocument(writer); 

// Initialize document 
Document document = new Document(pdf, PageSize.A4); 
List<IElement> list = null; 
try { 
    list = HtmlConverter.convertToElements(editor.getHtmlText()); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

// add elements to document 
for (IElement p : list) { 
    document.add((IBlockElement) p); 
} 

// close document 
document.close(); 

+0

デフォルトA4ページの幅は595 ptです。 700 ptの幅のdivを定義すると、コンテンツは「ページの終わり」ではなく、700 ptで折り返されます。私はあなたの問題はこれほど些細なものだと思うが、あなたのHTMLコードを共有していないので、あなたはあなたの質問に答えられない。 –

+0

私はjavafxのhtmlエディタからhtmlを入手しました。私はこのフィールドにのみ書きます –

+0

このコメントはどのように役に立ちますか? HTMLエディタでA4ページよりも広いコンテンツを作成できる場合は、ページの幅が広いドキュメントを作成する必要があります。あなたが正しいことをするためにiTextを非難している可能性は90%です。 –

答えて

2

私は、次のコードのいずれかのエラーを得ることはありません:

public class stack_overflow_0008 extends AbstractSupportTicket{ 

    private static String LONG_PIECE_OF_TEXT = 
     "Once upon a midnight dreary, while I pondered, weak and weary," + 
     "Over many a quaint and curious volume of forgotten lore—" + 
     "While I nodded, nearly napping, suddenly there came a tapping," + 
     "As of some one gently rapping, rapping at my chamber door." + 
     "Tis some visitor,” I muttered, “tapping at my chamber door—" + 
     "Only this and nothing more."; 

    public static void main(String[] args) 
    {   

     PdfWriter writer = null; 
     try { 
      writer = new PdfWriter(getOutputFile()); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 
     //Initialize PDF document 
     PdfDocument pdf = new PdfDocument(writer); 

     // Initialize document 
     Document document = new Document(pdf, PageSize.A4); 
     List<IElement> list = null; 
     try { 
      list = HtmlConverter.convertToElements("<p>" + LONG_PIECE_OF_TEXT + "</p>"); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     for (IElement p : list) { 
      document.add((IBlockElement) p); 
     } 
     document.close(); 
    } 
} 

文書は、1つの文字列がきちんとラップされた単一の(A4)ページPDFです。

おそらくあなたの文字列の内容は責任があると思いますか?
このエディタオブジェクトから取得したHTMLを投稿できますか?

更新:あなたが見ることができるように、

enter image description here

HTML上でこの答えからコードを使用して、質問への新しいコメントで共有し、私は次のような結果を得ますコンテンツは2行にわたって配信されます。コンテンツは「ページから落ちない」