如何在java eclipse中使用iText在Pdf中打印字符串时使特定的子字符串变粗?

我在Java中使用iText将HTML转换为PDF。

我想要一个特定的段落,其中有一些单词为Bold,有些为Bold + Underlined,作为字符串传递给Java代码,并使用iText库转换为PDF。

我无法找到合适的方法。 我该怎么做?

如果要将XHTML转换为PDF,则需要iText + XML Worker。

您可以在此处找到许多示例: http : //itextpdf.com/sandbox/xmlworker

最简单的示例如下所示:

public void createPdf(String file) throws IOException, DocumentException { // step 1 Document document = new Document(); // step 2 PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file)); // step 3 document.open(); // step 4 XMLWorkerHelper.getInstance().parseXHtml(writer, document, new FileInputStream(HTML)); // step 5 document.close(); } 

请注意,在这种情况下,HTML文件作为FileInputStream传递。 你想传递一个String 。 这意味着你必须做这样的事情:

 XMLWorkerHelper.getInstance().parseXHtml(writer, document, new StringReader("

The String I want to render to PDF

"));

如果您需要支持图像,特殊字体等,Sandbox中有更复杂的示例。 例如, 此示例将XHTML转换为一系列iText对象,而不是立即将它们呈现为页面。