我需要在 itext 7 中使用 HTML 标记现有的 pdf,这怎么可能?显然来自版本 5 但不兼容的内容

I need to stamp an existing pdf with HTML in itext 7, how is it possible? What was apparently from version 5 but is incompatible

提问人:Aureo Dantas 提问时间:12/16/2022 最后编辑:Sylvester Kruin - try CodidactAureo Dantas 更新时间:12/16/2022 访问量:167

问:

我需要在现有的 pdf 中添加一个 html 文本,它将是文档中的一种图章,我正在使用 itext 的段落,以便能够在文档中的位置问题中格式化它和所有内容。问题是这里的所有内容都使用 html 内容创建一个新的 pdf,但我只需要这些内容并将其作为下面代码中的段落添加到我的文档中,我尝试在堆栈上使用示例来执行操作,ms class 元素已经不兼容,因为它来自另一个版本的 itext, 我需要一些等效的东西才能使用它。

我尝试使用的类是 Element 类中的 Element,但它来自 itext5 和编译错误,因为它不再兼容,我寻找了很多答案,但我仍然没有找到一个有效的答案,这已经是我在堆栈上的一个示例

public class Inputfiles2

    public static final String HTML = "<html><head></head>" +
        "<body style=\"font-size:10px; font-family:Monteserrat;\">" +
        "<p>testede paragrafo</p></body></html>";

@SneakyThrows
public static void main(String[] args) {

    PdfFont font = PdfFontFactory.createFont(FONT, PdfEncodings.WINANSI,         PdfFontFactory.EmbeddingStrategy.FORCE_EMBEDDED);
    PdfFont fontMontSerrat = PdfFontFactory.createFont(FONT_MONTSERRAT, PdfEncodings.WINANSI, PdfFontFactory.EmbeddingStrategy.FORCE_EMBEDDED);
    PdfFont fontMontSerratBold = PdfFontFactory.createFont(FONT_MONTSERRAT_BOLD, PdfEncodings.WINANSI, PdfFontFactory.EmbeddingStrategy.PREFER_NOT_EMBEDDED);

    Paragraph comb = new Paragraph();
    StringBuilder sb = new StringBuilder();
    sb.append(HTML);
    ElementList list = XMLWorkerHelper.parseToElementList(sb.toString(),null);


    for (Element element : list) {
        comb.add(element);
        }

    PdfReader reader = new PdfReader(src); // input PDF
    PdfWriter writer = new PdfWriter(dest); // 
    output pdf
    PdfDocument pdf = new PdfDocument(reader, writer); // criação de base pdf
    Document document = new Document(pdf); // recebe a base pdf para edição

    document.add(comb
    .setFont(fontMontSerratBold)
    .setFontSize(10)
    .setTextAlignment(TextAlignment.LEFT)
    .setFixedPosition(30, 540, 510));

    document.close();
}
Java PDF 生成 HTML 解析 itext7

评论


答: 暂无答案