Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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 使用MuPDF读取联机PDF文件_Java_Android_Pdf_Mupdf - Fatal编程技术网

Java 使用MuPDF读取联机PDF文件

Java 使用MuPDF读取联机PDF文件,java,android,pdf,mupdf,Java,Android,Pdf,Mupdf,我有两个问题 1) 注释无效 2) 我想在线阅读pdf文档 我使用此链接构建MuPDF 1) 我得到了项目mupdf/platform/android 我运行默认的应用程序注释工作正常,但我将该项目创建到他们希望保存但注释未保存的库文件中 2) 它将读取本地文件,但我想读取在线文件也。我的android代码 pdf = (TextView) findViewById(R.id.pdf); onPdf = (TextView) findViewById(R.id.onPdf);

我有两个问题 1) 注释无效 2) 我想在线阅读pdf文档

我使用此链接构建MuPDF

1) 我得到了项目mupdf/platform/android 我运行默认的应用程序注释工作正常,但我将该项目创建到他们希望保存但注释未保存的库文件中

2) 它将读取本地文件,但我想读取在线文件也。我的android代码

pdf = (TextView) findViewById(R.id.pdf);
    onPdf = (TextView) findViewById(R.id.onPdf);

    pdf.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Uri uri = Uri.parse(path);

            Intent intent = new Intent(context, MuPDFActivity.class);

            intent.setAction(Intent.ACTION_VIEW);

            intent.setData(uri);

            startActivity(intent);


        }
    });

    onPdf.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Uri uri = Uri.parse(netPath);


            Intent intent = new Intent(context, MuPDFActivity.class);

            intent.setAction(Intent.ACTION_VIEW);

            intent.setData(uri);

            startActivity(intent);

        }
    });
修改的MuPDFActivity-I更改所有文件都是打开的openBuffer方法

private MuPDFCore openBuffer(byte buffer[]) {
    System.out.println("Trying to open byte buffer");
    try {
        String magic = "";
        core = new MuPDFCore(this, buffer, magic);
        // New file: drop the old outline data
        OutlineActivityData.set(null);
    } catch (Exception e) {
        System.out.println(e);
        return null;
    }
    return core;
}
我的主食

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".PdfTestActivity"
        android:label="@string/app_name" >
       <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.artifex.mupdfdemo.MuPDFActivity"
        android:label="@string/app_name"
        android:theme="@style/AppBaseTheme" >
    </activity>

     <activity
        android:name="com.artifex.mupdfdemo.OutlineActivity"
        android:label="@string/outline_title"
        android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
    </activity>
    <activity
        android:name="com.artifex.mupdfdemo.PrintDialogActivity"
        android:label="@string/print"
        android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
    </activity>
</application>

我下载PDF文件并转换成字节,然后在MuPDF核心中打开

下载文件

byte buffer[] = null;
    HttpURLConnection urlConnection = null;
    try {

        urlConnection = (HttpURLConnection) urls[0].openConnection();
        urlConnection.setReadTimeout(TIMEOUT_READ);
        InputStream inputStream = urlConnection.getInputStream();

        int len = inputStream.available();
        buffer = new byte[len];

        // inputStream.read(buffer, 0, len);

        while ((len = inputStream.read(buffer)) != -1) {
            byteBuffer.write(buffer, 0, len);
        }
        Log.e("Length", "" + byteBuffer.size());
        inputStream.close();
        // and then we can return your byte array.

    } catch (Exception e) {
        e.printStackTrace();

        });
开核

RelativeLayout mupdfWrapper;
MuPDFCore core;
public byte[] buffer;
mupdfWrapper = (RelativeLayout) viewRoot
                .findViewById(R.id.mupdf_wrapper);
        // Intent intent =new Intent(getActivity(),MuPDFActivity.class);
        // startActivity(intent);

        core = new MuPDFCore(getActivity(), buffer, "");
        MuPDFReaderView mDocView = new MuPDFReaderView(getActivity());
        mDocView.setAdapter(new MuPDFPageAdapter(getActivity(), core));
        mupdfWrapper.addView(mDocView, new LayoutParams(
                LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

你解决这个问题了吗?试试下面我为这个模型所做的回答。你能不能分享这个问题的完整代码,因为我不能让它工作?多谢各位
RelativeLayout mupdfWrapper;
MuPDFCore core;
public byte[] buffer;
mupdfWrapper = (RelativeLayout) viewRoot
                .findViewById(R.id.mupdf_wrapper);
        // Intent intent =new Intent(getActivity(),MuPDFActivity.class);
        // startActivity(intent);

        core = new MuPDFCore(getActivity(), buffer, "");
        MuPDFReaderView mDocView = new MuPDFReaderView(getActivity());
        mDocView.setAdapter(new MuPDFPageAdapter(getActivity(), core));
        mupdfWrapper.addView(mDocView, new LayoutParams(
                LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));