【发布时间】:2021-08-18 23:52:39
【问题描述】:
在我当前的代码中,我正在合并包含 PDF 文件的文档。
public static void appApplicantDownload(File file) {
Connection con = getConnection();
Scanner sc = new Scanner(System.in);
List < InputStream > list = new ArrayList < InputStream > ();
try {
OutputStream fOriginal = new FileOutputStream(file, true); // original
list.add(new FileInputStream(file1));
list.add(new FileInputStream(file2));
list.add(new FileInputStream(file3));
doMerge(list, fOriginal);
} catch (Exception e) {
}
}
public static void doMerge(List < InputStream > list, OutputStream outputStream) throws DocumentException, IOException {
try {
System.out.println("Merging...");
Document document = new Document();
PdfCopy copy = new PdfCopy(document, outputStream);
document.open();
for (InputStream in : list) {
ByteArrayOutputStream b = new ByteArrayOutputStream();
IOUtils.copy( in , b);
PdfReader reader = new PdfReader(b.toByteArray());
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
copy.addPage(copy.getImportedPage(reader, i));
}
}
outputStream.flush();
document.close();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
但现在我想更改代码,使其允许合并图像和 PDF。上面的代码给了我 No PDF Signature found
的错误【问题讨论】:
-
如果代码应该合并 PDF,您是否希望能够在混合中加入电子表格并使其正常工作?图像也一样,PDF 处理库抱怨你输入的不是 PDF。
-
是的,我知道,图书馆没有问题,它需要 PDF 签名。我可以将图像转换为图像到 PDF,然后合并。我想知道如何优雅地做到这一点。