PDF应该如何编码?

时间:2019-05-23 08:43:08

标签: pdf groovy character-encoding inputstream bufferedreader

我正在尝试建立一个从网页(提供为URL)生成PDF的API。该API来自编码机。我在Docker上安装了它,它工作得很好,我无法通过带有curl的http请求发送生成PDF(目前,我只是想使其工作,所以我使用文档中提供的请求作为示例)

现在,我正在尝试使其与groovy / grails应用程序一起使用。因此,我正在使用Java工具发出请求。

现在这是我的问题:我得到的PDF文件为空(我的应用程序直接在浏览器中打开)。它确实具有正确的内容,如果我使用文本编辑器将其打开,则它不是空的,并且其内容几乎与我使用curl请求所做的内容相同(不是空白)。

我99%的确定问题来自编码。我尝试更改InputStreamReader编码参数,但没有任何改变。在这里,我输入“ X-MACROMAN”,是因为pdf文件中的编码不是空白,但仍然不会更改。

这是我的代码:

static def execute(def apiURL)
{
        def httpClient = HttpClients.createDefault()

        // Request parameters and other properties.
        def request = new HttpPost(apiURL)

        MultipartEntityBuilder builder = MultipartEntityBuilder.create()
        builder.addTextBody("remoteURL", 'https://google.com')
        builder.addTextBody("marginTop", '0')
        builder.addTextBody("marginBottom", '0')
        builder.addTextBody("marginLeft", '0')
        builder.addTextBody("marginRight", '0')


        HttpEntity multipart = builder.build()
        request.setEntity(multipart)
        def response = httpClient.execute(request)

        BufferedReader rd = new BufferedReader(
                new InputStreamReader(response.getEntity().getContent(), "X-MACROMAN"))

        StringBuffer result = new StringBuffer()
        String line = ""

        Boolean a = Boolean.FALSE
        while ((line = rd.readLine()) != null) {
            if(!a){
                a = Boolean.TRUE
            }
            else {
                result.append("\n")
            }

            result.append(line)

        }

        return result

我99%的确定问题来自编码。我尝试更改InputStreamReader编码参数,但没有任何改变。在这里,我输入“ X-MACROMAN”,是因为pdf文件中的编码不是空白,但仍然不会更改。

我说清楚了吗?那些了解的人对我的PDF为何空白没有任何想法吗?

0 个答案:

没有答案