我正在使用java中的iText来编写PDF文件。我正在尝试编写一个类似于标题的段落,然后在与
相同的行中的标题之后开始文本标题:这是一个现在......
标题是粗体,para是正常文本但我无法使用iText执行此操作。我试着用:
Paragraph newPara = new Paragraph();
newPara.add(paranumber);
newPara.add(para);
我还尝试创建一个新段落并将新的段落(标题段和正常文本段)添加到新段落中,但这也没有显示出正确的结果。请看下面的大块。
{{1}}
但这也没有显示正确的格式。
或者,如果有人可以建议我使用其他方式从HTML 创建PDF,那也很好,这样我就可以重写模块来创建所需的PDF。请指教。
答案 0 :(得分:1)
段落通常使用indentation和增加leading等概念来直观地区分它们。它们是块级元素,而不是内联元素。 在另一段落中添加段落没有意义。添加的段落通常从一个新行开始,无论如何基本上使它成为一个单独的段落。
要获得包含不同字体的段落(例如您的示例),您可以在iText中使用Chunk
s。 Chunk
基本上是一段带有相关字体的文本。
Font fontbold = new Font(BaseFont.createFont(BaseFont.HELVETICA_BOLD,
BaseFont.WINANSI, BaseFont.NOT_EMBEDDED), 12);
Font fontregular = new Font(BaseFont.createFont(BaseFont.HELVETICA,
BaseFont.WINANSI, BaseFont.NOT_EMBEDDED), 12);
Chunk header = new Chunk("Heading: ", fontbold);
Chunk content = new Chunk("this is a para now ...", fontregular);
Paragraph paragraph = new Paragraph();
paragraph.add(header);
paragraph.add(content);
document.add(paragraph);
结果如下:
从您的问题和代码示例中不清楚HTML是如何涉及的。我假设您正在以某种方式解析HTML输入并使用iText Element
将解析的内容转换为PDF。这是一种有效的方法。或者,您可以查看iText XML Worker,它可以执行XHTML(+ CSS)到PDF转换。