U+011B('ecaron')在 Helvetica 字体中不可用,编码:WinAnsiEncoding

问题描述 投票:0回答:1

使用 PDFBox 版本 2.0.27。

这是我的代码:

package com.mytest.tasks.createPDF;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import java.io.IOException;

public class AddingContent {
    public static void main (String[] args) throws IOException {
        try (PDDocument doc = new PDDocument()) {
            PDPage myPage = new PDPage();
            doc.addPage(myPage);
            try (PDPageContentStream cont = new PDPageContentStream(doc, myPage)) {
                cont.beginText();
                cont.setFont(PDType1Font.HELVETICA, 12);
                cont.setLeading(14.5f);
                cont.newLineAtOffset(25, 700);
                String line1 = "schodiště západ";
                cont.showText(line1);
                cont.endText();
            }
            doc.save("D:\\Temp\\QRCode\\QR_PDF_PDFBOX_Output.pdf");
        }
    }
}

但是当它尝试设置“schodiště západ”之类的值时,它失败并出现错误:

Exception in thread "main" java.lang.IllegalArgumentException: U+011B ('ecaron') is not available in the font Helvetica, encoding: WinAnsiEncoding at org.apache.pdfbox.pdmodel.font.PDType1Font.encode(PDType1Font.java:428) at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:333) at org.apache.pdfbox.pdmodel.PDPageContentStream.showTextInternal(PDPageContentStream.java:514) at org.apache.pdfbox.pdmodel.PDPageContentStream.showText(PDPageContentStream.java:476) at com.mytest.tasks.qrcode.AddingContent.main(AddingContent.java:27)

java pdfbox boxable
1个回答
0
投票

问题如错误消息中所述:PDF 的目标字体不包含错误消息中指定的字符的字形。

因此,为您的 PDF 选择另一种字体,其中包含您打算在文本中使用的所有字符的字形。

理解该错误消息有什么困难?

© www.soinside.com 2019 - 2024. All rights reserved.