使用 Java 中的 itext 将 pdf 保存到 bytearray
Save pdf to bytearray using itext in Java
我正在使用 itext 阅读大型 pdf 文件并保存选定的页面。
PdfReader reader = null;
reader = new PdfReader("customPath/largePdf.pdf");
int pages = reader.getNumberOfPages();
List<Integer> pagesList = new ArrayList<Integer>();
pagesList.add(1);
pagesList.add(2);
reader.selectPages(pagesList);
String path;
PdfStamper stamper = null;
path = String.format("customerPath/split.pdf");
stamper = new PdfStamper(reader, new FileOutputStream(path));
到目前为止一切正常,我可以打开split.pdf。
现在,我不想保存到文件,而是想将它保存到字节数组(这样我以后可以将它保存为 blob)
试过这个:
PdfReader reader = null;
reader = new PdfReader("customPath/largePdf.pdf");
int pages = reader.getNumberOfPages();
List<Integer> pagesList = new ArrayList<Integer>();
pagesList.add(1);
pagesList.add(2);
reader.selectPages(pagesList);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfStamper stamper2 = new PdfStamper(reader, baos);
byte[] byteARy = baos.toByteArray();
为了确保它能正常工作,我尝试将这个字节数组写入文件:
OutputStream out = new FileOutputStream("customPath/fromByteArray.pdf");
out.write(byteARy);
out.close();
fromByteArray.pdf 打不开,大小为零,知道哪里出了问题吗?
您在创建 PdfStamper
.
后立即检索字节数组(使用 baos.toByteArray()
)
PdfStamper stamper2 = new PdfStamper(reader, baos);
byte[] byteARy = baos.toByteArray();
那时输出中(旁边)什么也没有。您必须等到 PdfStamper
关闭后才能检索输出。
PdfStamper stamper2 = new PdfStamper(reader, baos);
...
stamper2.close();
byte[] byteARy = baos.toByteArray();
现在字节数组应该包含完整的、加盖戳记的 PDF。
我正在使用 itext 阅读大型 pdf 文件并保存选定的页面。
PdfReader reader = null;
reader = new PdfReader("customPath/largePdf.pdf");
int pages = reader.getNumberOfPages();
List<Integer> pagesList = new ArrayList<Integer>();
pagesList.add(1);
pagesList.add(2);
reader.selectPages(pagesList);
String path;
PdfStamper stamper = null;
path = String.format("customerPath/split.pdf");
stamper = new PdfStamper(reader, new FileOutputStream(path));
到目前为止一切正常,我可以打开split.pdf。
现在,我不想保存到文件,而是想将它保存到字节数组(这样我以后可以将它保存为 blob)
试过这个:
PdfReader reader = null;
reader = new PdfReader("customPath/largePdf.pdf");
int pages = reader.getNumberOfPages();
List<Integer> pagesList = new ArrayList<Integer>();
pagesList.add(1);
pagesList.add(2);
reader.selectPages(pagesList);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfStamper stamper2 = new PdfStamper(reader, baos);
byte[] byteARy = baos.toByteArray();
为了确保它能正常工作,我尝试将这个字节数组写入文件:
OutputStream out = new FileOutputStream("customPath/fromByteArray.pdf");
out.write(byteARy);
out.close();
fromByteArray.pdf 打不开,大小为零,知道哪里出了问题吗?
您在创建 PdfStamper
.
baos.toByteArray()
)
PdfStamper stamper2 = new PdfStamper(reader, baos);
byte[] byteARy = baos.toByteArray();
那时输出中(旁边)什么也没有。您必须等到 PdfStamper
关闭后才能检索输出。
PdfStamper stamper2 = new PdfStamper(reader, baos);
...
stamper2.close();
byte[] byteARy = baos.toByteArray();
现在字节数组应该包含完整的、加盖戳记的 PDF。