LogManager.getInstance().logMessage(ex);
throw new IOException(ex.getMessage());
}
}
PDDocumentInformation info = doc.getDocumentInformation();
PDDocumentCatalog catlog = doc.getDocumentCatalog();
COSDocument cosDoc = doc.getDocument();
ctx.fireStartParseEvent("pdf-meta");
COSArray array = cosDoc.getDocumentID();
if(array != null && array.size() == 2) {
ctx.fireParseEvent("doc-id", ((COSString) array.get(0)).getHexString());
ctx.fireParseEvent("iteration-id", ((COSString) array.get(1)).getHexString());
}
if(array == null || array.size() != 2) {
ctx.fireParseEvent("original", "unknown");
}
else {
boolean orig = ((COSString) array.get(0)).getHexString().equals(((COSString) array.get(1)).getHexString());
ctx.fireParseEvent("original", orig);
}
fireSpecialNull(ctx, "title", info.getTitle());
fireSpecialNull(ctx, "language", catlog.getLanguage());
fireSpecialNull(ctx, "author", info.getAuthor());
fireSpecialNull(ctx, "creator", info.getCreator());
fireSpecialNull(ctx, "subject", info.getSubject());
fireSpecialNull(ctx, "producer", info.getProducer());
fireSpecialNull(ctx, "keywords", info.getKeywords());
ctx.fireStartParseEvent("creation-date");
fireDate(ctx, info.getCreationDate());
ctx.fireEndParseEvent("creation-date");
ctx.fireStartParseEvent("modified-date");
fireDate(ctx, info.getModificationDate());
ctx.fireEndParseEvent("modified-date");
ctx.fireParseEvent("has-forms", catlog.getAcroForm() != null);
ctx.fireParseEvent("has-metadata-stream", catlog.getMetadata() != null);
ctx.fireParseEvent("has-outline", catlog.getDocumentOutline() != null);
ctx.fireParseEvent("has-threads", catlog.getThreads().size() > 0);
ctx.fireParseEvent("tagged", catlog.getMarkInfo() != null);
fireSpecialNull(ctx, "page-layout", catlog.getPageLayout());
fireSpecialNull(ctx, "page-mode", catlog.getPageMode());
fireSpecialNull(ctx, "trapped", info.getTrapped());
fireSpecialNull(ctx, "version", Float.toString(cosDoc.getVersion()));
ctx.fireStartParseEvent("security");
ctx.fireParseEvent("encrypted", encrypted);