private void _queueGeneration(FileVersion sourceFileVersion, FileVersion destinationFileVersion) { if (_fileVersionIds.contains(destinationFileVersion.getFileVersionId())) { return; } boolean generateImages = false; String extension = destinationFileVersion.getExtension(); if (extension.equals("pdf")) { generateImages = true; } else if (DocumentConversionUtil.isEnabled()) { String[] conversions = DocumentConversionUtil.getConversions(extension); for (String conversion : conversions) { if (conversion.equals("pdf")) { generateImages = true; break; } } } if (generateImages) { _fileVersionIds.add(destinationFileVersion.getFileVersionId()); sendGenerationMessage( DestinationNames.DOCUMENT_LIBRARY_PDF_PROCESSOR, sourceFileVersion, destinationFileVersion); } }
@Override public boolean isSupported(String mimeType) { if (Validator.isNull(mimeType)) { return false; } if (mimeType.equals(ContentTypes.APPLICATION_PDF) || mimeType.equals(ContentTypes.APPLICATION_X_PDF)) { return true; } if (DocumentConversionUtil.isEnabled()) { Set<String> extensions = MimeTypesUtil.getExtensions(mimeType); for (String extension : extensions) { extension = extension.substring(1); String[] targetExtensions = DocumentConversionUtil.getConversions(extension); if (Arrays.binarySearch(targetExtensions, "pdf") >= 0) { return true; } } } return false; }
private void _generateImages(FileVersion sourceFileVersion, FileVersion destinationFileVersion) throws Exception { InputStream inputStream = null; try { if (sourceFileVersion != null) { copy(sourceFileVersion, destinationFileVersion); return; } if (_hasImages(destinationFileVersion)) { return; } String extension = destinationFileVersion.getExtension(); if (extension.equals("pdf")) { if (destinationFileVersion instanceof LiferayFileVersion) { try { LiferayFileVersion liferayFileVersion = (LiferayFileVersion) destinationFileVersion; File file = liferayFileVersion.getFile(false); _generateImages(destinationFileVersion, file); return; } catch (UnsupportedOperationException uoe) { } } inputStream = destinationFileVersion.getContentStream(false); _generateImages(destinationFileVersion, inputStream); } else if (DocumentConversionUtil.isEnabled()) { inputStream = destinationFileVersion.getContentStream(false); String tempFileId = DLUtil.getTempFileId( destinationFileVersion.getFileEntryId(), destinationFileVersion.getVersion()); File file = DocumentConversionUtil.convert(tempFileId, inputStream, extension, "pdf"); _generateImages(destinationFileVersion, file); } } catch (NoSuchFileEntryException nsfee) { } finally { StreamUtil.cleanUp(inputStream); _fileVersionIds.remove(destinationFileVersion.getFileVersionId()); } }
private void _generateImages(FileVersion fileVersion) throws Exception { try { if (_hasImages(fileVersion)) { return; } String extension = fileVersion.getExtension(); if (extension.equals("pdf")) { if (fileVersion instanceof LiferayFileVersion) { try { LiferayFileVersion liferayFileVersion = (LiferayFileVersion) fileVersion; File file = liferayFileVersion.getFile(false); _generateImages(fileVersion, file); return; } catch (UnsupportedOperationException uoe) { } } InputStream inputStream = fileVersion.getContentStream(false); _generateImages(fileVersion, inputStream); } else if (DocumentConversionUtil.isEnabled()) { InputStream inputStream = fileVersion.getContentStream(false); String tempFileId = DLUtil.getTempFileId(fileVersion.getFileEntryId(), fileVersion.getVersion()); File file = DocumentConversionUtil.convert(tempFileId, inputStream, extension, "pdf"); _generateImages(fileVersion, file); } } catch (NoSuchFileEntryException nsfee) { } finally { _fileVersionIds.remove(fileVersion.getFileVersionId()); } }