Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android中的Docx4j抛出验证错误_Java_Android_Docx4j - Fatal编程技术网

Java Android中的Docx4j抛出验证错误

Java Android中的Docx4j抛出验证错误,java,android,docx4j,Java,Android,Docx4j,在我的android应用程序中,我想创建一个带有图像文件的word文档。为此,我已下载并复制到libs文件夹中。当我试图从路径中获取图像(也从ImageView中获取位图)并保存到文档中时,应用程序因下面附加的错误而崩溃 下面给出了我尝试过的代码片段 import java.io.ByteArrayOutputStream; import org.docx4j.dml.wordprocessingDrawing.Inline; import org.docx4j.openpackaging.

在我的android应用程序中,我想创建一个带有图像文件的word文档。为此,我已下载并复制到libs文件夹中。当我试图从路径中获取图像(也从ImageView中获取位图)并保存到文档中时,应用程序因下面附加的错误而崩溃

下面给出了我尝试过的代码片段

import java.io.ByteArrayOutputStream;

import org.docx4j.dml.wordprocessingDrawing.Inline;
import org.docx4j.openpackaging.exceptions.InvalidFormatException;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage;
import org.docx4j.wml.Drawing;
import org.docx4j.wml.ObjectFactory;
import org.docx4j.wml.P;
import org.docx4j.wml.R;

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.view.View;

public class SaveWordDocument {

    public SaveWordDocument(View v) {
    // TODO Auto-generated constructor stub
    try {
        WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage
                .createPackage();

        Bitmap bmp = loadBitmapFromView(v);
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
        byte[] bytes = stream.toByteArray();
        try {
            addImageToPackage(wordMLPackage, bytes);
            wordMLPackage.save(new java.io.File(
                    "/sdcard0/OrderPlace/Order.docx"));
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    } catch (InvalidFormatException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
    private static void addImageToPackage(
            WordprocessingMLPackage wordMLPackage, byte[] bytes)
             {
        BinaryPartAbstractImage imagePart;
        try {
            imagePart = BinaryPartAbstractImage
                    .createImagePart(wordMLPackage, bytes);
            int docPrId = 1;
            int cNvPrId = 2;
            Inline inline = imagePart.createImageInline("Filename hint",
                    "Alternative text", docPrId, cNvPrId, false);

            P paragraph = addInlineImageToParagraph(inline);

            wordMLPackage.getMainDocumentPart().addObject(paragraph);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }

    private static P addInlineImageToParagraph(Inline inline) {
        // Now add the in-line image to a paragraph
        ObjectFactory factory = new ObjectFactory();
        P paragraph = factory.createP();
        R run = factory.createR();
        paragraph.getContent().add(run);
        Drawing drawing = factory.createDrawing();
        run.getContent().add(drawing);
        drawing.getAnchorOrInline().add(inline);
        return paragraph;
    }

    public static Bitmap loadBitmapFromView(View v) {
        Bitmap b = Bitmap.createBitmap(v.getLayoutParams().width,
                v.getLayoutParams().height, Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas(b);
        v.layout(v.getLeft(), v.getTop(), v.getRight(), v.getBottom());
        v.draw(c);
        return b;
    }
}
当我调试代码时,错误会在下面一行抛出

WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage
                        .createPackage();

即使我试了几个小时也找不到解决方案。请帮我找到解决方案。

google.com说这个库与android不兼容……你能提到它的链接吗。如果是这样,你能告诉我用android创建word文档的替代方法吗@塞尔文:你提到上面说的链接了吗?在第一个简单的谷歌查询链接(这是一个链接到苏的问题)。。。你能告诉我用android创建word文档的另一种方法吗?不,因为要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题与堆栈溢出无关。。。。换句话说:请学习如何使用谷歌搜索(或其他网络搜索引擎),这样就不是人工搜索引擎了。谢谢你帮我找到解决方案。但是,我找不到任何地方提到它不是android的。@SelvinCan你能告诉我这些链接吗,。特别是你能告诉我第一个链接是什么吗@塞尔文