当前位置: 首页 > 知识库问答 >
问题:

查看/显示 PDF 从 改造响应正文 Android JAVA

公西博实
2023-03-14

我是JAVA新手,android(JAVA)和改装。我正在开发一个android应用程序,它使用web API来获取pdf并在屏幕上显示/查看(不是下载)。我可以在postman中测试API(POST请求,请求体为空,只有[ ]),响应是一个pdf(Content-type:application/pdf)。在android(JAVA)中,使用reform,能够成功地调用api,但是从响应体中,我无法得到PDF(因为不熟悉使用streams(输入/输出))。我的目的是查看PDF文件,而不是下载。请建议。请查找代码:

WebAPI:

    public interface WebApiEndPoint {

@Headers({"Content-Type: application/pdf"})
@POST("MyEndpoint")
Call<ResponseBody> downloadFileWithDynamicUrlSync(@Header("Authorization") String authToken);

}

改造代码:

 new Retrofit.Builder()
                    .baseUrl("http://localhost:5000/api/downlodeFile/")
                    .addConverterFactory(GsonConverterFactory.create())
                    .addConverterFactory(ScalarsConverterFactory.create())
                    .build()
                    .create(WebApiEndPoint.class)
                    .downloadFileWithDynamicUrlSync(authToken)
                    .enqueue(new Callback<ResponseBody>() {
                        @Override
                        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {  Toast.makeText(getActivity(),response.message(),Toast.LENGTH_SHORT).show(); //OK outpu
                            Log.i("PDF","Loading PDF");
                          
  //Not sure what code need to put here in order to retrieve the PDF and display it.                         
                            
                        }

                        @Override
                        public void onFailure(Call<ResponseBody> call, Throwable t) {
                            Toast.makeText(getActivity(),t.getMessage(),Toast.LENGTH_SHORT).show();
                            Log.i("PDF","Failed to load pdf");
                        }
                    });

共有1个答案

东门城
2023-03-14

您可以使用此库显示PDF文件。

在您的情况下,url是一个PDF文件,那么您可以将其传递给这个库。

pdf-查看器Github

该库可以直接下载并显示URL。不需要使用改型。

PdfViewerActivity.launchPdfFromUrl(       
            context,
            "pdf_url",        
            enableDownload = false 
    )
 类似资料:
  • 我正在打一个改装电话: 但是,它返回日志为: 但当我这么做的时候 它返回JSON 为什么第一个不返回JSON字符串?

  • 我正在从事RESTWeb服务项目,目前实际上在mozilla的rest客户端中(chrome://restclient/content/restclient.html)它将获取{“id”:“1234”}作为请求json,获取id的详细信息,并从数据库中提供id的所有详细信息,然后转换为json数组,最后将其存储在responsetoservice对象中。 当我点击服务url时,请求到达服务器,状态

  • 问题内容: 我从这段代码中从laravel dompdf返回流数据 这是我的JS ajax代码 这是在ajax之后显示pdf的HTML 我低于错误 无法加载PDF文档 请帮助解决此问题。如何显示PDF文件。 问题答案: 默认情况下没有设置。您可以使用polyfill,例如实现二进制数据传输的jquery- ajax-blob-arraybuffer.js ,也可以利用。 。用element代替el

  • 问题内容: 我正在尝试使浏览器下载从ajax响应接收到的pdf文件。 受jquery ajax下载pdf文件启发,我模拟了如下单击/下载事件: 不幸的是,这仅适用于Chrome,不适用于Firefox + IE。当我尝试在最后两个浏览器中触发它时,没有任何反应。 由于从CMS继承,脚本和标记被放置在iframe中,但是我不确定这是否有影响。 关于如何针对所有现代浏览器进行优化的想法? 问题答案:

  • 我正在尝试使用Swift在我的iOS应用程序中显示pdf。我从服务器得到的响应是pdf数据,它看起来如下所示: %PDF-1.4%ôiá1 0 obj 我检查了iOS PDF阅读器和PDFKit,但主要问题是我不明白如何处理应用程序中的响应。 有什么想法吗?谢谢!

  • 我正试图从以下URL在Android WebView中打开一个pdf文件: http://bijsluiters.fagg-afmps.be/registrationsearchservlet?key=be-tu441865&leaflettype=leafletnl 我也尝试了'LoadWithBaseURL'方法,但也不起作用...