2 回答

TA貢獻1796條經驗 獲得超10個贊
這就是我如何使它工作,我希望它能幫助其他人。只需使用要在 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 指令的參數。參數和指令名稱必須適當分隔。

TA貢獻1848條經驗 獲得超2個贊
您需要一種支持這些阿拉伯符號的字體。
獲得兼容的字體后,您可以使用 PDType0 字體加載它
final PDFont font = PDType0Font.load(...);
字體是引用多種其他字體格式的字體,并且可能加載所有可用的符號。Type 0
另請參閱說明書 - 使用字體(沒有示例,但仍然有用)。Type 0
添加回答
舉報