2017-09-04 74 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点的“div”,内容将以700点而不是在“页尾”包装。我敢打赌,你的问题与此无关,但由于你不分享你的HTML代码,你已经无法回答你的问题。 –

+0

我从javafx html编辑器获得了html,我只写这个字段 –

+0

该评论如何有用?如果您的HTML编辑器允许您创建比A4页面更宽的内容,则应该创建页面更宽的文档。有90%的可能性是你指责iText做正确的事情。 –

回答

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

该文档是单页(A4)页面PDF,其中一个字符串整齐地包装。

我想也许你的字符串的内容是责怪?
你可以发布你从这个编辑器对象得到的HTML吗?

更新:

运用上的HTML这个答案的问题的新注释共享的代码,我得到以下结果:

enter image description here

正如你所看到的,内容分布在两条线上。没有内容“脱离页面”。