【问题标题】:How to make a particular sub-string Bold while printing a string in Pdf using iText in java eclipse?java - 如何在java eclipse中使用iText在Pdf中打印字符串时使特定的子字符串加粗?
【发布时间】:2014-07-25 01:23:04
【问题描述】:

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

我想要一个包含粗体字和粗体字+下划线字的特定段落作为字符串传递给 Java 代码并使用 iText 库转换为 PDF。

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

【问题讨论】:

  • 首先将您的 HTML 输入到这个演示中:demo.itextsupport.com/xmlworker 然后点击转换。你得到想要的结果了吗?如果是这样,我会给你看代码。
  • 是的,它奏效了。可以分享一下代码吗?
  • 看我的回答。在编写自己的代码之前,您可能想尝试所有示例。
  • 我正在关注你的布鲁诺书。很高兴收到您的来信。
  • 如果您参考“iText in Action”:HTML 到 PDF 部分需要替换。如果您参考“PDF 的基础知识”,那是一项正在进行的工作。这本书完成后,我将使用 XML Worker 示例作为一本关于 PDF 模板的书的基础。

标签: java pdf pdf-generation itextsharp itext


【解决方案1】:

如果你想将 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("<p>The <b>String</b> I want to render to PDF</p>"));

沙盒中有更复杂的示例,以防您需要对图像、特殊字体等的支持。例如this example 会将 XHTML 转换为一系列 iText 对象,而不是立即将它们呈现到页面。

【讨论】:

    猜你喜欢
    • 2013-11-11
    • 2020-03-31
    • 1970-01-01
    • 2015-06-19
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 2018-03-16
    相关资源
    最近更新 更多