Подтвердить что ты не робот

Как показать или прочитать файл docx

Я новичок в рендеринге файлов в android, и я хочу отобразить или отобразить файл docx в моем приложении.

Я уже извлек текст из файла docx, но теперь хочу также извлечь изображения из файла docx.

Я нашел несколько способов отображения изображений в чистой Java, но есть ли хорошие примеры для Android?

Я попробовал этот код для извлечения изображений, но не работал...

public void extractImages(Document xmlDoc)
{
    NodeList binDataList = xmlDoc.getElementsByTagName("w:drawings");
    String fileName = "";
    Node currentNode;
    for(int i = 0; i < binDataList.getLength(); i++)
    {
        currentNode = binDataList.item(i);
        if(currentNode.getNodeType() == Node.ELEMENT_NODE && ((Element)currentNode).hasAttribute("w:name"))
        {               
            File newImageFile = new File(picDirectory, ((Element)currentNode).getAttribute("w:name").replaceFirst("wordml://", ""));
            if(newImageFile.exists())
            {

            }
            else
            {
                if(writeImage(newImageFile, currentNode))
                {
                    //Print some success message
                }
            }
        }
    }
4b9b3361

Ответ 1

Посмотрите AndroidDocxToHtml, который я сделал, чтобы продемонстрировать использование docx4j на Android.

Несколько предостережений.

Во-первых, этот проект не включает все зависимости docx4j, только те, которые требуются для преобразования docx в HTML. Поэтому, если вы хотите делать другие вещи, вам могут понадобиться другие зависимости.

Во-вторых, docx4j требует JAXB - см. этот пост в блоге re JAXB на Android - и контекст JAXB контекста при запуске приложения занимает некоторое время, в зависимости от устройство. Есть способы обойти это, но при дополнительных усилиях.

Если все, что вы хотите сделать, это извлечение изображений, и вам все равно, как они относятся к тексту, вы можете просто искать части изображения. Вы можете использовать OpenXML4J для этого и избегать JAXB.

Ответ 2

Вы можете просто разархивировать файл (переименовать в .zip и открыть его), затем вы можете исследовать структуру папок, где расположены изображения и т.д.

Ответ 3

Самый простой способ создать изображение в Android - использовать BitmapFactory factory методы.

Класс BitmapFactory имеет методы для создания Bitmap из массива байтов, файла или InputStream.

Как только у вас есть объект Bitmap, вы можете его отобразить, установив его на ImageView в вашем макете, используя setImageBitmap метод.