private void _generateImages(FileVersion fileVersion, File file) throws Exception { if (GhostscriptUtil.isEnabled()) { if (!_ghostscriptInitialized) { GhostscriptUtil.reset(); _ghostscriptInitialized = true; } _generateImagesGS(fileVersion, file); } else { _generateImagesPB(fileVersion, file); } }
protected void updateExternalServices(ActionRequest actionRequest, PortletPreferences preferences) throws Exception { boolean imageMagickEnabled = ParamUtil.getBoolean(actionRequest, "imageMagickEnabled"); String imageMagickPath = ParamUtil.getString(actionRequest, "imageMagickPath"); boolean openOfficeEnabled = ParamUtil.getBoolean(actionRequest, "openOfficeEnabled"); int openOfficePort = ParamUtil.getInteger(actionRequest, "openOfficePort"); boolean xugglerEnabled = ParamUtil.getBoolean(actionRequest, "xugglerEnabled"); preferences.setValue(PropsKeys.IMAGEMAGICK_ENABLED, String.valueOf(imageMagickEnabled)); preferences.setValue(PropsKeys.IMAGEMAGICK_GLOBAL_SEARCH_PATH, imageMagickPath); preferences.setValue(PropsKeys.OPENOFFICE_SERVER_ENABLED, String.valueOf(openOfficeEnabled)); preferences.setValue(PropsKeys.OPENOFFICE_SERVER_PORT, String.valueOf(openOfficePort)); preferences.setValue(PropsKeys.XUGGLER_ENABLED, String.valueOf(xugglerEnabled)); Enumeration<String> enu = actionRequest.getParameterNames(); while (enu.hasMoreElements()) { String name = enu.nextElement(); if (name.startsWith("imageMagickLimit")) { String key = name.substring(16, name.length()).toLowerCase(); String value = ParamUtil.getString(actionRequest, name); preferences.setValue(PropsKeys.IMAGEMAGICK_RESOURCE_LIMIT + key, value); } } preferences.store(); GhostscriptUtil.reset(); ImageMagickUtil.reset(); }
private void _generateImages(FileVersion fileVersion, InputStream inputStream) throws Exception { if (GhostscriptUtil.isEnabled()) { _generateImagesGS(fileVersion, inputStream); } else { _generateImagesPB(fileVersion, inputStream); } }
private void _generateImagesGS(FileVersion fileVersion, File file, boolean thumbnail) throws Exception { // Generate images String tempFileId = DLUtil.getTempFileId(fileVersion.getFileEntryId(), fileVersion.getVersion()); List<String> arguments = new ArrayList<String>(); arguments.add("-sDEVICE=png16m"); if (thumbnail) { arguments.add("-sOutputFile=" + getThumbnailTempFilePath(tempFileId)); arguments.add("-dFirstPage=1"); arguments.add("-dLastPage=1"); } else { arguments.add("-sOutputFile=" + getPreviewTempFilePath(tempFileId, -1)); } arguments.add("-dPDFFitPage"); arguments.add("-dTextAlphaBits=4"); arguments.add("-dGraphicsAlphaBits=4"); arguments.add("-r" + PropsValues.DL_FILE_ENTRY_PREVIEW_DOCUMENT_DPI); if (PropsValues.DL_FILE_ENTRY_PREVIEW_DOCUMENT_MAX_WIDTH != 0) { arguments.add("-dDEVICEWIDTH" + PropsValues.DL_FILE_ENTRY_PREVIEW_DOCUMENT_MAX_WIDTH); } if (PropsValues.DL_FILE_ENTRY_PREVIEW_DOCUMENT_MAX_HEIGHT != 0) { arguments.add("-dDEVICEHEIGHT" + PropsValues.DL_FILE_ENTRY_PREVIEW_DOCUMENT_MAX_HEIGHT); } arguments.add(file.getPath()); Future<?> future = GhostscriptUtil.execute(arguments); String processIdentity = String.valueOf(fileVersion.getFileVersionId()); futures.put(processIdentity, future); future.get(); // Store images if (thumbnail) { File thumbnailTempFile = getThumbnailTempFile(tempFileId); try { storeThumbnailImages(fileVersion, thumbnailTempFile); } finally { FileUtil.delete(thumbnailTempFile); } } else { int total = getPreviewTempFileCount(fileVersion); for (int i = 0; i < total; i++) { File previewTempFile = getPreviewTempFile(tempFileId, i + 2); try { addFileToStore( fileVersion.getCompanyId(), PREVIEW_PATH, getPreviewFilePath(fileVersion, i + 1), previewTempFile); } finally { FileUtil.delete(previewTempFile); } } } }