No se puede guardar palabras árabes en un PDF - PDFBox Java

Danyal Sandeelo:

Tratando de salvar árabe palabras en un PDF editable. Funciona bien con todos los ingleses queridos, sino cuando utilizo palabras árabes, estoy consiguiendo esta excepción:

java.lang.IllegalArgumentException: U + 0627 no está disponible en este tipo de letra Helvética de codificación: WinAnsiEncoding

Aquí es cómo me genera 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"); 
  }
}
Danyal Sandeelo:

Así es como lo hice trabajar, espero que ayudaría a otros. Sólo tiene que utilizar la fuente que se apoya en el idioma que desea utilizar en el 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"); 
  }
}

Edited : Adición del comentario de mkl El nombre de la fuente y el tamaño de fuente son parámetros de la instrucción de Tf, y el valor de gris 0 para el negro es el parámetro para la instrucción g. Parámetros y nombres de instrucciones deben estar separados de manera apropiada.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=173267&siteId=1
Recomendado
Clasificación