尝试将阿拉伯语单词保存在可编辑的PDF中。它对于和英语都可以正常工作,但是当我使用阿拉伯语单词时,出现了以下异常:
这是我生成PDF的方式:
public static void main(String[] args) throws IOException
{
String formTemplate = "myFormPdf.pdf";
try (PDDocument pdfDocument = PDDocument.load(new File(formTemplate)))
{
PDAcroForm acroForm = pdfDocument.getDocumentCatalog().getAcroForm();
if (acroForm != null)
{
PDTextField field = (PDTextField) acroForm.getField( "sampleField" );
field.setValue("جملة");
}
pdfDocument.save("updatedPdf.pdf");
}
}
最佳答案
这就是我的工作方式,希望对其他人有所帮助。只需使用要在PDF中使用的语言支持的字体。
public static void main(String[] args) throws IOException
{
String formTemplate = "myFormPdf.pdf";
try (PDDocument pdfDocument = PDDocument.load(new File(formTemplate)))
{
PDAcroForm acroForm = pdfDocument.getDocumentCatalog().getAcroForm();
// you can read ttf from resources as well, this is just for testing
PDFont font = PDType0Font.load(pdfDocument,new File("/path/to/font.ttf"));
String fontName = acroForm.getDefaultResources().add(pdfont).getName();
if (acroForm != null)
{
PDTextField field = (PDTextField) acroForm.getField( "sampleField" );
field.setDefaultAppearance("/"+fontName +" 0 Tf 0 g");
field.setValue("جملة");
}
pdfDocument.save("updatedPdf.pdf");
}
}
编辑:添加mkl的注释
字体名称和字体大小是Tf指令的参数,黑色的灰度值0是g指令的参数。参数和指令名称必须适当分开。
关于java - 无法在PDF中保存阿拉伯语单词-PDFBox Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55451551/