从String或InputStream创建PDFReader

时间:2018-02-08 09:27:32

标签: java itext7

以下是我从输入Stringbyte[]创建PDF的代码 此输入正在与iText5一起使用。当我将输入传递给PdfReader中的iText5时,它能够创建PdfReader对象。

案例1:

    byte[] bytesDecoded = Base64.decodeBase64(input.getBytes(StandardCharsets.UTF_8));
    InputStream is = IOUtils.toInputStream(bytesDecoded.toString(), StandardCharsets.UTF_8);
    PdfReader reader = new PdfReader(is);

案例2:

PdfReader reader = new PdfReader(IOUtils.toInputStream(input, StandardCharsets.UTF_16));

例外:

 Exception in thread "main" com.itextpdf.io.IOException: PDF header not found.
    at com.itextpdf.io.source.PdfTokenizer.getHeaderOffset(PdfTokenizer.java:223)
    at com.itextpdf.kernel.pdf.PdfReader.getOffsetTokeniser(PdfReader.java:1018)

不在iText7

中工作

1 个答案:

答案 0 :(得分:0)

这就是我的方式。分享它可能在将来有用。

    ByteArrayOutputStream pdfos = new ByteArrayOutputStream();
    byte[] bytesDecoded = Base64.decodeBase64(src.getBytes(StandardCharsets.UTF_8));
    ByteArrayInputStream inStream = new ByteArrayInputStream(bytesDecoded);
    PdfReader reader = new PdfReader(inStream);
    PdfSigner signer = new PdfSigner(reader, pdfos, false);