Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PDFBox:U+没有标志符号;0054字体为aaaaa d+;飞蓟_Java_Pdfbox_Jotform - Fatal编程技术网

Java PDFBox:U+没有标志符号;0054字体为aaaaa d+;飞蓟

Java PDFBox:U+没有标志符号;0054字体为aaaaa d+;飞蓟,java,pdfbox,jotform,Java,Pdfbox,Jotform,我的PDFBox抛出以下错误:没有字体为AAAAA D+FreeSerifBold的U+0054字形。 我在stackoverflow上发现了几个类似的线程,但我无法通过它们解决我的问题 我的代码类似于代码示例: public QuoteWorkerPdf() throws IOException { // Create PDF with one blank page document = PDDocument.load( getClass().g

我的PDFBox抛出以下错误:没有字体为AAAAA D+FreeSerifBold的U+0054字形。 我在stackoverflow上发现了几个类似的线程,但我无法通过它们解决我的问题

我的代码类似于代码示例:

    public QuoteWorkerPdf() throws IOException {
    // Create PDF with one blank page
    document = PDDocument.load(
            getClass().getResourceAsStream("data/quote_template.pdf"));
    page = (PDPage) document.getDocumentCatalog().getPages().get(0);
    printable = new PDFPrintable(document);

    // get the document catalog
    PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm();

    // as there might not be an AcroForm entry a null check is necessary
    if (acroForm != null)
    {
        // Retrieve an individual field and set its value.
        PDTextField field = (PDTextField) acroForm.getField( "q2_quotationPrepared" );
        field.setValue("TextEntry");

        // If a field is nested within the form tree a fully qualified name
        // might be provided to access the field.
        //field = (PDTextField) acroForm.getField( "fieldsContainer.nestedSampleField" );
        //field.setValue("Text Entry");
    }

    // Save and close the filled out form.
    document.save("target/FillFormField.pdf");
}
U+0054是字符串的第一个字母“T”。 对于pdf表单创建,我使用www.jotform.com

有人知道我怎么解决这个问题吗

堆栈跟踪:

Exception in thread "main" java.lang.IllegalArgumentException: No glyph for U+0054 in font AAAAAD+FreeSerifBold
at org.apache.pdfbox.pdmodel.font.PDCIDFontType2.encode(PDCIDFontType2.java:363)
at org.apache.pdfbox.pdmodel.font.PDType0Font.encode(PDType0Font.java:398)
at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:324)
at org.apache.pdfbox.pdmodel.font.PDFont.getStringWidth(PDFont.java:353)
at org.apache.pdfbox.pdmodel.interactive.form.PlainText$Paragraph.getLines(PlainText.java:174)
at org.apache.pdfbox.pdmodel.interactive.form.PlainTextFormatter.format(PlainTextFormatter.java:182)
at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.insertGeneratedAppearance(AppearanceGeneratorHelper.java:508)
at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceContent(AppearanceGeneratorHelper.java:364)
at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceValue(AppearanceGeneratorHelper.java:237)
at org.apache.pdfbox.pdmodel.interactive.form.PDTextField.constructAppearances(PDTextField.java:263)
at org.apache.pdfbox.pdmodel.interactive.form.PDTerminalField.applyChange(PDTerminalField.java:228)
at org.apache.pdfbox.pdmodel.interactive.form.PDTextField.setValue(PDTextField.java:218)
at aaalabel.diefinder.QuoteWorkerPdf.<init>(QuoteWorkerPdf.java:69)
at aaalabel.diefinder.QuoteWorkerPdf.main(QuoteWorkerPdf.java:114)
线程“main”java.lang.IllegalArgumentException中的异常:字体AAAAA D+FreeSerifBold中的U+0054没有标志符号
位于org.apache.pdfbox.pdmodel.font.pdcifontype2.encode(pdcifontype2.java:363)
位于org.apache.pdfbox.pdmodel.font.PDType0Font.encode(PDType0Font.java:398)
位于org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:324)
位于org.apache.pdfbox.pdmodel.font.PDFont.getStringWidth(PDFont.java:353)
在org.apache.pdfbox.pdmodel.interactive.form.PlainText$paration.getLines(PlainText.java:174)
位于org.apache.pdfbox.pdmodel.interactive.form.PlainTextFormatter.format(PlainTextFormatter.java:182)
位于org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.insertGeneratedAppearance(AppearanceGeneratorHelper.java:508)
位于org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceContent(AppearanceGeneratorHelper.java:364)
位于org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceValue(AppearanceGeneratorHelper.java:237)
位于org.apache.pdfbox.pdmodel.interactive.form.PDTextField.constructExamples(PDTextField.java:263)
位于org.apache.pdfbox.pdmodel.interactive.form.PDTerminalField.applyChange(PDTerminalField.java:228)
位于org.apache.pdfbox.pdmodel.interactive.form.PDTextField.setValue(PDTextField.java:218)
在aaalabel.diefinder.quoteworkepdf.(quoteworkepdf.java:69)
在aaalabel.diefinder.QuoteWorkerPdf.main(QuoteWorkerPdf.java:114)

此代码是根据您的文件定制的。它将更改默认外观字符串以使用不同的字体。另请参见,这有点相关,但更一般

输入文件的问题是字段中使用的字体是子集,因此它没有您期望的所有字形

PDDocument doc = PDDocument.load(new File("82667884384374 (1).pdf"));
PDAcroForm acroForm = doc.getDocumentCatalog().getAcroForm();
PDTextField field = (PDTextField) acroForm.getField("q2_quotationPrepared");
COSName helvName = acroForm.getDefaultResources().add(PDType1Font.HELVETICA); // use different font if you want. Do not subset!
field.setDefaultAppearance("/" + helvName.getName() + " 10 Tf 0 g"); // modifies your existing DA string
field.setValue("TextEntry");        
doc.save(new File("82667884384374 (1)-new.pdf"));
doc.close();

此代码是根据您的文件定制的。它将更改默认外观字符串以使用不同的字体。另请参见,这有点相关,但更一般

输入文件的问题是字段中使用的字体是子集,因此它没有您期望的所有字形

PDDocument doc = PDDocument.load(new File("82667884384374 (1).pdf"));
PDAcroForm acroForm = doc.getDocumentCatalog().getAcroForm();
PDTextField field = (PDTextField) acroForm.getField("q2_quotationPrepared");
COSName helvName = acroForm.getDefaultResources().add(PDType1Font.HELVETICA); // use different font if you want. Do not subset!
field.setDefaultAppearance("/" + helvName.getName() + " 10 Tf 0 g"); // modifies your existing DA string
field.setValue("TextEntry");        
doc.save(new File("82667884384374 (1)-new.pdf"));
doc.close();

你能分享PDF吗?这里的问题是使用了字体子集。解决方案是在设置新值之前,用完整字体替换字体。这个答案可能会有帮助:pdf在这里:你能分享pdf吗?这里的问题是使用了字体子集。解决方案是在设置新值之前,用完整字体替换字体。这个答案可能有帮助:pdf在这里:强调第二段的主题:这个问题不是pdfbox问题,它是原始pdf的一个缺点。强调第二段的主题:这个问题不是pdfbox问题,它是原始pdf的一个缺点。