Использовал арабский и персидский в XWPFDocument

Я хочу преобразовать слово в PDF с арабскими буквами, после небольшой R&D я решил использовать

org.apache.poi.xwpf.converter.pdf.PdfConverter

но когда я пишу код ниже, конечный результат слева направо, и слова "загромождены", например, для результата "سع inد" в pdf будет "سعید", мой документ очень большой, а не один абзац:

public class ConvertWord {
    public static void ConvertToPDF(String docPath, String pdfPath) {
        try {
            InputStream doc = new FileInputStream(new File(docPath));
            XWPFDocument document = new 


            PdfOptions options = PdfOptions.create();
            options.fontEncoding("UTF-8")

            OutputStream out = new FileOutputStream(new File(pdfPath));

            PdfConverter.getInstance().convert(document,out,options);

        } catch (FileNotFoundException ex) {

        } catch (IOException ex) {

        }
    }

    public static void main(String[] args) {
        ConvertWord cwoWord=new ConvertWord();
        cwoWord.ConvertToPDF("D://" + "usc.docx","D://test12.pdf");

    }



   }

1 ответ

Есть обходной путь для решения этой проблемы. Вам необходимо использовать библиотеку ICU4J. Потом:

String shaped = new StringBuilder(new ArabicShaping(ArabicShaping.LETTERS_SHAPE).shape(s))
.reverse().toString();

Хотя у вас могут возникнуть проблемы с персидскими юникодами. Возникла проблема, и кто-то исправил ее, установив исправлениеArabicShaping. Я не нашел на него ссылки, но вот исправленный код. (Мне пришлось загрузить файл на свой Google диск, чтобы он не удалялся со временем)

Также вот ссылка на код и его отличие от основного кода.

Я изменил название класса на PersianShaping для удобства.

Эта тема: Создание документа PDF из документа Word с использованием Java API, содержит другие библиотеки, которые вы можете использовать. Я не думаю, что эта библиотека, которую вы используете, будет поддерживать параметры макета; он также содержит множество ошибок и не поддерживает таблицы, графики, номера страниц, как указано здесь: https://github.com/opensagres/xdocreport/wiki/XWPFConverterPDFViaIText

Другие вопросы по тегам