从嵌入pdf的url获取pdf文件

时间:2013-07-05 13:29:10

标签: java itext sap

我能够从url获取pdf文件,将流编码为base 64并将字符串发送到xml文件字段中的第三方,但是当我尝试打开pdf时,我有下一个问题文件解码。

  

无法提取嵌入字体'ArialMT,Bold'。某些字符可能无法正确显示或打印。

这是java代码(它是sap pi 7.1中的java映射):

    urlStr = "Insert here your url";
    StringBuffer data = new StringBuffer();
    URL url = new URL(urlStr);
    URLConnection conn = url.openConnection ();

    // Get the response
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    StringBuffer sb = new StringBuffer();
    String line;
    String carriagereturn = System.getProperty("line.separator");

    while ((line = rd.readLine()) != null)
    {
        trace.addWarning(line);
        sb.append(line);
        sb.append(carriagereturn);
    }

    rd.close();
    result = sb.toString();
} catch (Exception e){
    trace.addWarning(e.toString());
}

return org.apache.commons.codec.binary.Base64.encodeBase64String(result.getBytes());

我已经读过,由于该字母的版权,在执行InputStreamReader时无法检索字体。这是真的吗?

之后是否还有其他可能使用iText库或类似文件嵌入字体?

1 个答案:

答案 0 :(得分:0)

如果在创建过程中未在PDF中嵌入字体,并且在打开pdf的系统上没有相同的字体,则可能会发生这种情况。

是否使用itext生成pdf?在这种情况下,这个answer可以帮到你。 否则,请尝试将字体放在系统字体目录中。

编辑: 关于第二个问题,有一个小型的演示程序可以在现有的pdf文件中嵌入字体,其中不嵌入字体here