android接收服务器pdf文件并显示,java – Android:在android的web视图中显示来自服务的pdf接收字节...

我收到的数据字节就像

JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nNVZyY7jNhC991foHCBOVXERBQQBJFu+D9BAfiALkEOAzGV+f15Ra2shqaQz6IFhWzJp8tX+WKIbV19e/qmo+pFw6VnwWTf6+fn36tcfqr/joL4+//nSvb44fwtVze7mq9ffqp+eXDFVr3/8TDy+hAxZcuSpxl3AXYOrFvcdrpju+H7gyuG7pydmeHL4I7OwwZdlvdHRhv0vr3+99K8vnw5BkL3JCYjpdSfPgMGBG2zm5uVbAGhx4fHucH/H+5HazEMlTdlmQG655ycTWdGBTli1AdXgApqYJZ7gbH8Xs/mfHSCKaqUVj18zuvGBb+4S3BA3rqORsOU5NBjTMa/n446SYGoqNZSEuH0nDZaGgegprW4hHcb9BGMGd5fBjIPnXNOQC/i8oKG30OgOGMvdBGg9xy+zyOssmDU5zho0Ngna1qVmlQ7msTMwEpgp6qoWw608YMhRmwIDcwcgfQyVa1o0HpmiLAZr3gf/DE8hDNuNEHrpkxuLLTWf5pLFdyAb5Fz50Grr5IYkOUnlqZZNLeIautUZ1NNrcLqV9xtYCKrrY9JSCZroeNFeuHvgOzMb0cuH8SSYC3uzSYKvm5stA7/Kt/dSUYAtqBMeh7yGeBKcz3nDBK2VbgfwLi3KFsIXvwd5cFBjQh8AltwUn6XmnHwkINQ6OGQnD9XKNQ1t/50EZ93NXAMXDdBCEWOl3moluZ0p9I2YA5+DIZILMpfiP43wC6o1m1WmmCDWYiy9MVgDCXqMJGjKWCiHYlaN/5Re556JZMOZTCkl2KbZ0Y67AoOYJqZpJHLjYvLuBqgH4xSr+izMfob+glI6ior7UaAktLrOVvW3MZewkqb7spiz3mWJ2BX30CKhxU+reBcrsxk4j8RAiGOaaHfzVo6hm8xkrcQZOJxJkhTd2V31/yjOYE2pM5TGP7hz

这个字节与pdf有关.

和String无法存储这么多数据.所以我使用stringbuffer来存储它.但是stringbuffer也无法存储.所以如何存储这些收到的数据.

如何转换此字节并在Web视图中显示.

更新:

我使用以下代码.

byte[] decodedString = Base64.decode(ByteCode.toString());

wv.loadData(decodedString.toString(), "application/pdf", "utf-8");

其中ByteCode是一个StringBuffer类型,用于保存服务的响应字节码.

解决方法:

无论如何都无法在Android webview中预览pdf文档.它需要第三方库.

的build.gradle

compile 'com.github.barteksc:android-pdf-viewer:2.7.0'

dialog_pdf_viewer

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center_horizontal"

android:orientation="vertical">

android:id="@+id/dialog_pdf_viewer_close"

style="@style/ExitButtonImageViewStyle"

android:src="@drawable/popup_exit" />

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1"

android:background="@color/white"

android:orientation="vertical">

android:id="@+id/pdfView"

android:layout_width="match_parent"

android:layout_height="match_parent" />

android:id="@+id/dialog_pdf_viewer_button"

style="@style/ButtonPrimary2"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:padding="15dp"

android:text="@string/agreed" />

DailogPDFViewer.java

public class DialogPdfViewer extends Dialog {

PDFView pdfView;

byte[] decodedString;

public interface OnDialogPdfViewerListener {

void onAgreeClick(DialogPdfViewer dialogFullEula);

void onCloseClick(DialogPdfViewer dialogFullEula);

}

public DialogPdfViewer(Context context, String base64, final DialogPdfViewer.OnDialogPdfViewerListener onDialogPdfViewerListener) {

super(context);

setContentView(R.layout.dialog_pdf_viewer);

findViewById(R.id.dialog_pdf_viewer_close).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

onDialogPdfViewerListener.onCloseClick(DialogPdfViewer.this);

}

});

findViewById(R.id.dialog_pdf_viewer_button).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

onDialogPdfViewerListener.onAgreeClick(DialogPdfViewer.this);

}

});

decodedString = Base64.decode(base64.toString(), Base64.DEFAULT);

pdfView = ((PDFView) findViewById(R.id.pdfView));

pdfView.fromBytes(decodedString).load();

setOnKeyListener(new OnKeyListener() {

@Override

public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {

onDialogPdfViewerListener.onCloseClick(DialogPdfViewer.this);

}

return true;

}

});

}

}

标签:java,android,pdf,byte

来源: https://codeday.me/bug/20190528/1174553.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值